From cd7c1ccce21a63686fb107fe4c09bd0403055b4e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 15 Nov 2023 16:31:53 +0100 Subject: [PATCH 001/786] update imports prefix with entity prefix with entity prefix with entity prefix with entity rename --- ...ce.ts => entity-folder-data-source.interface.ts} | 6 +++--- ...ory-base.ts => entity-folder-repository-base.ts} | 13 ++++++++----- ...ace.ts => entity-folder-repository.interface.ts} | 2 +- .../src/packages/core/repository/folder/index.ts | 6 +++--- .../repository/partial-views.repository.ts | 4 ++-- .../sources/partial-views.folder.server.data.ts | 6 +++--- .../scripts/repository/scripts.repository.ts | 4 ++-- .../sources/stylesheet.folder.server.data.ts | 4 ++-- .../stylesheets/repository/stylesheet.repository.ts | 4 ++-- 9 files changed, 26 insertions(+), 23 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/{folder-data-source.interface.ts => entity-folder-data-source.interface.ts} (79%) rename src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/{folder-repository-base.ts => entity-folder-repository-base.ts} (89%) rename src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/{folder-repository.interface.ts => entity-folder-repository.interface.ts} (92%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-data-source.interface.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-data-source.interface.ts index 01e03cf6be..2de7812599 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-data-source.interface.ts @@ -3,11 +3,11 @@ import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { FolderResponseModel, UpdateFolderResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export interface UmbFolderDataSourceConstructor { - new (host: UmbControllerHost): UmbFolderDataSource; +export interface UmbEntityFolderDataSourceConstructor { + new (host: UmbControllerHost): UmbEntityFolderDataSource; } -export interface UmbFolderDataSource { +export interface UmbEntityFolderDataSource { get(unique: string): Promise>; insert(args: UmbCreateFolderModel): Promise>; update(args: UmbUpdateFolderModel): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository-base.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository-base.ts index 648d36d428..a62066949c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository-base.ts @@ -1,6 +1,9 @@ import { UmbRepositoryBase } from '../repository-base.js'; -import { type UmbFolderRepository } from './folder-repository.interface.js'; -import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; +import { type UmbEntityFolderRepository } from './entity-folder-repository.interface.js'; +import type { + UmbEntityFolderDataSource, + UmbEntityFolderDataSourceConstructor, +} from './entity-folder-data-source.interface.js'; import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeStore } from '@umbraco-cms/backoffice/tree'; @@ -9,15 +12,15 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; export type UmbFolderToTreeItemMapper = (item: UmbCreateFolderModel) => FolderTreeItemType; -export class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbFolderRepository { +export class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbEntityFolderRepository { protected _init: Promise; protected _treeStore?: UmbTreeStore; - #folderDataSource: UmbFolderDataSource; + #folderDataSource: UmbEntityFolderDataSource; #folderToTreeItemMapper: UmbFolderToTreeItemMapper; constructor( host: UmbControllerHost, - folderDataSource: UmbFolderDataSourceConstructor, + folderDataSource: UmbEntityFolderDataSourceConstructor, treeStoreContextAlias: string | UmbContextToken, folderToTreeItemMapper: UmbFolderToTreeItemMapper, ) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository.interface.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository.interface.ts index f1d21beaa8..157e906221 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository.interface.ts @@ -3,7 +3,7 @@ import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; // TODO add response types folder folders -export interface UmbFolderRepository extends UmbApi { +export interface UmbEntityFolderRepository extends UmbApi { createFolderScaffold(unique: string | null): Promise<{ data?: any; error?: ProblemDetails; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts index b0d89c930c..ec4c98f728 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts @@ -1,4 +1,4 @@ -export { type UmbFolderRepository } from './folder-repository.interface.js'; -export { type UmbFolderDataSource } from './folder-data-source.interface.js'; -export { UmbFolderRepositoryBase } from './folder-repository-base.js'; +export { type UmbEntityFolderRepository } from './entity-folder-repository.interface.js'; +export { type UmbEntityFolderDataSource } from './entity-folder-data-source.interface.js'; +export { UmbFolderRepositoryBase } from './entity-folder-repository-base.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts index a5ba02665f..59915322cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts @@ -25,7 +25,7 @@ import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbFolderRepository, + UmbEntityFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -41,7 +41,7 @@ export class UmbPartialViewsRepository PartialViewResponseModel, string >, - UmbFolderRepository, + UmbEntityFolderRepository, UmbApi { #init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts index c20c357775..6d46df3d5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts @@ -5,13 +5,13 @@ import { PartialViewResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DataSourceResponse, UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; +import { DataSourceResponse, UmbEntityFolderDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; //! this is of any type in the backend-api -export type PartialViewGetFolderResponse = {path: string, parentPath: string, name: string} ; +export type PartialViewGetFolderResponse = { path: string; parentPath: string; name: string }; -export class UmbPartialViewsFolderServerDataSource implements UmbFolderDataSource { +export class UmbPartialViewsFolderServerDataSource implements UmbEntityFolderDataSource { #host: UmbControllerHost; constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts index 0d5cc03732..7a44f6e1be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts @@ -7,7 +7,7 @@ import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbFolderRepository, + UmbEntityFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree'; import { @@ -31,7 +31,7 @@ export class UmbScriptsRepository implements UmbTreeRepository, UmbDetailRepository, - UmbFolderRepository, + UmbEntityFolderRepository, UmbApi { #init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts index b51f32b5df..3c46009a4b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts @@ -5,13 +5,13 @@ import { StylesheetResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DataSourceResponse, UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; +import { DataSourceResponse, UmbEntityFolderRepository } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; //! this is of any type in the backend-api export type StylesheetGetFolderResponse = { path: string; parentPath: string; name: string }; -export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource { +export class UmbStylesheetFolderServerDataSource implements UmbEntityFolderRepository { #host: UmbControllerHost; constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts index b34b5a4605..696209729b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts @@ -12,7 +12,7 @@ import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbFolderRepository, + UmbEntityFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree'; import { @@ -41,7 +41,7 @@ export class UmbStylesheetRepository implements UmbTreeRepository, UmbDetailRepository, - UmbFolderRepository, + UmbEntityFolderRepository, UmbApi { #dataSource; From 377eba46e3a9e9b6d2835bb5626855a9ae6ba127 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 15 Nov 2023 18:57:08 +0100 Subject: [PATCH 002/786] Revert "update imports" This reverts commit cd7c1ccce21a63686fb107fe4c09bd0403055b4e. --- ...interface.ts => folder-data-source.interface.ts} | 6 +++--- ...repository-base.ts => folder-repository-base.ts} | 13 +++++-------- ....interface.ts => folder-repository.interface.ts} | 2 +- .../src/packages/core/repository/folder/index.ts | 6 +++--- .../repository/partial-views.repository.ts | 4 ++-- .../sources/partial-views.folder.server.data.ts | 6 +++--- .../scripts/repository/scripts.repository.ts | 4 ++-- .../sources/stylesheet.folder.server.data.ts | 4 ++-- .../stylesheets/repository/stylesheet.repository.ts | 4 ++-- 9 files changed, 23 insertions(+), 26 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/{entity-folder-data-source.interface.ts => folder-data-source.interface.ts} (79%) rename src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/{entity-folder-repository-base.ts => folder-repository-base.ts} (89%) rename src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/{entity-folder-repository.interface.ts => folder-repository.interface.ts} (92%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts similarity index 79% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts index 2de7812599..01e03cf6be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts @@ -3,11 +3,11 @@ import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { FolderResponseModel, UpdateFolderResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export interface UmbEntityFolderDataSourceConstructor { - new (host: UmbControllerHost): UmbEntityFolderDataSource; +export interface UmbFolderDataSourceConstructor { + new (host: UmbControllerHost): UmbFolderDataSource; } -export interface UmbEntityFolderDataSource { +export interface UmbFolderDataSource { get(unique: string): Promise>; insert(args: UmbCreateFolderModel): Promise>; update(args: UmbUpdateFolderModel): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts index a62066949c..648d36d428 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts @@ -1,9 +1,6 @@ import { UmbRepositoryBase } from '../repository-base.js'; -import { type UmbEntityFolderRepository } from './entity-folder-repository.interface.js'; -import type { - UmbEntityFolderDataSource, - UmbEntityFolderDataSourceConstructor, -} from './entity-folder-data-source.interface.js'; +import { type UmbFolderRepository } from './folder-repository.interface.js'; +import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeStore } from '@umbraco-cms/backoffice/tree'; @@ -12,15 +9,15 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; export type UmbFolderToTreeItemMapper = (item: UmbCreateFolderModel) => FolderTreeItemType; -export class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbEntityFolderRepository { +export class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbFolderRepository { protected _init: Promise; protected _treeStore?: UmbTreeStore; - #folderDataSource: UmbEntityFolderDataSource; + #folderDataSource: UmbFolderDataSource; #folderToTreeItemMapper: UmbFolderToTreeItemMapper; constructor( host: UmbControllerHost, - folderDataSource: UmbEntityFolderDataSourceConstructor, + folderDataSource: UmbFolderDataSourceConstructor, treeStoreContextAlias: string | UmbContextToken, folderToTreeItemMapper: UmbFolderToTreeItemMapper, ) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts similarity index 92% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts index 157e906221..f1d21beaa8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/entity-folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts @@ -3,7 +3,7 @@ import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; // TODO add response types folder folders -export interface UmbEntityFolderRepository extends UmbApi { +export interface UmbFolderRepository extends UmbApi { createFolderScaffold(unique: string | null): Promise<{ data?: any; error?: ProblemDetails; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts index ec4c98f728..b0d89c930c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts @@ -1,4 +1,4 @@ -export { type UmbEntityFolderRepository } from './entity-folder-repository.interface.js'; -export { type UmbEntityFolderDataSource } from './entity-folder-data-source.interface.js'; -export { UmbFolderRepositoryBase } from './entity-folder-repository-base.js'; +export { type UmbFolderRepository } from './folder-repository.interface.js'; +export { type UmbFolderDataSource } from './folder-data-source.interface.js'; +export { UmbFolderRepositoryBase } from './folder-repository-base.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts index 59915322cc..a5ba02665f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts @@ -25,7 +25,7 @@ import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbEntityFolderRepository, + UmbFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -41,7 +41,7 @@ export class UmbPartialViewsRepository PartialViewResponseModel, string >, - UmbEntityFolderRepository, + UmbFolderRepository, UmbApi { #init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts index 6d46df3d5a..c20c357775 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.ts @@ -5,13 +5,13 @@ import { PartialViewResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DataSourceResponse, UmbEntityFolderDataSource } from '@umbraco-cms/backoffice/repository'; +import { DataSourceResponse, UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; //! this is of any type in the backend-api -export type PartialViewGetFolderResponse = { path: string; parentPath: string; name: string }; +export type PartialViewGetFolderResponse = {path: string, parentPath: string, name: string} ; -export class UmbPartialViewsFolderServerDataSource implements UmbEntityFolderDataSource { +export class UmbPartialViewsFolderServerDataSource implements UmbFolderDataSource { #host: UmbControllerHost; constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts index 7a44f6e1be..0d5cc03732 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/scripts.repository.ts @@ -7,7 +7,7 @@ import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbEntityFolderRepository, + UmbFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree'; import { @@ -31,7 +31,7 @@ export class UmbScriptsRepository implements UmbTreeRepository, UmbDetailRepository, - UmbEntityFolderRepository, + UmbFolderRepository, UmbApi { #init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts index 3c46009a4b..b51f32b5df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts @@ -5,13 +5,13 @@ import { StylesheetResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DataSourceResponse, UmbEntityFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { DataSourceResponse, UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; //! this is of any type in the backend-api export type StylesheetGetFolderResponse = { path: string; parentPath: string; name: string }; -export class UmbStylesheetFolderServerDataSource implements UmbEntityFolderRepository { +export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource { #host: UmbControllerHost; constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts index 696209729b..b34b5a4605 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts @@ -12,7 +12,7 @@ import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbEntityFolderRepository, + UmbFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree'; import { @@ -41,7 +41,7 @@ export class UmbStylesheetRepository implements UmbTreeRepository, UmbDetailRepository, - UmbEntityFolderRepository, + UmbFolderRepository, UmbApi { #dataSource; From 304ecaffd824f8ab5b4d9e4da49cb0d71bbd72d2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 17 Nov 2023 20:10:12 +0100 Subject: [PATCH 003/786] initial setup --- .../folder/data-type-folder.repository.ts | 79 +++--------- ...=> data-type-folder.server.data-source.ts} | 69 ++++------- .../src/packages/core/data-type/tree/index.ts | 1 + .../common/folder/folder-modal.element.ts | 22 ++-- .../folder-data-source.interface.ts | 14 --- .../core/repository/data-source/index.ts | 1 - .../repository/folder-repository.interface.ts | 36 ------ .../folder/folder-data-source.interface.ts | 15 +++ .../folder/folder-repository-base.ts | 114 ++++++++++++++++++ .../folder/folder-repository.interface.ts | 30 +++++ .../packages/core/repository/folder/index.ts | 5 + .../packages/core/repository/folder/types.ts | 16 +++ .../src/packages/core/repository/index.ts | 2 +- .../scripts/entity-actions/manifests.ts | 5 +- .../scripts/repository/folder/index.ts | 2 + .../scripts/repository/folder/manifests.ts | 13 ++ .../folder/script-folder.repository.ts | 21 ++++ .../script-folder.server.data-source.ts | 93 ++++++++++++++ .../scripts/repository/manifests.ts | 3 +- .../scripts/repository/script.repository.ts | 51 -------- .../sources/script-folder.server.data.ts | 35 ------ .../repository/stylesheet.repository.ts | 60 --------- 22 files changed, 366 insertions(+), 321 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/{data-type-folder.server.data.ts => data-type-folder.server.data-source.ts} (50%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/folder-data-source.interface.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/folder-repository.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/sources/script-folder.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts index bc496b15f8..12f84d9223 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts @@ -1,69 +1,20 @@ -import { UmbDataTypeRepositoryBase } from '../data-type-repository-base.js'; -import { createFolderTreeItem } from '../utils.js'; -import { UmbDataTypeFolderServerDataSource } from './data-type-folder.server.data.js'; -import type { UmbFolderRepository, UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; +import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; +import { UmbDataTypeFolderServerDataSource } from './data-type-folder.server.data-source.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { CreateFolderRequestModel, FolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbDataTypeFolderRepository extends UmbDataTypeRepositoryBase implements UmbFolderRepository { - #folderSource: UmbFolderDataSource; +import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/repository'; +export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { - super(host); - this.#folderSource = new UmbDataTypeFolderServerDataSource(this); - } - - async createFolderScaffold(parentId: string | null) { - if (parentId === undefined) throw new Error('Parent id is missing'); - await this._init; - return this.#folderSource.createScaffold(parentId); - } - - // TODO: temp create type until backend is ready. Remove the id addition when new types are generated. - async createFolder(folderRequest: CreateFolderRequestModel & { id?: string | undefined }) { - if (!folderRequest) throw new Error('folder request is missing'); - await this._init; - - const { error } = await this.#folderSource.create(folderRequest); - - if (!error) { - // TODO: We need to push a new item to the tree store to update the tree. How do we want to create the tree items? - const folderTreeItem = createFolderTreeItem(folderRequest); - this._treeStore!.appendItems([folderTreeItem]); - } - - return { error }; - } - - async deleteFolder(id: string) { - if (!id) throw new Error('Key is missing'); - await this._init; - - const { error } = await this.#folderSource.delete(id); - - if (!error) { - this._treeStore!.removeItem(id); - } - - return { error }; - } - - async updateFolder(id: string, folder: FolderModelBaseModel) { - if (!id) throw new Error('Key is missing'); - if (!folder) throw new Error('Folder data is missing'); - await this._init; - - const { error } = await this.#folderSource.update(id, folder); - - if (!error) { - this._treeStore!.updateItem(id, { name: folder.name }); - } - - return { error }; - } - - async requestFolder(id: string) { - if (!id) throw new Error('Key is missing'); - await this._init; - return await this.#folderSource.read(id); + super(host, UmbDataTypeFolderServerDataSource, UMB_DATA_TYPE_TREE_STORE_CONTEXT, folderToDataTypeFolder); } } + +const folderToDataTypeTreeItemFolder = (folder: UmbFolderModel): FileSystemTreeItemPresentationModel => { + return { + id: folder.unique, + name: folder.name, + type: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, + hasChildren: false, + isFolder: true, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts similarity index 50% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts index 1f42f6dc3e..323971b75d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts @@ -1,11 +1,5 @@ -import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; -import { - DataTypeResource, - FolderResponseModel, - CreateFolderRequestModel, - FolderModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/repository'; +import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -28,83 +22,68 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { } /** - * Creates a Data Type folder with the given id from the server - * @param {string} parentId + * Fetches a Data Type folder from the server + * @param {string} unique * @return {*} * @memberof UmbDataTypeFolderServerDataSource */ - async createScaffold(parentId: string | null) { - const scaffold: FolderResponseModel = { - name: '', - id: UmbId.new(), - parentId, - }; - - return { data: scaffold }; - } - - /** - * Fetches a Data Type folder with the given id from the server - * @param {string} id - * @return {*} - * @memberof UmbDataTypeFolderServerDataSource - */ - async read(id: string) { - if (!id) throw new Error('Key is missing'); + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); return tryExecuteAndNotify( this.#host, DataTypeResource.getDataTypeFolderById({ - id: id, + id: unique, }), ); } /** - * Inserts a new Data Type folder on the server - * @param {folder} folder + * Creates a Data Type folder on the server + * @param {UmbCreateFolderModel} args * @return {*} * @memberof UmbDataTypeFolderServerDataSource */ - async create(folder: CreateFolderRequestModel) { - if (!folder) throw new Error('Folder is missing'); + async create(args: UmbCreateFolderModel) { + if (!args.parentUnique) throw new Error('Parent unique is missing'); + if (!args.name) throw new Error('Name is missing'); return tryExecuteAndNotify( this.#host, DataTypeResource.postDataTypeFolder({ - requestBody: folder, + requestBody: { parentId: args.parentUnique, name: args.name }, }), ); } /** * Updates a Data Type folder on the server - * @param {folder} folder + * @param {UmbUpdateFolderModel} args * @return {*} * @memberof UmbDataTypeFolderServerDataSource */ - async update(id: string, folder: FolderModelBaseModel) { - if (!id) throw new Error('Key is missing'); - if (!id) throw new Error('Folder data is missing'); + async update(args: UmbUpdateFolderModel) { + if (!args.unique) throw new Error('Unique is missing'); + if (!args.name) throw new Error('Folder name is missing'); return tryExecuteAndNotify( this.#host, DataTypeResource.putDataTypeFolderById({ - id: id, - requestBody: folder, + id: args.unique, + requestBody: { name: args.name }, }), ); } /** - * Deletes a Data Type folder with the given id on the server - * @param {string} id + * Deletes a Data Type folder on the server + * @param {string} unique * @return {*} * @memberof UmbDataTypeServerDataSource */ - async delete(id: string) { - if (!id) throw new Error('Key is missing'); + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); return tryExecuteAndNotify( this.#host, DataTypeResource.deleteDataTypeFolderById({ - id: id, + id: unique, }), ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts new file mode 100644 index 0000000000..04421b2ebe --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts @@ -0,0 +1 @@ +export { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from './data-type.tree.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts index 2396d7c86e..76a4e74592 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts @@ -2,7 +2,7 @@ import { css, html, customElement, property, query, state } from '@umbraco-cms/b import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbFolderModalData, UmbFolderModalValue, UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { IUmbFolderRepository } from '@umbraco-cms/backoffice/repository'; import { createExtensionApi, ManifestBase } from '@umbraco-cms/backoffice/extension-api'; import { FolderResponseModel, ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -29,7 +29,7 @@ export class UmbFolderModalElement extends UmbLitElement { #repositoryAlias?: string; #unique: string | null = null; #parentUnique: string | null = null; - #repository?: UmbFolderRepository; + #folderRepository?: IUmbFolderRepository; #repositoryObserver?: UmbObserverController; @state() @@ -51,8 +51,8 @@ export class UmbFolderModalElement extends UmbLitElement { try { // TODO: Maybe use the UmbExtensionApiController instead of createExtensionApi, to ensure usage of conditions: - const result = await createExtensionApi(repositoryManifest, [this]); - this.#repository = result; + const result = await createExtensionApi(repositoryManifest, [this]); + this.#folderRepository = result; this.#init(); } catch (error) { throw new Error('Could not create repository with alias: ' + this.#repositoryAlias + ''); @@ -72,16 +72,16 @@ export class UmbFolderModalElement extends UmbLitElement { } async #create() { - if (!this.#repository) throw new Error('Repository is required to create folder'); - const { data } = await this.#repository.createFolderScaffold(this.#parentUnique); + if (!this.#folderRepository) throw new Error('Repository is required to create folder'); + const { data } = await this.#folderRepository.createScaffold(this.#parentUnique); this._folder = data; this._isNew = true; } async #load() { if (!this.#unique) throw new Error('Unique is required to load folder'); - if (!this.#repository) throw new Error('Repository is required to create folder'); - const { data } = await this.#repository.requestFolder(this.#unique); + if (!this.#folderRepository) throw new Error('Repository is required to create folder'); + const { data } = await this.#folderRepository.request(this.#unique); this._folder = data; this._isNew = false; } @@ -100,7 +100,7 @@ export class UmbFolderModalElement extends UmbLitElement { async #onSubmit(event: SubmitEvent) { event.preventDefault(); if (!this._folder) throw new Error('Folder is not initialized correctly'); - if (!this.#repository) throw new Error('Repository is required to create folder'); + if (!this.#folderRepository) throw new Error('Repository is required to create folder'); const isValid = this._formElement?.checkValidity(); if (!isValid) return; @@ -112,11 +112,11 @@ export class UmbFolderModalElement extends UmbLitElement { this._folder = { ...this._folder, name: folderName }; if (this._isNew) { - const { error: createError } = await this.#repository.createFolder(this._folder); + const { error: createError } = await this.#folderRepository.create(this._folder); error = createError; } else { if (!this.#unique) throw new Error('Unique is required to update folder'); - const { error: updateError } = await this.#repository.updateFolder(this.#unique, this._folder); + const { error: updateError } = await this.#folderRepository.update(this.#unique, this._folder); error = updateError; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/folder-data-source.interface.ts deleted file mode 100644 index 3f5a45607e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/folder-data-source.interface.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { DataSourceResponse } from './data-source-response.interface.js'; -import { - CreateFolderRequestModel, - FolderResponseModel, - UpdateFolderResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; - -export interface UmbFolderDataSource { - createScaffold(parentId: string | null): Promise>; - create(data: CreateFolderRequestModel): Promise>; - read(unique: string): Promise>; - update(unique: string, data: CreateFolderRequestModel): Promise>; - delete(unique: string): Promise; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/index.ts index 77227e517f..4980a9bbe6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/index.ts @@ -4,6 +4,5 @@ export * from './data-source-response.interface.js'; export * from './data-source.interface.js'; export * from './extend-data-source-paged-response-data.function.js'; export * from './extend-data-source-response-data.function.js'; -export * from './folder-data-source.interface.js'; export * from './move-data-source.interface.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder-repository.interface.ts deleted file mode 100644 index ddf9268ddc..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder-repository.interface.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { - CreateFolderRequestModel, - FolderModelBaseModel, - FolderResponseModel, - ProblemDetails, - UpdateFolderResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; -import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; - -export interface UmbFolderRepository extends UmbApi { - createFolderScaffold(parentId: string | null): Promise<{ - data?: FolderResponseModel; - error?: ProblemDetails; - }>; - createFolder(folderRequest: CreateFolderRequestModel): Promise<{ - data?: string; - error?: ProblemDetails; - }>; - - requestFolder(unique: string): Promise<{ - data?: FolderResponseModel; - error?: ProblemDetails; - }>; - - updateFolder( - unique: string, - folder: FolderModelBaseModel, - ): Promise<{ - data?: UpdateFolderResponseModel; - error?: ProblemDetails; - }>; - - deleteFolder(id: string): Promise<{ - error?: ProblemDetails; - }>; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts new file mode 100644 index 0000000000..460dd0d461 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts @@ -0,0 +1,15 @@ +import { DataSourceResponse } from '../data-source/data-source-response.interface.js'; +import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { FolderResponseModel, UpdateFolderResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbFolderDataSourceConstructor { + new (host: UmbControllerHost): UmbFolderDataSource; +} + +export interface UmbFolderDataSource { + create(args: UmbCreateFolderModel): Promise>; + read(unique: string): Promise>; + update(args: UmbUpdateFolderModel): Promise>; + delete(unique: string): Promise; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts new file mode 100644 index 0000000000..512f20b59e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts @@ -0,0 +1,114 @@ +import { UmbRepositoryBase } from '../repository-base.js'; +import { type IUmbFolderRepository } from './folder-repository.interface.js'; +import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; +import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; + +export type UmbFolderToTreeItemMapper = (item: UmbCreateFolderModel) => FolderTreeItemType; + +export class UmbFolderRepositoryBase extends UmbRepositoryBase implements IUmbFolderRepository { + protected _init: Promise; + protected _treeStore?: UmbTreeStore; + #folderDataSource: UmbFolderDataSource; + #folderToTreeItemMapper: UmbFolderToTreeItemMapper; + + constructor( + host: UmbControllerHost, + folderDataSource: UmbFolderDataSourceConstructor, + treeStoreContextAlias: string | UmbContextToken, + folderToTreeItemMapper: UmbFolderToTreeItemMapper, + ) { + super(host); + this.#folderDataSource = new folderDataSource(this); + this.#folderToTreeItemMapper = folderToTreeItemMapper; + + this._init = this.consumeContext(treeStoreContextAlias, (instance) => { + this._treeStore = instance as UmbTreeStore; + }).asPromise(); + } + + async createScaffold(parentUnique: string | null) { + if (parentUnique === undefined) throw new Error('Parent unique is missing'); + + const scaffold = { + name: '', + parentUnique, + }; + + return { data: scaffold }; + } + + /** + * Creates a folder + * @param {UmbCreateFolderModel} args + * @return {*} + * @memberof UmbFolderRepositoryBase + */ + async create(args: UmbCreateFolderModel) { + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); + if (!args.name) throw new Error('Name is missing'); + await this._init; + + const { error } = await this.#folderDataSource.create(args); + + if (!error) { + const folderTreeItem = this.#folderToTreeItemMapper(args); + this._treeStore!.appendItems([folderTreeItem]); + } + + return { error }; + } + + /** + * Updates a folder + * @param {UmbUpdateFolderModel} args + * @return {*} + * @memberof UmbFolderRepositoryBase + */ + async update(args: UmbUpdateFolderModel) { + if (!args.unique) throw new Error('Unique is missing'); + if (!args.name) throw new Error('Folder name is missing'); + await this._init; + + const { error } = await this.#folderDataSource.update(args); + + if (!error) { + this._treeStore!.updateItem(args.unique, { name: args.name }); + } + + return { error }; + } + + /** + * Deletes a folder + * @param {string} unique + * @return {*} + * @memberof UmbFolderRepositoryBase + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + await this._init; + + const { error } = await this.#folderDataSource.delete(unique); + + if (!error) { + this._treeStore!.removeItem(unique); + } + + return { error }; + } + + /** + * Request a folder + * @param {string} unique + * @return {*} + * @memberof UmbFolderRepositoryBase + */ + async request(unique: string) { + if (!unique) throw new Error('Unique is missing'); + await this._init; + return await this.#folderDataSource.read(unique); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts new file mode 100644 index 0000000000..695265ba20 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts @@ -0,0 +1,30 @@ +import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; +import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; + +// TODO add response types folder folders +export interface IUmbFolderRepository extends UmbApi { + createScaffold(parentUnique: string | null): Promise<{ + data?: any; + error?: ProblemDetails; + }>; + + create(args: UmbCreateFolderModel): Promise<{ + data?: string; + error?: ProblemDetails; + }>; + + request(unique: string): Promise<{ + data?: any; + error?: ProblemDetails; + }>; + + update(args: UmbUpdateFolderModel): Promise<{ + data?: any; + error?: ProblemDetails; + }>; + + delete(unique: string): Promise<{ + error?: ProblemDetails; + }>; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts new file mode 100644 index 0000000000..bf4f3011cc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts @@ -0,0 +1,5 @@ +export { type IUmbFolderRepository } from './folder-repository.interface.js'; +export { type UmbFolderDataSource } from './folder-data-source.interface.js'; +export { UmbFolderRepositoryBase } from './folder-repository-base.js'; + +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts new file mode 100644 index 0000000000..2747592e8f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts @@ -0,0 +1,16 @@ +export interface UmbFolderModel { + unique: string; + parentUnique: string | null; + name: string; +} + +export interface UmbCreateFolderModel { + unique?: string; + parentUnique: string | null; + name: string; +} + +export interface UmbUpdateFolderModel { + unique: string; + name: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts index d39abba3d1..d7ad9ad08f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts @@ -1,10 +1,10 @@ export * from './data-source/index.js'; export * from './detail-repository.interface.js'; -export * from './folder-repository.interface.js'; export * from './collection-repository.interface.js'; export * from './move-repository.interface.js'; export * from './copy-repository.interface.js'; export * from './repository-items.manager.js'; export * from './repository-base.js'; +export * from './folder/index.js'; export * from './item/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts index 556c0194de..24d0eb9feb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts @@ -5,6 +5,7 @@ import { UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_EMPTY_ENTITY_TYPE, } from '../entity.js'; +import { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS } from '../repository/folder/index.js'; import { UmbCreateScriptAction } from './create/create-empty.action.js'; import { UmbCreateFolderEntityAction, @@ -64,9 +65,9 @@ const scriptFolderActions: Array = [ name: 'Create empty folder', api: UmbCreateFolderEntityAction, meta: { - icon: 'icon-add', + icon: 'icon-folder', label: 'Create folder', - repositoryAlias: UMB_SCRIPT_REPOSITORY_ALIAS, + repositoryAlias: UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, entityTypes: [UMB_SCRIPT_FOLDER_EMPTY_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/index.ts new file mode 100644 index 0000000000..f15267412b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/index.ts @@ -0,0 +1,2 @@ +export { UmbScriptFolderRepository } from './script-folder.repository.js'; +export { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/manifests.ts new file mode 100644 index 0000000000..b26d6b92b7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/manifests.ts @@ -0,0 +1,13 @@ +import { UmbScriptFolderRepository } from './script-folder.repository.js'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.Script.Folder'; + +const folderRepository: ManifestRepository = { + type: 'repository', + alias: UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, + name: 'Script Folder Repository', + api: UmbScriptFolderRepository, +}; + +export const manifests = [folderRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts new file mode 100644 index 0000000000..0aad867c79 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts @@ -0,0 +1,21 @@ +import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../../tree/index.js'; +import { UmbScriptFolderServerDataSource } from './script-folder.server.data-source.js'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/repository'; + +export class UmbScriptFolderRepository extends UmbFolderRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbScriptFolderServerDataSource, UMB_SCRIPT_TREE_STORE_CONTEXT, folderToScriptTreeItemFolder); + } +} + +// TODO: Update when uniques are implemented everywhere +const folderToScriptTreeItemFolder = (folder: UmbFolderModel): FileSystemTreeItemPresentationModel => { + return { + path: folder.unique, + name: folder.name, + type: UMB_SCRIPT_FOLDER_ENTITY_TYPE, + hasChildren: false, + isFolder: true, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts new file mode 100644 index 0000000000..2db5db5833 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts @@ -0,0 +1,93 @@ +import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/repository'; +import { ScriptResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Script folders that fetches data from the server + * @export + * @class UmbScriptFolderServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbScriptFolderServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbScriptFolderServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Fetches a Script folder from the server + * @param {string} unique + * @return {*} + * @memberof UmbScriptFolderServerDataSource + */ + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + return tryExecuteAndNotify( + this.#host, + ScriptResource.getScriptFolder({ + path: unique, + }), + ); + } + + /** + * Creates a Script folder on the server + * @param {UmbCreateFolderModel} args + * @return {*} + * @memberof UmbScriptFolderServerDataSource + */ + async create(args: UmbCreateFolderModel) { + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); + if (!args.name) throw new Error('Name is missing'); + return tryExecuteAndNotify( + this.#host, + ScriptResource.postScriptFolder({ + requestBody: { parentPath: args.parentUnique, name: args.name }, + }), + ); + } + + /** + * Updates a Script folder on the server + * @param {UmbUpdateFolderModel} args + * @return {*} + * @memberof UmbScriptFolderServerDataSource + */ + async update(args: UmbUpdateFolderModel): Promise { + throw new Error('Not implemented. Missing server endpoint'); + /* + if (!args.unique) throw new Error('Unique is missing'); + if (!args.name) throw new Error('Folder name is missing'); + return tryExecuteAndNotify( + this.#host, + ScriptResource.putScriptFolder({ + id: args.unique, + requestBody: { name: args.name }, + }), + ); + */ + } + + /** + * Deletes a Script folder on the server + * @param {string} unique + * @return {*} + * @memberof UmbScriptServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + return tryExecuteAndNotify( + this.#host, + ScriptResource.deleteScriptFolder({ + path: unique, + }), + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts index 3bda75da8d..b64a7e3ab9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts @@ -1,5 +1,6 @@ import { UmbScriptRepository } from './script.repository.js'; import { UmbScriptStore } from './script.store.js'; +import { manifests as folderManifests } from './folder/manifests.js'; import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_SCRIPT_REPOSITORY_ALIAS = 'Umb.Repository.Script'; @@ -19,4 +20,4 @@ const store: ManifestStore = { api: UmbScriptStore, }; -export const manifests = [repository, store]; +export const manifests = [repository, store, ...folderManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts index d90aad41b2..f71ff9599e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts @@ -1,19 +1,13 @@ import { UmbScriptTreeRepository } from '../tree/index.js'; import { UmbScriptServerDataSource } from './sources/script-detail.server.data.js'; -import { ScriptGetFolderResponse, UmbScriptFolderServerDataSource } from './sources/script-folder.server.data.js'; import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { - CreateFolderRequestModel, CreateScriptRequestModel, FileItemResponseModelBaseModel, - FolderModelBaseModel, - FolderResponseModel, - ProblemDetails, ScriptResponseModel, TextFileResponseModelBaseModel, UpdateScriptRequestModel, @@ -26,11 +20,9 @@ export class UmbScriptRepository extends UmbBaseController implements UmbDetailRepository, - UmbFolderRepository, UmbApi { #detailDataSource: UmbScriptServerDataSource; - #folderDataSource: UmbScriptFolderServerDataSource; // TODO: temp solution until it is automated #treeRepository = new UmbScriptTreeRepository(this); @@ -39,51 +31,8 @@ export class UmbScriptRepository super(host); this.#detailDataSource = new UmbScriptServerDataSource(this); - this.#folderDataSource = new UmbScriptFolderServerDataSource(this); } - //#region FOLDER - createFolderScaffold( - parentId: string | null, - ): Promise<{ data?: FolderResponseModel | undefined; error?: ProblemDetails | undefined }> { - const data: FolderResponseModel = { - name: '', - parentId, - }; - return Promise.resolve({ data, error: undefined }); - } - async createFolder( - requestBody: CreateFolderRequestModel, - ): Promise<{ data?: string | undefined; error?: ProblemDetails | undefined }> { - const req = { - parentPath: requestBody.parentId, - name: requestBody.name, - }; - const promise = this.#folderDataSource.create(req); - await promise; - this.#treeRepository.requestTreeItemsOf(requestBody.parentId ? requestBody.parentId : null); - return promise; - } - async requestFolder( - unique: string, - ): Promise<{ data?: ScriptGetFolderResponse | undefined; error?: ProblemDetails | undefined }> { - return this.#folderDataSource.read(unique); - } - updateFolder( - unique: string, - folder: FolderModelBaseModel, - ): Promise<{ data?: FolderModelBaseModel | undefined; error?: ProblemDetails | undefined }> { - throw new Error('Method not implemented.'); - } - async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> { - const { data } = await this.requestFolder(path); - const promise = this.#folderDataSource.delete(path); - await promise; - this.#treeRepository.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null); - return promise; - } - //#endregion - //#region DETAILS async requestByKey(path: string) { if (!path) throw new Error('Path is missing'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/sources/script-folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/sources/script-folder.server.data.ts deleted file mode 100644 index ef31e2ec67..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/sources/script-folder.server.data.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - CreateFolderRequestModel, - FolderModelBaseModel, - FolderResponseModel, - ScriptResource, -} from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DataSourceResponse, UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -//! this is of any type in the backend-api -export type ScriptGetFolderResponse = { path: string; parentPath: string; name: string }; - -export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { - #host: UmbControllerHost; - - constructor(host: UmbControllerHost) { - this.#host = host; - } - createScaffold(parentId: string | null): Promise> { - throw new Error('Method not implemented.'); - } - read(unique: string): Promise> { - return tryExecuteAndNotify(this.#host, ScriptResource.getScriptFolder({ path: unique })); - } - create(requestBody: CreateFolderRequestModel): Promise> { - return tryExecuteAndNotify(this.#host, ScriptResource.postScriptFolder({ requestBody })); - } - update(unique: string, data: CreateFolderRequestModel): Promise> { - throw new Error('Method not implemented.'); - } - delete(path: string): Promise> { - return tryExecuteAndNotify(this.#host, ScriptResource.deleteScriptFolder({ path })); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts index 458bd18fbc..9350ead8bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts @@ -1,30 +1,21 @@ import { StylesheetDetails } from '../index.js'; import { UmbStylesheetTreeRepository } from '../tree/index.js'; import { UmbStylesheetServerDataSource } from './sources/stylesheet.server.data.js'; -import { - StylesheetGetFolderResponse, - UmbStylesheetFolderServerDataSource, -} from './sources/stylesheet.folder.server.data.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbBaseController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { - CreateFolderRequestModel, CreateStylesheetRequestModel, CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, ExtractRichTextStylesheetRulesResponseModel, - FolderModelBaseModel, - FolderResponseModel, InterpolateRichTextStylesheetRequestModel, InterpolateRichTextStylesheetResponseModel, PagedStylesheetOverviewResponseModel, - ProblemDetails, RichTextStylesheetRulesResponseModel, TextFileResponseModelBaseModel, UpdateStylesheetRequestModel, @@ -36,11 +27,9 @@ export class UmbStylesheetRepository extends UmbBaseController implements UmbDetailRepository, - UmbFolderRepository, UmbApi { #dataSource; - #folderDataSource; // TODO: temp solution until it is automated #treeRepository = new UmbStylesheetTreeRepository(this); @@ -50,57 +39,8 @@ export class UmbStylesheetRepository // TODO: figure out how spin up get the correct data source this.#dataSource = new UmbStylesheetServerDataSource(this); - this.#folderDataSource = new UmbStylesheetFolderServerDataSource(this); } - //#region FOLDER: - - createFolderScaffold( - parentId: string | null, - ): Promise<{ data?: FolderResponseModel | undefined; error?: ProblemDetails | undefined }> { - const data: FolderResponseModel = { - name: '', - parentId, - }; - return Promise.resolve({ data, error: undefined }); - } - - async createFolder( - folderRequest: CreateFolderRequestModel, - ): Promise<{ data?: string | undefined; error?: ProblemDetails | undefined }> { - const req = { - parentPath: folderRequest.parentId, - name: folderRequest.name, - }; - const promise = this.#folderDataSource.create(req); - await promise; - this.#treeRepository.requestTreeItemsOf(folderRequest.parentId ? folderRequest.parentId : null); - return promise; - } - - async requestFolder( - unique: string, - ): Promise<{ data?: StylesheetGetFolderResponse | undefined; error?: ProblemDetails | undefined }> { - return this.#folderDataSource.read(unique); - } - - updateFolder( - unique: string, - folder: FolderModelBaseModel, - ): Promise<{ data?: FolderModelBaseModel | undefined; error?: ProblemDetails | undefined }> { - throw new Error('Method not implemented.'); - } - - async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> { - const { data } = await this.requestFolder(path); - const promise = this.#folderDataSource.delete(path); - await promise; - this.#treeRepository.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null); - return promise; - } - - //#endregion - //#region DETAIL: createScaffold( From 553c9000693dd95384dc2cf032bcae2bbbe4b461 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 17 Nov 2023 21:29:05 +0100 Subject: [PATCH 004/786] align naming --- .../data-type-create-options-modal.element.ts | 4 ++-- .../core/data-type/entity-actions/manifests.ts | 6 +++--- .../folder/data-type-folder.repository.ts | 7 ++++--- .../data-type-folder.server.data-source.ts | 2 +- .../core/data-type/repository/folder/index.ts | 2 +- .../data-type/repository/folder/manifests.ts | 4 ++-- .../core/data-type/repository/index.ts | 2 +- .../delete-folder/delete-folder.action.ts | 2 +- .../repository/detail-repository.interface.ts | 4 ++-- .../folder/folder-data-source.interface.ts | 13 ++++++------- .../folder/folder-repository-base.ts | 10 +++++----- .../folder/script-folder.repository.ts | 2 ++ .../folder/script-folder.server.data-source.ts | 18 +++++++++++++----- 13 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index fa3f8ebf77..cd27b7295e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -1,4 +1,4 @@ -import { DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../repository/folder/manifests.js'; +import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../repository/folder/index.js'; import { UmbDataTypeCreateOptionsModalData } from './index.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -30,7 +30,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { #onClick(event: PointerEvent) { event.stopPropagation(); const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { - repositoryAlias: DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, }); folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts index b3dc67e287..5a24ae1a5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts @@ -1,5 +1,6 @@ import { DATA_TYPE_FOLDER_ENTITY_TYPE, DATA_TYPE_ENTITY_TYPE } from '../entity.js'; import { DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../repository/detail/manifests.js'; +import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../repository/folder/index.js'; import { manifests as createManifests } from './create/manifests.js'; import { manifests as moveManifests } from './move/manifests.js'; import { manifests as copyManifests } from './copy/manifests.js'; @@ -10,7 +11,6 @@ import { UmbFolderUpdateEntityAction, } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; -import { DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../repository/folder/manifests.js'; const entityActions: Array = [ { @@ -35,7 +35,7 @@ const entityActions: Array = [ meta: { icon: 'icon-trash', label: 'Delete Folder...', - repositoryAlias: DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, entityTypes: [DATA_TYPE_ENTITY_TYPE, DATA_TYPE_FOLDER_ENTITY_TYPE], }, }, @@ -48,7 +48,7 @@ const entityActions: Array = [ meta: { icon: 'icon-edit', label: 'Rename Folder...', - repositoryAlias: DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, entityTypes: [DATA_TYPE_ENTITY_TYPE, DATA_TYPE_FOLDER_ENTITY_TYPE], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts index 12f84d9223..4d57301879 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts @@ -1,3 +1,4 @@ +import { DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbDataTypeFolderServerDataSource } from './data-type-folder.server.data-source.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -5,15 +6,15 @@ import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { - super(host, UmbDataTypeFolderServerDataSource, UMB_DATA_TYPE_TREE_STORE_CONTEXT, folderToDataTypeFolder); + super(host, UmbDataTypeFolderServerDataSource, UMB_DATA_TYPE_TREE_STORE_CONTEXT, folderToDataTypeTreeItemFolder); } } -const folderToDataTypeTreeItemFolder = (folder: UmbFolderModel): FileSystemTreeItemPresentationModel => { +const folderToDataTypeTreeItemFolder = (folder: UmbFolderModel) => { return { id: folder.unique, name: folder.name, - type: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, + type: DATA_TYPE_FOLDER_ENTITY_TYPE, hasChildren: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts index 323971b75d..a0b4c6dc11 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts @@ -44,7 +44,7 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { * @memberof UmbDataTypeFolderServerDataSource */ async create(args: UmbCreateFolderModel) { - if (!args.parentUnique) throw new Error('Parent unique is missing'); + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); return tryExecuteAndNotify( this.#host, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/index.ts index ef32956db8..14b67c42d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/index.ts @@ -1,2 +1,2 @@ export { UmbDataTypeFolderRepository } from './data-type-folder.repository.js'; -export { DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; +export { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/manifests.ts index 2adca73033..02eaeb7e88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/manifests.ts @@ -1,11 +1,11 @@ import { UmbDataTypeFolderRepository } from './data-type-folder.repository.js'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; -export const DATA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.DataType.Folder'; +export const UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.DataType.Folder'; const folderRepository: ManifestRepository = { type: 'repository', - alias: DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + alias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, name: 'Data Type Folder Repository', api: UmbDataTypeFolderRepository, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts index 52aa032705..0b0e39f737 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts @@ -1,5 +1,5 @@ export { UmbCopyDataTypeRepository, COPY_DATA_TYPE_REPOSITORY_ALIAS } from './copy/index.js'; export { UmbDataTypeDetailRepository, DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from './detail/index.js'; -export { UmbDataTypeFolderRepository, DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from './folder/index.js'; +export { UmbDataTypeFolderRepository, UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from './folder/index.js'; export { UmbDataTypeItemRepository, DATA_TYPE_ITEM_REPOSITORY_ALIAS } from './item/index.js'; export { UmbMoveDataTypeRepository, MOVE_DATA_TYPE_REPOSITORY_ALIAS } from './move/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts index 0d4d6f0ad6..9e1831f824 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts @@ -22,7 +22,7 @@ export class UmbDeleteFolderEntityAction extends async execute() { if (!this.repository || !this.#modalContext) return; - const { data: folder } = await this.repository.requestFolder(this.unique); + const { data: folder } = await this.repository.request(this.unique); if (folder) { // TODO: maybe we can show something about how many items are part of the folder? diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts index c13f3bea24..901424c69f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts @@ -6,11 +6,11 @@ export interface UmbDetailRepository< CreateResponseType = any, UpdateRequestType = any, ResponseType = any, - CreateScaffoldPresetType = Partial + CreateScaffoldPresetType = Partial, > { createScaffold( parentId: string | null, - preset?: Partial | CreateScaffoldPresetType + preset?: Partial | CreateScaffoldPresetType, ): Promise>; requestById(id: string): Promise>; byId(id: string): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts index 460dd0d461..e4cc8acb7c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts @@ -1,15 +1,14 @@ -import { DataSourceResponse } from '../data-source/data-source-response.interface.js'; -import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; +import { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source/data-source-response.interface.js'; +import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { FolderResponseModel, UpdateFolderResponseModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbFolderDataSourceConstructor { new (host: UmbControllerHost): UmbFolderDataSource; } export interface UmbFolderDataSource { - create(args: UmbCreateFolderModel): Promise>; - read(unique: string): Promise>; - update(args: UmbUpdateFolderModel): Promise>; - delete(unique: string): Promise; + create(args: UmbCreateFolderModel): Promise>; + read(unique: string): Promise>; + update(args: UmbUpdateFolderModel): Promise; + delete(unique: string): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts index 512f20b59e..e997b9ce47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts @@ -1,12 +1,12 @@ import { UmbRepositoryBase } from '../repository-base.js'; import { type IUmbFolderRepository } from './folder-repository.interface.js'; import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; -import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; +import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -export type UmbFolderToTreeItemMapper = (item: UmbCreateFolderModel) => FolderTreeItemType; +export type UmbFolderToTreeItemMapper = (item: UmbFolderModel) => FolderTreeItemType; export class UmbFolderRepositoryBase extends UmbRepositoryBase implements IUmbFolderRepository { protected _init: Promise; @@ -51,10 +51,10 @@ export class UmbFolderRepositoryBase extends UmbRepositoryBase implements IUmbFo if (!args.name) throw new Error('Name is missing'); await this._init; - const { error } = await this.#folderDataSource.create(args); + const { error, data } = await this.#folderDataSource.create(args); - if (!error) { - const folderTreeItem = this.#folderToTreeItemMapper(args); + if (data) { + const folderTreeItem = this.#folderToTreeItemMapper(folder); this._treeStore!.appendItems([folderTreeItem]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts index 0aad867c79..b06320bb10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts @@ -1,5 +1,7 @@ +import { UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbScriptFolderServerDataSource } from './script-folder.server.data-source.js'; +import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts index 2db5db5833..7c495e5d57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts @@ -24,7 +24,7 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { /** * Fetches a Script folder from the server * @param {string} unique - * @return {*} + * @return {UmbDataSourceResponse} * @memberof UmbScriptFolderServerDataSource */ async read(unique: string) { @@ -40,24 +40,32 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { /** * Creates a Script folder on the server * @param {UmbCreateFolderModel} args - * @return {*} + * @return {UmbDataSourceResponse} * @memberof UmbScriptFolderServerDataSource */ async create(args: UmbCreateFolderModel) { if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); - return tryExecuteAndNotify( + + const { data, error } = await tryExecuteAndNotify( this.#host, ScriptResource.postScriptFolder({ requestBody: { parentPath: args.parentUnique, name: args.name }, }), ); + + if (data) { + const folderData = { unique: data.path, name: data.name }; + return { data: folderData }; + } + + return { error }; } /** * Updates a Script folder on the server * @param {UmbUpdateFolderModel} args - * @return {*} + * @return {UmbDataSourceErrorResponse} * @memberof UmbScriptFolderServerDataSource */ async update(args: UmbUpdateFolderModel): Promise { @@ -78,7 +86,7 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { /** * Deletes a Script folder on the server * @param {string} unique - * @return {*} + * @return {UmbDataSourceErrorResponse} * @memberof UmbScriptServerDataSource */ async delete(unique: string) { From 0d1cda3fd40879e2a06e9e99d10107376fd7cea6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 17 Nov 2023 21:31:42 +0100 Subject: [PATCH 005/786] adjust to interface --- .../common/delete-folder/delete-folder.action.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts index 9e1831f824..f92697c38b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts @@ -6,9 +6,9 @@ import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_CONFIRM_MODAL, } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { IUmbFolderRepository } from '@umbraco-cms/backoffice/repository'; -export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { +export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { @@ -34,7 +34,7 @@ export class UmbDeleteFolderEntityAction extends }); await modalContext.onSubmit(); - await this.repository?.deleteFolder(this.unique); + await this.repository?.delete(this.unique); } } } From a4de3abfbe02e71bee51984ea3a410de02d2e415 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 17 Nov 2023 21:31:51 +0100 Subject: [PATCH 006/786] delete unused code --- .../src/packages/core/action/repository-action.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts index 9545bdcf97..0f4f902e7b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts @@ -9,20 +9,7 @@ export class UmbActionBase extends UmbBaseController implements super(host); new UmbExtensionApiInitializer(this, umbExtensionsRegistry, repositoryAlias, [this._host], (permitted, ctrl) => { - this.repository = permitted ? ctrl.api as RepositoryType : undefined; + this.repository = permitted ? (ctrl.api as RepositoryType) : undefined; }); - /*this.observe( - umbExtensionsRegistry.getByTypeAndAlias('repository', repositoryAlias), - async (repositoryManifest) => { - if (!repositoryManifest) return; - - try { - const result = await createExtensionApi(repositoryManifest, [this._host]); - this.repository = result as RepositoryType; - } catch (error) { - throw new Error('Could not create repository with alias: ' + repositoryAlias + ''); - } - } - );*/ } } From 369f9b5bcfa44dbcd2001e179a7bb02fac961f23 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 17 Nov 2023 21:36:46 +0100 Subject: [PATCH 007/786] use UmbExtensionApiInitializer --- .../common/folder/folder-modal.element.ts | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts index 76a4e74592..3d97e7aea7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts @@ -3,9 +3,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbFolderModalData, UmbFolderModalValue, UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { IUmbFolderRepository } from '@umbraco-cms/backoffice/repository'; -import { createExtensionApi, ManifestBase } from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { FolderResponseModel, ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-folder-modal') @@ -30,7 +29,6 @@ export class UmbFolderModalElement extends UmbLitElement { #unique: string | null = null; #parentUnique: string | null = null; #folderRepository?: IUmbFolderRepository; - #repositoryObserver?: UmbObserverController; @state() _folder?: FolderResponseModel; @@ -42,23 +40,12 @@ export class UmbFolderModalElement extends UmbLitElement { _isNew = false; #observeRepository() { - this.#repositoryObserver?.destroy(); if (!this.#repositoryAlias) return; - this.#repositoryObserver = this.observe( - umbExtensionsRegistry.getByTypeAndAlias('repository', this.#repositoryAlias), - async (repositoryManifest) => { - if (!repositoryManifest) return; - try { - // TODO: Maybe use the UmbExtensionApiController instead of createExtensionApi, to ensure usage of conditions: - const result = await createExtensionApi(repositoryManifest, [this]); - this.#folderRepository = result; - this.#init(); - } catch (error) { - throw new Error('Could not create repository with alias: ' + this.#repositoryAlias + ''); - } - }, - ); + new UmbExtensionApiInitializer(this, umbExtensionsRegistry, this.#repositoryAlias, [this], (permitted, ctrl) => { + this.#folderRepository = permitted ? (ctrl.api as IUmbFolderRepository) : undefined; + this.#init(); + }); } // TODO: so I ended up building a full workspace in the end. We should look into building the real workspace folder editor From 6510c777d043d416feecfe63be9fd2313d86492b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 17 Nov 2023 22:02:10 +0100 Subject: [PATCH 008/786] add parent path to folder data --- .../packages/core/repository/folder/folder-repository-base.ts | 4 ++-- .../repository/folder/script-folder.server.data-source.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts index e997b9ce47..7ad5c7e870 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts @@ -51,10 +51,10 @@ export class UmbFolderRepositoryBase extends UmbRepositoryBase implements IUmbFo if (!args.name) throw new Error('Name is missing'); await this._init; - const { error, data } = await this.#folderDataSource.create(args); + const { data, error } = await this.#folderDataSource.create(args); if (data) { - const folderTreeItem = this.#folderToTreeItemMapper(folder); + const folderTreeItem = this.#folderToTreeItemMapper(data); this._treeStore!.appendItems([folderTreeItem]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts index 7c495e5d57..e52b6c410d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts @@ -55,7 +55,7 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { ); if (data) { - const folderData = { unique: data.path, name: data.name }; + const folderData = { unique: data.path, parentUnique: data.parentPath || null, name: data.name }; return { data: folderData }; } From 14d4e55ad274612f10ae69bb471ad0d1c3d849ef Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 27 Nov 2023 12:48:13 +0100 Subject: [PATCH 009/786] remove renamed export --- .../src/packages/core/data-type/repository/detail/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/index.ts index 4f33f7d197..a0e4f41ce6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/index.ts @@ -1,2 +1,2 @@ export { UmbDataTypeDetailRepository } from './data-type-detail.repository.js'; -export { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS as DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; +export { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; From 9ed42e4ce5b1348ec1d92365c03aa9069e4ac2e9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 27 Nov 2023 12:50:00 +0100 Subject: [PATCH 010/786] Update index.ts --- .../src/packages/core/data-type/repository/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts index 0b0e39f737..b4d5dd0e81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts @@ -1,5 +1,5 @@ export { UmbCopyDataTypeRepository, COPY_DATA_TYPE_REPOSITORY_ALIAS } from './copy/index.js'; -export { UmbDataTypeDetailRepository, DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from './detail/index.js'; +export { UmbDataTypeDetailRepository, UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from './detail/index.js'; export { UmbDataTypeFolderRepository, UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from './folder/index.js'; export { UmbDataTypeItemRepository, DATA_TYPE_ITEM_REPOSITORY_ALIAS } from './item/index.js'; export { UmbMoveDataTypeRepository, MOVE_DATA_TYPE_REPOSITORY_ALIAS } from './move/index.js'; From 88474c6ce03b26b094b213f877ad319400cf4d33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Fri, 8 Dec 2023 13:30:42 +1300 Subject: [PATCH 011/786] move mathUtils and rename --- .../input-image-cropper/image-cropper-focus-setter.element.ts | 2 +- .../input-image-cropper/image-cropper-preview.element.ts | 2 +- .../components/input-image-cropper/image-cropper.element.ts | 2 +- src/Umbraco.Web.UI.Client/src/shared/utils/index.ts | 1 + .../input-image-cropper/mathUtils.ts => shared/utils/math.ts} | 0 5 files changed, 4 insertions(+), 3 deletions(-) rename src/Umbraco.Web.UI.Client/src/{packages/core/components/input-image-cropper/mathUtils.ts => shared/utils/math.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-focus-setter.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-focus-setter.element.ts index d8d9399b94..a2d30b73fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-focus-setter.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-focus-setter.element.ts @@ -1,5 +1,5 @@ -import { clamp } from './mathUtils.js'; import { UmbImageCropperFocalPoint } from './index.js'; +import { clamp } from '@umbraco-cms/backoffice/utils'; import { LitElement, PropertyValueMap, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-preview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-preview.element.ts index 438cf91f8e..dfaacbfdb7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-preview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-preview.element.ts @@ -1,5 +1,5 @@ -import { clamp, calculateExtrapolatedValue } from './mathUtils.js'; import type { UmbImageCropperCrop, UmbImageCropperFocalPoint } from './index.js'; +import { calculateExtrapolatedValue, clamp } from '@umbraco-cms/backoffice/utils'; import { LitElement, css, html, nothing, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-image-cropper-preview') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper.element.ts index 0db9ff8d86..f8a1d89946 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper.element.ts @@ -1,5 +1,5 @@ -import { clamp, calculateExtrapolatedValue, inverseLerp, lerp } from './mathUtils.js'; import { UmbImageCropperCrop, UmbImageCropperFocalPoint } from './index.js'; +import { calculateExtrapolatedValue, clamp, inverseLerp, lerp } from '@umbraco-cms/backoffice/utils'; import { customElement, property, diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts index 7b605bb5de..606398ea12 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/index.ts @@ -11,6 +11,7 @@ export * from './path-folder-name.function.js'; export * from './selection-manager.js'; export * from './udi-service.js'; export * from './umbraco-path.function.js'; +export * from './math.js'; declare global { interface Window { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/mathUtils.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/math.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/mathUtils.ts rename to src/Umbraco.Web.UI.Client/src/shared/utils/math.ts From 7bce0c84f03887d68052085e2b870dc9c3792621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Mon, 11 Dec 2023 17:50:27 +1300 Subject: [PATCH 012/786] use popover to make notifications always be on top of the page --- ...ckoffice-notification-container.element.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts index f386b64cdb..51df297a2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts @@ -1,5 +1,5 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { css, CSSResultGroup, html, customElement, state, repeat, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbNotificationHandler, UmbNotificationContext, @@ -9,6 +9,9 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-backoffice-notification-container') export class UmbBackofficeNotificationContainerElement extends UmbLitElement { + @query('#notifications') + private _notificationsElement?: HTMLElement; + @state() private _notifications?: UmbNotificationHandler[]; @@ -28,12 +31,16 @@ export class UmbBackofficeNotificationContainerElement extends UmbLitElement { this.observe(this._notificationContext.notifications, (notifications) => { this._notifications = notifications; + + // Close and instantly open the popover again to make sure it stays on top of all other content on the page + this._notificationsElement?.hidePopover(); + this._notificationsElement?.showPopover(); }); } render() { return html` - + ${this._notifications ? repeat( this._notifications, @@ -49,13 +56,20 @@ export class UmbBackofficeNotificationContainerElement extends UmbLitElement { UmbTextStyles, css` #notifications { - position: absolute; + overflow: auto; top: 0; left: 0; right: 0; - bottom: 70px; + bottom: 45px; height: auto; padding: var(--uui-size-layout-1); + + position: fixed; + width: 100vw; + background: 0; + outline: 0; + border: 0; + margin: 0; } `, ]; From dcfc29dcdd9b186de1c093ab4cede94a28968a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Mon, 11 Dec 2023 17:56:16 +1300 Subject: [PATCH 013/786] remove overflow --- .../backoffice-notification-container.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts index 51df297a2d..cfe0fed90e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts @@ -56,7 +56,6 @@ export class UmbBackofficeNotificationContainerElement extends UmbLitElement { UmbTextStyles, css` #notifications { - overflow: auto; top: 0; left: 0; right: 0; From 14fd6530a92d90b36fd0be7159b691b4d6e4752b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:06:07 +1300 Subject: [PATCH 014/786] add ts-ignore --- .../backoffice-notification-container.element.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts index cfe0fed90e..10abb5fba8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts @@ -33,7 +33,13 @@ export class UmbBackofficeNotificationContainerElement extends UmbLitElement { this._notifications = notifications; // Close and instantly open the popover again to make sure it stays on top of all other content on the page + // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet. + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore this._notificationsElement?.hidePopover(); + // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet. + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore this._notificationsElement?.showPopover(); }); } From 5bccf3e2a4f4012a5055bec2cf074cbb67f30e6d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 14:11:07 +0100 Subject: [PATCH 015/786] remove I in interface + mark class as abstract --- .../packages/core/repository/folder/folder-repository-base.ts | 4 ++-- .../core/repository/folder/folder-repository.interface.ts | 2 +- .../src/packages/core/repository/folder/index.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts index 7ad5c7e870..2867dc7d3e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts @@ -1,5 +1,5 @@ import { UmbRepositoryBase } from '../repository-base.js'; -import { type IUmbFolderRepository } from './folder-repository.interface.js'; +import { type UmbFolderRepository } from './folder-repository.interface.js'; import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -8,7 +8,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export type UmbFolderToTreeItemMapper = (item: UmbFolderModel) => FolderTreeItemType; -export class UmbFolderRepositoryBase extends UmbRepositoryBase implements IUmbFolderRepository { +export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbFolderRepository { protected _init: Promise; protected _treeStore?: UmbTreeStore; #folderDataSource: UmbFolderDataSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts index 695265ba20..7860b22004 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts @@ -3,7 +3,7 @@ import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; // TODO add response types folder folders -export interface IUmbFolderRepository extends UmbApi { +export interface UmbFolderRepository extends UmbApi { createScaffold(parentUnique: string | null): Promise<{ data?: any; error?: ProblemDetails; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts index bf4f3011cc..d95a8babe0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts @@ -1,4 +1,4 @@ -export { type IUmbFolderRepository } from './folder-repository.interface.js'; +export { type UmbFolderRepository } from './folder-repository.interface.js'; export { type UmbFolderDataSource } from './folder-data-source.interface.js'; export { UmbFolderRepositoryBase } from './folder-repository-base.js'; From d0d92aae1e860f188825bc77d5a953b5598ec6a9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 14:31:35 +0100 Subject: [PATCH 016/786] add folder scaffold model --- .../src/packages/core/repository/folder/types.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts index 2747592e8f..ed176ed548 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts @@ -1,3 +1,8 @@ +export interface UmbFolderScaffoldModel { + name: string; + parentUnique: string | null; +} + export interface UmbFolderModel { unique: string; parentUnique: string | null; From 3761cd772412eed7667d7a6743693be54ce25009 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 14:31:56 +0100 Subject: [PATCH 017/786] add types to folder repository interface --- .../folder/folder-repository.interface.ts | 34 ++++--------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts index 7860b22004..4a951ff63b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts @@ -1,30 +1,10 @@ -import { UmbCreateFolderModel, UmbUpdateFolderModel } from './types.js'; -import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source/index.js'; +import { UmbCreateFolderModel, UmbFolderModel, UmbFolderScaffoldModel, UmbUpdateFolderModel } from './types.js'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; - -// TODO add response types folder folders export interface UmbFolderRepository extends UmbApi { - createScaffold(parentUnique: string | null): Promise<{ - data?: any; - error?: ProblemDetails; - }>; - - create(args: UmbCreateFolderModel): Promise<{ - data?: string; - error?: ProblemDetails; - }>; - - request(unique: string): Promise<{ - data?: any; - error?: ProblemDetails; - }>; - - update(args: UmbUpdateFolderModel): Promise<{ - data?: any; - error?: ProblemDetails; - }>; - - delete(unique: string): Promise<{ - error?: ProblemDetails; - }>; + createScaffold(parentUnique: string | null): Promise>; + create(args: UmbCreateFolderModel): Promise>; + request(unique: string): Promise>; + update(args: UmbUpdateFolderModel): Promise>; + delete(unique: string): Promise; } From 74803fa8dcf394335f63ad7c7499930fa45dafa4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 14:32:29 +0100 Subject: [PATCH 018/786] remove I from interface --- .../common/delete-folder/delete-folder.action.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts index 9e93deb532..de0ff7163b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts @@ -6,9 +6,9 @@ import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_CONFIRM_MODAL, } from '@umbraco-cms/backoffice/modal'; -import { IUmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; -export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { +export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { From 37175152c7455d6cbb3ac65b2e000f14c382afc6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 14:32:39 +0100 Subject: [PATCH 019/786] Update folder-modal.element.ts --- .../core/modal/common/folder/folder-modal.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts index 3d97e7aea7..94bd7a4d9f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts @@ -2,7 +2,7 @@ import { css, html, customElement, property, query, state } from '@umbraco-cms/b import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbFolderModalData, UmbFolderModalValue, UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { IUmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { FolderResponseModel, ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -28,7 +28,7 @@ export class UmbFolderModalElement extends UmbLitElement { #repositoryAlias?: string; #unique: string | null = null; #parentUnique: string | null = null; - #folderRepository?: IUmbFolderRepository; + #folderRepository?: UmbFolderRepository; @state() _folder?: FolderResponseModel; @@ -43,7 +43,7 @@ export class UmbFolderModalElement extends UmbLitElement { if (!this.#repositoryAlias) return; new UmbExtensionApiInitializer(this, umbExtensionsRegistry, this.#repositoryAlias, [this], (permitted, ctrl) => { - this.#folderRepository = permitted ? (ctrl.api as IUmbFolderRepository) : undefined; + this.#folderRepository = permitted ? (ctrl.api as UmbFolderRepository) : undefined; this.#init(); }); } From 2aba7c4e9c7f222f0240ef0be981101b50082a32 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 14:35:45 +0100 Subject: [PATCH 020/786] temp any --- .../core/repository/folder/folder-repository-base.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts index 2867dc7d3e..79106b6fc6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts @@ -8,9 +8,10 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export type UmbFolderToTreeItemMapper = (item: UmbFolderModel) => FolderTreeItemType; +// TODO: add types instead of any export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbFolderRepository { protected _init: Promise; - protected _treeStore?: UmbTreeStore; + protected _treeStore?: UmbTreeStore; #folderDataSource: UmbFolderDataSource; #folderToTreeItemMapper: UmbFolderToTreeItemMapper; @@ -25,7 +26,7 @@ export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implemen this.#folderToTreeItemMapper = folderToTreeItemMapper; this._init = this.consumeContext(treeStoreContextAlias, (instance) => { - this._treeStore = instance as UmbTreeStore; + this._treeStore = instance as UmbTreeStore; }).asPromise(); } From b02a7026f3517b1e0de7e59b1238059e654226d8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 15:24:48 +0100 Subject: [PATCH 021/786] explicit naming --- .../create/modal/data-type-create-options-modal.element.ts | 2 +- .../entity-action/common/create-folder/create-folder.action.ts | 2 +- .../entity-action/common/folder-update/folder-update.action.ts | 2 +- .../src/packages/core/modal/token/folder-modal.token.ts | 2 +- .../create/modal/document-type-create-options-modal.element.ts | 2 +- .../create/modal/media-type-create-options-modal.element.ts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index 9481b2d80c..734848030f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -31,7 +31,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { event.stopPropagation(); const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { data: { - repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + folderRepositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, }, }); folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts index 3bfea2109c..ba5ac9ae79 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts @@ -24,7 +24,7 @@ export class UmbCreateFolderEntityAction extends const modalContext = this.#modalContext.open(UMB_FOLDER_MODAL, { data: { - repositoryAlias: this.repositoryAlias, + folderRepositoryAlias: this.repositoryAlias, parentUnique: this.unique ?? null, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts index 524af9ab00..c2170aa9f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts @@ -26,7 +26,7 @@ export class UmbFolderUpdateEntityAction< const modalContext = this.#modalContext.open(UMB_FOLDER_MODAL, { data: { - repositoryAlias: this.repositoryAlias, + folderRepositoryAlias: this.repositoryAlias, unique: this.unique, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts index 1e7df95db1..5e856d1e0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts @@ -2,7 +2,7 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; import { FolderResponseModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbFolderModalData { - repositoryAlias: string; + folderRepositoryAlias: string; unique?: string; parentUnique?: string | null; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts index 4b7e18dc9b..ab0b9d146c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -31,7 +31,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { event.stopPropagation(); const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { data: { - repositoryAlias: DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS, + folderRepositoryAlias: DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS, }, }); folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index bb154f5629..a8bc287328 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -31,7 +31,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { event.stopPropagation(); const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { data: { - repositoryAlias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, + folderRepositoryAlias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, }, }); folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); From d9cdcfb844b6c4dfaa9dd483230dca08703ef534 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 15:25:04 +0100 Subject: [PATCH 022/786] remove custom implementation --- .../repository/partial-view.repository.ts | 48 ------------------- 1 file changed, 48 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts index dc93248c61..a46a644f93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts @@ -1,16 +1,13 @@ import { UmbPartialViewTreeRepository } from '../tree/index.js'; import { UmbPartialViewDetailServerDataSource } from './sources/partial-view-detail.server.data-source.js'; -import { UmbPartialViewFolderServerDataSource } from './sources/partial-view-folder.server.data-source.js'; import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { - CreateFolderRequestModel, CreatePartialViewRequestModel, PagedSnippetItemResponseModel, PartialViewItemResponseModel, PartialViewResponseModel, - ProblemDetails, TextFileResponseModelBaseModel, UpdatePartialViewRequestModel, } from '@umbraco-cms/backoffice/backend-api'; @@ -18,10 +15,8 @@ import { DataSourceResponse, UmbDataSourceErrorResponse, UmbDetailRepository, - UmbFolderRepository, } from '@umbraco-cms/backoffice/repository'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbId } from '@umbraco-cms/backoffice/id'; export class UmbPartialViewRepository extends UmbBaseController @@ -33,61 +28,18 @@ export class UmbPartialViewRepository PartialViewResponseModel, string >, - UmbFolderRepository, UmbApi { #detailDataSource: UmbPartialViewDetailServerDataSource; - #folderDataSource: UmbPartialViewFolderServerDataSource; // TODO: temp solution until it is automated #treeRepository = new UmbPartialViewTreeRepository(this); constructor(host: UmbControllerHostElement) { super(host); - this.#detailDataSource = new UmbPartialViewDetailServerDataSource(this); - this.#folderDataSource = new UmbPartialViewFolderServerDataSource(this); } - //#region FOLDER - createFolderScaffold(parentId: string | null) { - const data = { - id: UmbId.new(), - name: '', - parentId, - }; - return Promise.resolve({ data }); - } - - async createFolder(requestBody: CreateFolderRequestModel) { - const req = { - parentPath: requestBody.parentId, - name: requestBody.name, - }; - - const promise = this.#folderDataSource.create(req); - await promise; - this.#treeRepository.requestTreeItemsOf(requestBody.parentId ? requestBody.parentId : null); - return promise; - } - - async requestFolder(unique: string) { - return this.#folderDataSource.read(unique); - } - - updateFolder(): any { - throw new Error('Method not implemented.'); - } - - async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> { - const { data } = await this.requestFolder(path); - const promise = this.#folderDataSource.delete(path); - await promise; - this.#treeRepository.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null); - return promise; - } - //#endregion - //#region DETAILS async requestByKey(path: string) { if (!path) throw new Error('Path is missing'); From 1fc6259cb60fcd8bb095ffb1eab287362971310d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 15:25:15 +0100 Subject: [PATCH 023/786] clean up folder modal --- .../common/folder/folder-modal.element.ts | 154 +++++++++--------- 1 file changed, 80 insertions(+), 74 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts index 94bd7a4d9f..c905e6cd47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts @@ -1,37 +1,23 @@ -import { css, html, customElement, property, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbFolderModalData, UmbFolderModalValue, UmbModalContext } from '@umbraco-cms/backoffice/modal'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderModalData, UmbFolderModalValue, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { + UmbCreateFolderModel, + UmbFolderModel, + UmbFolderRepository, + UmbFolderScaffoldModel, + UmbUpdateFolderModel, +} from '@umbraco-cms/backoffice/repository'; import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; -import { FolderResponseModel, ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-folder-modal') -export class UmbFolderModalElement extends UmbLitElement { - @property({ attribute: false }) - modalContext?: UmbModalContext; - - private _data?: UmbFolderModalData; - @property({ type: Object, attribute: false }) - public get data() { - return this._data; - } - public set data(value: UmbFolderModalData | undefined) { - this._data = value; - this.#unique = value?.unique || null; - this.#parentUnique = value?.parentUnique || null; - this.#repositoryAlias = value?.repositoryAlias; - this.#observeRepository(); - } - - #repositoryAlias?: string; - #unique: string | null = null; - #parentUnique: string | null = null; - #folderRepository?: UmbFolderRepository; +export class UmbFolderModalElement extends UmbModalBaseElement { + @state() + _folder?: UmbFolderModel; @state() - _folder?: FolderResponseModel; + _folderScaffold?: UmbFolderScaffoldModel; @state() _headline?: string; @@ -39,76 +25,96 @@ export class UmbFolderModalElement extends UmbLitElement { @state() _isNew = false; - #observeRepository() { - if (!this.#repositoryAlias) return; + #folderRepository?: UmbFolderRepository; - new UmbExtensionApiInitializer(this, umbExtensionsRegistry, this.#repositoryAlias, [this], (permitted, ctrl) => { - this.#folderRepository = permitted ? (ctrl.api as UmbFolderRepository) : undefined; - this.#init(); - }); + connectedCallback(): void { + super.connectedCallback(); + this.#observeRepository(); + } + + #observeRepository() { + if (!this.data?.folderRepositoryAlias) throw new Error('A folder repository alias is required'); + + new UmbExtensionApiInitializer( + this, + umbExtensionsRegistry, + this.data.folderRepositoryAlias, + [this], + (permitted, ctrl) => { + this.#folderRepository = permitted ? (ctrl.api as UmbFolderRepository) : undefined; + this.#init(); + }, + ); } - // TODO: so I ended up building a full workspace in the end. We should look into building the real workspace folder editor - // and see if we can use that in this modal instead of this custom logic. #init() { - if (this.#unique) { + if (this.data?.unique) { this.#load(); } else { - this.#create(); + this.#createScaffold(); } } - async #create() { - if (!this.#folderRepository) throw new Error('Repository is required to create folder'); - const { data } = await this.#folderRepository.createScaffold(this.#parentUnique); - this._folder = data; - this._isNew = true; + async #createScaffold() { + if (!this.#folderRepository) throw new Error('A folder repository is required to create a folder'); + if (!this.data?.parentUnique) throw new Error('A parent unique is required to create folder'); + + const { data } = await this.#folderRepository.createScaffold(this.data.parentUnique); + + if (data) { + this._folderScaffold = data; + this._isNew = true; + } } async #load() { - if (!this.#unique) throw new Error('Unique is required to load folder'); - if (!this.#folderRepository) throw new Error('Repository is required to create folder'); - const { data } = await this.#folderRepository.request(this.#unique); - this._folder = data; - this._isNew = false; - } + if (!this.#folderRepository) throw new Error('A folder repository is required to load a folder'); + if (!this.data?.unique) throw new Error('A unique is required to load folder'); - @query('#dataTypeFolderForm') - private _formElement?: HTMLFormElement; + const { data } = await this.#folderRepository.request(this.data.unique); - #onCancel() { - this.modalContext?.reject(); - } - - #submitForm() { - this._formElement?.requestSubmit(); + if (data) { + this._folder = data; + this._isNew = false; + } } async #onSubmit(event: SubmitEvent) { event.preventDefault(); - if (!this._folder) throw new Error('Folder is not initialized correctly'); - if (!this.#folderRepository) throw new Error('Repository is required to create folder'); - const isValid = this._formElement?.checkValidity(); + const form = event.target as HTMLFormElement; + if (!form) return; + + const isValid = form.checkValidity(); if (!isValid) return; - let error: ProblemDetails | undefined; - - const formData = new FormData(this._formElement); - const folderName = formData.get('name') as string; - this._folder = { ...this._folder, name: folderName }; + const formData = new FormData(form); + const name = formData.get('name') as string; if (this._isNew) { - const { error: createError } = await this.#folderRepository.create(this._folder); - error = createError; + if (!this._folderScaffold) throw new Error('A folder scaffold has not been loaded to create a folder'); + this.#create({ ...this._folderScaffold, name }); } else { - if (!this.#unique) throw new Error('Unique is required to update folder'); - const { error: updateError } = await this.#folderRepository.update(this.#unique, this._folder); - error = updateError; + if (!this._folder) throw new Error('A folder has not been loaded to update'); + this.#update({ unique: this._folder.unique, name }); } + } + + async #create(data: UmbCreateFolderModel) { + if (!this.#folderRepository) throw new Error('A folder repository is required to create a folder'); + const { error } = await this.#folderRepository.create(data); if (!error) { - this.modalContext?.submit(); + this._submitModal(); + } + } + + async #update(data: UmbUpdateFolderModel) { + if (!this.#folderRepository) throw new Error('A folder repository is required to update a folder'); + const { error } = await this.#folderRepository.update(data); + + if (!error) { + this._submitModal(); } } @@ -117,7 +123,7 @@ export class UmbFolderModalElement extends UmbLitElement { -
+ Folder name - + + label=${this._isNew ? 'Create Folder' : 'Update Folder'}> `; } From 76caf08abf3e653180ed9c6220d0c6aef23fc76d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 15:27:39 +0100 Subject: [PATCH 024/786] fix import --- .../src/packages/core/data-type/tree/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts index 04421b2ebe..9206374a6c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts @@ -1 +1 @@ -export { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from './data-type.tree.store.js'; +export { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from './data-type-tree.store.js'; From 3cf3370fb7e470d68357efea2ce9a3a188571bb5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 15:38:01 +0100 Subject: [PATCH 025/786] fetch data after create and update --- .../data-type-folder.server.data-source.ts | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts index a0b4c6dc11..6eb61cdbfc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts @@ -29,12 +29,23 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { */ async read(unique: string) { if (!unique) throw new Error('Unique is missing'); - return tryExecuteAndNotify( + + const { data, error } = await tryExecuteAndNotify( this.#host, DataTypeResource.getDataTypeFolderById({ id: unique, }), ); + + if (data) { + return { + unique: data.id, + name: data.name, + parentUnique: data.parentId, + }; + } + + return { error }; } /** @@ -46,12 +57,19 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { async create(args: UmbCreateFolderModel) { if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); - return tryExecuteAndNotify( + + const { data, error } = await tryExecuteAndNotify( this.#host, DataTypeResource.postDataTypeFolder({ requestBody: { parentId: args.parentUnique, name: args.name }, }), ); + + if (data) { + return this.read(data); + } + + return { error }; } /** @@ -63,13 +81,20 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { async update(args: UmbUpdateFolderModel) { if (!args.unique) throw new Error('Unique is missing'); if (!args.name) throw new Error('Folder name is missing'); - return tryExecuteAndNotify( + + const { data, error } = await tryExecuteAndNotify( this.#host, DataTypeResource.putDataTypeFolderById({ id: args.unique, requestBody: { name: args.name }, }), ); + + if (data) { + return this.read(data); + } + + return { error }; } /** From 7bb07914f1bf67c07bfe4d03b8f94c2a08399366 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 12 Dec 2023 15:43:39 +0100 Subject: [PATCH 026/786] clean up create options modal --- .../entity-actions/create/manifests.ts | 6 +---- .../data-type-create-options-modal.element.ts | 25 ++++--------------- 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts index 3d36ce2587..4c52456651 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts @@ -1,8 +1,4 @@ -import { - UMB_DATA_TYPE_ENTITY_TYPE, - UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, - UMB_DATA_TYPE_ROOT_ENTITY_TYPE, -} from '../../entity.js'; +import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, UMB_DATA_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/detail/manifests.js'; import { UmbCreateDataTypeEntityAction } from './create.action.js'; import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index 734848030f..9eb341322d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -4,20 +4,13 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalManagerContext, - UmbModalContext, UMB_FOLDER_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-data-type-create-options-modal') -export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { - @property({ attribute: false }) - modalContext?: UmbModalContext; - - @property({ type: Object }) - data?: UmbDataTypeCreateOptionsModalData; - +export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement { #modalContext?: UmbModalManagerContext; constructor() { @@ -34,16 +27,8 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { folderRepositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, }, }); - folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); - } - // close the modal when navigating to data type - #onNavigate() { - this.modalContext?.submit(); - } - - #onCancel() { - this.modalContext?.reject(); + folderModalHandler?.onSubmit().then(() => this._submitModal()); } render() { @@ -54,14 +39,14 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { + @click=${this._submitModal}> - Cancel + Cancel `; } From 03c940dbafc64bc2f2536786db46273dde16400c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 12:11:18 +0100 Subject: [PATCH 027/786] split create and update into two modals --- .../entity-actions/create/create.action.ts | 2 +- .../data-type-create-options-modal.element.ts | 8 +- .../entity-actions/create/modal/index.ts | 2 +- .../create-folder/create-folder.action.ts | 4 +- .../folder-update/folder-update.action.ts | 4 +- .../folder/folder-create-modal.element.ts | 49 +++++ .../folder/folder-modal-element-base.ts | 100 ++++++++++ .../common/folder/folder-modal.element.ts | 171 ------------------ .../folder/folder-update-modal.element.ts | 47 +++++ .../packages/core/modal/common/manifests.ts | 12 +- .../modal/token/folder-create-modal.token.ts | 21 +++ .../core/modal/token/folder-modal.token.ts | 19 -- .../modal/token/folder-update-modal.token.ts | 21 +++ .../src/packages/core/modal/token/index.ts | 3 +- ...ument-type-create-options-modal.element.ts | 4 +- ...media-type-create-options-modal.element.ts | 4 +- 16 files changed, 263 insertions(+), 208 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts index 0a8472fd50..df5ec45503 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts @@ -21,7 +21,7 @@ export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/index.ts index 934e7007aa..b7ed7d8376 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/index.ts @@ -1,7 +1,7 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbDataTypeCreateOptionsModalData { - parentKey: string | null; + parentUnique: string | null; } export const UMB_DATA_TYPE_CREATE_OPTIONS_MODAL = new UmbModalToken( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts index ba5ac9ae79..fa39f4aa35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts @@ -4,7 +4,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_FOLDER_MODAL, + UMB_FOLDER_CREATE_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; @@ -22,7 +22,7 @@ export class UmbCreateFolderEntityAction extends async execute() { if (!this.repository || !this.#modalContext) return; - const modalContext = this.#modalContext.open(UMB_FOLDER_MODAL, { + const modalContext = this.#modalContext.open(UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: this.repositoryAlias, parentUnique: this.unique ?? null, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts index c2170aa9f0..d2685b35a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts @@ -3,7 +3,7 @@ import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-ap import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, - UMB_FOLDER_MODAL, + UMB_FOLDER_CREATE_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, } from '@umbraco-cms/backoffice/modal'; import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; @@ -24,7 +24,7 @@ export class UmbFolderUpdateEntityAction< async execute() { if (!this.repository || !this.#modalContext) return; - const modalContext = this.#modalContext.open(UMB_FOLDER_MODAL, { + const modalContext = this.#modalContext.open(UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: this.repositoryAlias, unique: this.unique, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts new file mode 100644 index 0000000000..05e223f4d8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts @@ -0,0 +1,49 @@ +import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; +import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbFolderCreateModalData, UmbFolderCreateModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbFolderScaffoldModel } from '@umbraco-cms/backoffice/repository'; + +@customElement('umb-folder-create-modal') +export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< + UmbFolderCreateModalData, + UmbFolderCreateModalValue +> { + @state() + _folderScaffold?: UmbFolderScaffoldModel; + + async init() { + if (!this.folderRepository) throw new Error('A folder repository is required to create a folder'); + if (!this.data?.parentUnique) throw new Error('A parent unique is required to create folder'); + + const { data } = await this.folderRepository.createScaffold(this.data.parentUnique); + + if (data) { + this._folderScaffold = data; + } + } + + async onFormSubmit({ name }: { name: string }): Promise { + if (!this.folderRepository) throw new Error('A folder repository is required to create a folder'); + if (!this._folderScaffold) throw new Error('The folder scaffold was not initialized correctly'); + + const data = { + ...this._folderScaffold, + name, + }; + + const { data: createdFolder } = await this.folderRepository.create(data); + + if (createdFolder) { + this.value = { folder: createdFolder }; + this._submitModal(); + } + } +} + +export default UmbFolderCreateModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-folder-create-modal': UmbFolderCreateModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts new file mode 100644 index 0000000000..68c8c9ec70 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts @@ -0,0 +1,100 @@ +import { css, html, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { UmbFolderModel, UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; + +export abstract class UmbFolderModalElementBase< + FolderModalDataType extends { folderRepositoryAlias: string }, + FolderModalValueType extends { folder: UmbFolderModel }, +> extends UmbModalBaseElement { + @state() + _headline?: string; + + @state() + _isNew = false; + + folderRepository?: UmbFolderRepository; + + connectedCallback(): void { + super.connectedCallback(); + this.#observeRepository(); + } + + #observeRepository() { + if (!this.data?.folderRepositoryAlias) throw new Error('A folder repository alias is required'); + + new UmbExtensionApiInitializer( + this, + umbExtensionsRegistry, + this.data.folderRepositoryAlias, + [this], + (permitted, ctrl) => { + this.folderRepository = permitted ? (ctrl.api as UmbFolderRepository) : undefined; + this.init(); + }, + ); + } + + abstract init(): void; + abstract onFormSubmit({ name }: { name: string }): void; + + async #onSubmit(event: SubmitEvent) { + event.preventDefault(); + + const form = event.target as HTMLFormElement; + if (!form) return; + + const isValid = form.checkValidity(); + if (!isValid) return; + + const formData = new FormData(form); + const name = formData.get('name') as string; + + this.onFormSubmit({ name }); + } + + render() { + return html` + + + + + + Folder name + + + + + + + + + + `; + } + + static styles = [ + UmbTextStyles, + css` + #name { + width: 100%; + } + `, + ]; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts deleted file mode 100644 index c905e6cd47..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal.element.ts +++ /dev/null @@ -1,171 +0,0 @@ -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbFolderModalData, UmbFolderModalValue, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { - UmbCreateFolderModel, - UmbFolderModel, - UmbFolderRepository, - UmbFolderScaffoldModel, - UmbUpdateFolderModel, -} from '@umbraco-cms/backoffice/repository'; -import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; - -@customElement('umb-folder-modal') -export class UmbFolderModalElement extends UmbModalBaseElement { - @state() - _folder?: UmbFolderModel; - - @state() - _folderScaffold?: UmbFolderScaffoldModel; - - @state() - _headline?: string; - - @state() - _isNew = false; - - #folderRepository?: UmbFolderRepository; - - connectedCallback(): void { - super.connectedCallback(); - this.#observeRepository(); - } - - #observeRepository() { - if (!this.data?.folderRepositoryAlias) throw new Error('A folder repository alias is required'); - - new UmbExtensionApiInitializer( - this, - umbExtensionsRegistry, - this.data.folderRepositoryAlias, - [this], - (permitted, ctrl) => { - this.#folderRepository = permitted ? (ctrl.api as UmbFolderRepository) : undefined; - this.#init(); - }, - ); - } - - #init() { - if (this.data?.unique) { - this.#load(); - } else { - this.#createScaffold(); - } - } - - async #createScaffold() { - if (!this.#folderRepository) throw new Error('A folder repository is required to create a folder'); - if (!this.data?.parentUnique) throw new Error('A parent unique is required to create folder'); - - const { data } = await this.#folderRepository.createScaffold(this.data.parentUnique); - - if (data) { - this._folderScaffold = data; - this._isNew = true; - } - } - - async #load() { - if (!this.#folderRepository) throw new Error('A folder repository is required to load a folder'); - if (!this.data?.unique) throw new Error('A unique is required to load folder'); - - const { data } = await this.#folderRepository.request(this.data.unique); - - if (data) { - this._folder = data; - this._isNew = false; - } - } - - async #onSubmit(event: SubmitEvent) { - event.preventDefault(); - - const form = event.target as HTMLFormElement; - if (!form) return; - - const isValid = form.checkValidity(); - if (!isValid) return; - - const formData = new FormData(form); - const name = formData.get('name') as string; - - if (this._isNew) { - if (!this._folderScaffold) throw new Error('A folder scaffold has not been loaded to create a folder'); - this.#create({ ...this._folderScaffold, name }); - } else { - if (!this._folder) throw new Error('A folder has not been loaded to update'); - this.#update({ unique: this._folder.unique, name }); - } - } - - async #create(data: UmbCreateFolderModel) { - if (!this.#folderRepository) throw new Error('A folder repository is required to create a folder'); - const { error } = await this.#folderRepository.create(data); - - if (!error) { - this._submitModal(); - } - } - - async #update(data: UmbUpdateFolderModel) { - if (!this.#folderRepository) throw new Error('A folder repository is required to update a folder'); - const { error } = await this.#folderRepository.update(data); - - if (!error) { - this._submitModal(); - } - } - - render() { - return html` - - - -
- - Folder name - - -
-
-
- - - -
- `; - } - - static styles = [ - UmbTextStyles, - css` - #name { - width: 100%; - } - `, - ]; -} - -export default UmbFolderModalElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-folder-modal': UmbFolderModalElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts new file mode 100644 index 0000000000..2f872ac7e5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts @@ -0,0 +1,47 @@ +import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; +import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbFolderUpdateModalData, UmbFolderUpdateModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbFolderModel } from '@umbraco-cms/backoffice/repository'; + +@customElement('umb-folder-update-modal') +export class UmbFolderModalElement extends UmbFolderModalElementBase< + UmbFolderUpdateModalData, + UmbFolderUpdateModalValue +> { + @state() + _folder?: UmbFolderModel; + + async init() { + if (!this.folderRepository) throw new Error('A folder repository is required to load a folder'); + if (!this.data?.unique) throw new Error('A unique is required to load folder'); + + const { data } = await this.folderRepository.request(this.data.unique); + + if (data) { + this._folder = data; + } + } + + async onFormSubmit({ name }: { name: string }) { + if (!this.folderRepository) throw new Error('A folder repository is required to update a folder'); + if (this._folder === undefined) throw new Error('The folder was not initialized correctly'); + + const { data } = await this.folderRepository.update({ + ...this._folder, + name, + }); + + if (data) { + this.value = { folder: data }; + this._submitModal(); + } + } +} + +export default UmbFolderModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-folder-update-modal': UmbFolderModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts index 033f818926..71b0100cf0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts @@ -9,9 +9,15 @@ const modals: Array = [ }, { type: 'modal', - alias: 'Umb.Modal.Folder', - name: 'Folder Modal', - js: () => import('./folder/folder-modal.element.js'), + alias: 'Umb.Modal.Folder.Update', + name: 'Update Folder Modal', + js: () => import('./folder/folder-update-modal.element.js'), + }, + { + type: 'modal', + alias: 'Umb.Modal.Folder.Create', + name: 'Create Folder Modal', + js: () => import('./folder/folder-create-modal.element.js'), }, { type: 'modal', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts new file mode 100644 index 0000000000..e5fec3b46a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts @@ -0,0 +1,21 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import { UmbFolderModel } from '@umbraco-cms/backoffice/repository'; + +export interface UmbFolderCreateModalData { + folderRepositoryAlias: string; + parentUnique: string | null; +} + +export interface UmbFolderCreateModalValue { + folder: UmbFolderModel; +} + +export const UMB_FOLDER_CREATE_MODAL = new UmbModalToken( + 'Umb.Modal.Folder.Create', + { + modal: { + type: 'sidebar', + size: 'small', + }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts deleted file mode 100644 index 5e856d1e0d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-modal.token.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { FolderResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -export interface UmbFolderModalData { - folderRepositoryAlias: string; - unique?: string; - parentUnique?: string | null; -} - -export interface UmbFolderModalValue { - folder: FolderResponseModel; -} - -export const UMB_FOLDER_MODAL = new UmbModalToken('Umb.Modal.Folder', { - modal: { - type: 'sidebar', - size: 'small', - }, -}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts new file mode 100644 index 0000000000..150786bd0f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts @@ -0,0 +1,21 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import { UmbFolderModel } from '@umbraco-cms/backoffice/repository'; + +export interface UmbFolderUpdateModalData { + folderRepositoryAlias: string; + unique: string; +} + +export interface UmbFolderUpdateModalValue { + folder: UmbFolderModel; +} + +export const UMB_FOLDER_UPDATE_MODAL = new UmbModalToken( + 'Umb.Modal.Folder.Update', + { + modal: { + type: 'sidebar', + size: 'small', + }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts index 85671dca66..e293320804 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts @@ -27,7 +27,8 @@ export * from './template-modal.token.js'; export * from './template-picker-modal.token.js'; export * from './user-group-picker-modal.token.js'; export * from './user-picker-modal.token.js'; -export * from './folder-modal.token.js'; +export * from './folder-create-modal.token.js'; +export * from './folder-update-modal.token.js'; export * from './partial-view-picker-modal.token.js'; export * from './dictionary-item-picker-modal.token.js'; export * from './data-type-picker-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts index ab0b9d146c..3994fe399d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -5,7 +5,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalManagerContext, UmbModalContext, - UMB_FOLDER_MODAL, + UMB_FOLDER_CREATE_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -29,7 +29,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { #onClick(event: PointerEvent) { event.stopPropagation(); - const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { + const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index a8bc287328..e274030bcf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -5,7 +5,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalManagerContext, UmbModalContext, - UMB_FOLDER_MODAL, + UMB_FOLDER_CREATE_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -29,7 +29,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { #onClick(event: PointerEvent) { event.stopPropagation(); - const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_MODAL, { + const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, }, From 5af7715e17864370f3db5cdf18c3e8fe67c9d332 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 12:12:45 +0100 Subject: [PATCH 028/786] pass parentUnique to create modal --- .../create/modal/data-type-create-options-modal.element.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index 8a15e54323..9b29ceae44 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -22,9 +22,12 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement Date: Wed, 13 Dec 2023 12:16:06 +0100 Subject: [PATCH 029/786] pass correct data + use correct modal --- .../common/folder-update/folder-update.action.ts | 4 ++-- .../modal/document-type-create-options-modal.element.ts | 3 +++ .../create/modal/media-type-create-options-modal.element.ts | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts index d2685b35a5..ebd65b236a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts @@ -3,8 +3,8 @@ import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-ap import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, - UMB_FOLDER_CREATE_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_FOLDER_UPDATE_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; @@ -24,7 +24,7 @@ export class UmbFolderUpdateEntityAction< async execute() { if (!this.repository || !this.#modalContext) return; - const modalContext = this.#modalContext.open(UMB_FOLDER_CREATE_MODAL, { + const modalContext = this.#modalContext.open(UMB_FOLDER_UPDATE_MODAL, { data: { folderRepositoryAlias: this.repositoryAlias, unique: this.unique, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts index 3994fe399d..f808033417 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -29,9 +29,12 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { #onClick(event: PointerEvent) { event.stopPropagation(); + if (this.data?.parentKey === undefined) throw new Error('A parent unique is required to create a folder'); + const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS, + parentUnique: this.data?.parentKey, }, }); folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index e274030bcf..95c00c1149 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -29,9 +29,12 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { #onClick(event: PointerEvent) { event.stopPropagation(); + if (this.data?.parentKey === undefined) throw new Error('A parent unique is required to create a folder'); + const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_CREATE_MODAL, { data: { folderRepositoryAlias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, + parentUnique: this.data?.parentKey, }, }); folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); From d0803459b61fd98b7cafd36e5ca286f57a702c00 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 12:55:23 +0100 Subject: [PATCH 030/786] fix data problem --- .../folder/data-type-folder.server.data-source.ts | 6 ++++-- .../common/folder/folder-create-modal.element.ts | 7 ++++++- .../modal/common/folder/folder-modal-element-base.ts | 5 +---- .../common/folder/folder-update-modal.element.ts | 12 ++++-------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts index 6eb61cdbfc..08716fcf15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts @@ -38,11 +38,13 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { ); if (data) { - return { + const mappedData = { unique: data.id, name: data.name, - parentUnique: data.parentId, + parentUnique: data.parentId || null, }; + + return { data: mappedData }; } return { error }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts index 05e223f4d8..b00cb6be0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts @@ -11,9 +11,14 @@ export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< @state() _folderScaffold?: UmbFolderScaffoldModel; + constructor() { + super(); + this._isNew = true; + } + async init() { if (!this.folderRepository) throw new Error('A folder repository is required to create a folder'); - if (!this.data?.parentUnique) throw new Error('A parent unique is required to create folder'); + if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create folder'); const { data } = await this.folderRepository.createScaffold(this.data.parentUnique); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts index 68c8c9ec70..b5e496dfb4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts @@ -9,9 +9,6 @@ export abstract class UmbFolderModalElementBase< FolderModalDataType extends { folderRepositoryAlias: string }, FolderModalValueType extends { folder: UmbFolderModel }, > extends UmbModalBaseElement { - @state() - _headline?: string; - @state() _isNew = false; @@ -68,7 +65,7 @@ export abstract class UmbFolderModalElementBase< id="name" name="name" placeholder="Enter folder name..." - .value="${this.value.folder.name}" + .value="${this.value?.folder?.name || ''}" required required-message="Folder name is required">
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts index 2f872ac7e5..d03ce59048 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts @@ -1,16 +1,12 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; -import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbFolderUpdateModalData, UmbFolderUpdateModalValue } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderModel } from '@umbraco-cms/backoffice/repository'; @customElement('umb-folder-update-modal') export class UmbFolderModalElement extends UmbFolderModalElementBase< UmbFolderUpdateModalData, UmbFolderUpdateModalValue > { - @state() - _folder?: UmbFolderModel; - async init() { if (!this.folderRepository) throw new Error('A folder repository is required to load a folder'); if (!this.data?.unique) throw new Error('A unique is required to load folder'); @@ -18,16 +14,16 @@ export class UmbFolderModalElement extends UmbFolderModalElementBase< const { data } = await this.folderRepository.request(this.data.unique); if (data) { - this._folder = data; + this.value = { folder: data }; } } async onFormSubmit({ name }: { name: string }) { if (!this.folderRepository) throw new Error('A folder repository is required to update a folder'); - if (this._folder === undefined) throw new Error('The folder was not initialized correctly'); + if (this.value.folder === undefined) throw new Error('The folder was not initialized correctly'); const { data } = await this.folderRepository.update({ - ...this._folder, + ...this.value.folder, name, }); From 7b5e268018559ed9a89c56861961aace8816aa42 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 13:16:00 +0100 Subject: [PATCH 031/786] move folder files into tree module --- .../repository/folder/data-type-folder.repository.ts | 2 +- .../repository/folder/data-type-folder.server.data-source.ts | 2 +- .../common/create-folder/create-folder.action.ts | 2 +- .../common/delete-folder/delete-folder.action.ts | 2 +- .../common/folder-update/folder-update.action.ts | 2 +- .../core/modal/common/folder/folder-create-modal.element.ts | 2 +- .../core/modal/common/folder/folder-modal-element-base.ts | 2 +- .../packages/core/modal/token/folder-create-modal.token.ts | 2 +- .../packages/core/modal/token/folder-update-modal.token.ts | 2 +- .../src/packages/core/repository/index.ts | 1 - .../folder/folder-data-source.interface.ts | 5 ++++- .../{repository => tree}/folder/folder-repository-base.ts | 2 +- .../folder/folder-repository.interface.ts | 2 +- .../src/packages/core/{repository => tree}/folder/index.ts | 0 .../src/packages/core/{repository => tree}/folder/types.ts | 0 src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts | 3 +++ .../sources/partial-view-folder.server.data-source.ts | 2 +- .../scripts/repository/folder/script-folder.repository.ts | 2 +- .../repository/folder/script-folder.server.data-source.ts | 2 +- .../repository/sources/stylesheet.folder.server.data.ts | 2 +- 20 files changed, 22 insertions(+), 17 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/{repository => tree}/folder/folder-data-source.interface.ts (81%) rename src/Umbraco.Web.UI.Client/src/packages/core/{repository => tree}/folder/folder-repository-base.ts (97%) rename src/Umbraco.Web.UI.Client/src/packages/core/{repository => tree}/folder/folder-repository.interface.ts (94%) rename src/Umbraco.Web.UI.Client/src/packages/core/{repository => tree}/folder/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{repository => tree}/folder/types.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts index 8df2271cce..ea512fe114 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts @@ -2,7 +2,7 @@ import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbDataTypeFolderServerDataSource } from './data-type-folder.server.data-source.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts index 08716fcf15..a65d2876bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/repository'; +import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts index fa39f4aa35..fbb6c9dc5d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts @@ -6,7 +6,7 @@ import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_FOLDER_CREATE_MODAL, } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; export class UmbCreateFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts index de0ff7163b..cfa646dc05 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts @@ -6,7 +6,7 @@ import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_CONFIRM_MODAL, } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts index ebd65b236a..3e1857145b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts @@ -6,7 +6,7 @@ import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UMB_FOLDER_UPDATE_MODAL, } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; export class UmbFolderUpdateEntityAction< T extends UmbFolderRepository = UmbFolderRepository, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts index b00cb6be0f..0dd25d0bba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts @@ -1,7 +1,7 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbFolderCreateModalData, UmbFolderCreateModalValue } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderScaffoldModel } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderScaffoldModel } from '@umbraco-cms/backoffice/tree'; @customElement('umb-folder-create-modal') export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts index b5e496dfb4..739efd9946 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts @@ -1,7 +1,7 @@ import { css, html, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderModel, UmbFolderRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderModel, UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts index e5fec3b46a..b8350a192a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts @@ -1,5 +1,5 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderModel } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; export interface UmbFolderCreateModalData { folderRepositoryAlias: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts index 150786bd0f..77ca31aa87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts @@ -1,5 +1,5 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderModel } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; export interface UmbFolderUpdateModalData { folderRepositoryAlias: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts index cec5c8c7d0..cb03d6ebba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts @@ -6,6 +6,5 @@ export * from './copy-repository.interface.js'; export * from './repository-items.manager.js'; export * from './repository-base.js'; -export * from './folder/index.js'; export * from './item/index.js'; export * from './detail/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts index e4cc8acb7c..f4924a98b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts @@ -1,4 +1,7 @@ -import { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source/data-source-response.interface.js'; +import { + DataSourceResponse, + UmbDataSourceErrorResponse, +} from '../../repository/data-source/data-source-response.interface.js'; import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 79106b6fc6..57ad7d2cae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -1,4 +1,4 @@ -import { UmbRepositoryBase } from '../repository-base.js'; +import { UmbRepositoryBase } from '../../repository/repository-base.js'; import { type UmbFolderRepository } from './folder-repository.interface.js'; import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts index 4a951ff63b..6e94499dfa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts @@ -1,4 +1,4 @@ -import { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source/index.js'; +import { DataSourceResponse, UmbDataSourceErrorResponse } from '../../repository/data-source/index.js'; import { UmbCreateFolderModel, UmbFolderModel, UmbFolderScaffoldModel, UmbUpdateFolderModel } from './types.js'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbFolderRepository extends UmbApi { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/repository/folder/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts index 6f69e964ce..a3c11cfc66 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts @@ -19,4 +19,7 @@ export * from './unique-tree-item/index.js'; // Data Source export * from './data-source/index.js'; +// Folder +export * from './folder/index.js'; + export { UmbTreeRepositoryBase } from './tree-repository-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-view-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-view-folder.server.data-source.ts index 24d861bf34..bff507fc9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-view-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/sources/partial-view-folder.server.data-source.ts @@ -1,6 +1,6 @@ import { CreateFolderRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderDataSource } from '@umbraco-cms/backoffice/tree'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts index b06320bb10..e55fee8f1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts @@ -3,7 +3,7 @@ import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbScriptFolderServerDataSource } from './script-folder.server.data-source.js'; import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; export class UmbScriptFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts index e52b6c410d..5db0b97192 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/repository'; +import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts index a04963274d..0072ec6de6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts @@ -1,6 +1,6 @@ import { CreateFolderRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderDataSource } from '@umbraco-cms/backoffice/repository'; +import { UmbFolderDataSource } from '@umbraco-cms/backoffice/tree'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource { From 158b7a9ac897103bac38280d4521931d4c179d48 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 13:30:07 +0100 Subject: [PATCH 032/786] move folder files into tree module --- .../data-type-create-options-modal.element.ts | 6 +++--- .../create-folder/create-folder.action.ts | 8 ++------ .../folder-update/folder-update.action.ts | 8 ++------ .../packages/core/modal/common/manifests.ts | 12 ------------ .../src/packages/core/modal/token/index.ts | 2 -- .../src/packages/core/tree/folder/index.ts | 1 + .../src/packages/core/tree/folder/manifests.ts | 3 +++ .../modal}/folder-create-modal.element.ts | 7 +++++-- .../folder/modal}/folder-create-modal.token.ts | 0 .../folder/modal}/folder-modal-element-base.ts | 0 .../modal}/folder-update-modal.element.ts | 2 +- .../folder/modal}/folder-update-modal.token.ts | 0 .../packages/core/tree/folder/modal/index.ts | 2 ++ .../core/tree/folder/modal/manifests.ts | 18 ++++++++++++++++++ ...cument-type-create-options-modal.element.ts | 6 +++--- .../media-type-create-options-modal.element.ts | 6 +++--- 16 files changed, 43 insertions(+), 38 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts rename src/Umbraco.Web.UI.Client/src/packages/core/{modal/common/folder => tree/folder/modal}/folder-create-modal.element.ts (89%) rename src/Umbraco.Web.UI.Client/src/packages/core/{modal/token => tree/folder/modal}/folder-create-modal.token.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{modal/common/folder => tree/folder/modal}/folder-modal-element-base.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{modal/common/folder => tree/folder/modal}/folder-update-modal.element.ts (97%) rename src/Umbraco.Web.UI.Client/src/packages/core/{modal/token => tree/folder/modal}/folder-update-modal.token.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index 9b29ceae44..fc50aece9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -3,11 +3,11 @@ import { UmbDataTypeCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { - UmbModalManagerContext, - UMB_FOLDER_CREATE_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + type UmbModalManagerContext, UmbModalBaseElement, + UMB_MODAL_MANAGER_CONTEXT_TOKEN, } from '@umbraco-cms/backoffice/modal'; +import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; @customElement('umb-data-type-create-options-modal') export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts index fbb6c9dc5d..f0e884eaff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts @@ -1,12 +1,8 @@ import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_FOLDER_CREATE_MODAL, -} from '@umbraco-cms/backoffice/modal'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; +import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { type UmbFolderRepository, UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; export class UmbCreateFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts index 3e1857145b..3e26bcfa49 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts @@ -1,12 +1,8 @@ import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_FOLDER_UPDATE_MODAL, -} from '@umbraco-cms/backoffice/modal'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; +import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { type UmbFolderRepository, UMB_FOLDER_UPDATE_MODAL } from '@umbraco-cms/backoffice/tree'; export class UmbFolderUpdateEntityAction< T extends UmbFolderRepository = UmbFolderRepository, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts index 71b0100cf0..fef7d23937 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/manifests.ts @@ -7,18 +7,6 @@ const modals: Array = [ name: 'Confirm Modal', js: () => import('./confirm/confirm-modal.element.js'), }, - { - type: 'modal', - alias: 'Umb.Modal.Folder.Update', - name: 'Update Folder Modal', - js: () => import('./folder/folder-update-modal.element.js'), - }, - { - type: 'modal', - alias: 'Umb.Modal.Folder.Create', - name: 'Create Folder Modal', - js: () => import('./folder/folder-create-modal.element.js'), - }, { type: 'modal', alias: 'Umb.Modal.IconPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts index e293320804..bc8ea771b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts @@ -27,8 +27,6 @@ export * from './template-modal.token.js'; export * from './template-picker-modal.token.js'; export * from './user-group-picker-modal.token.js'; export * from './user-picker-modal.token.js'; -export * from './folder-create-modal.token.js'; -export * from './folder-update-modal.token.js'; export * from './partial-view-picker-modal.token.js'; export * from './dictionary-item-picker-modal.token.js'; export * from './data-type-picker-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts index d95a8babe0..c644a39717 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts @@ -3,3 +3,4 @@ export { type UmbFolderDataSource } from './folder-data-source.interface.js'; export { UmbFolderRepositoryBase } from './folder-repository-base.js'; export * from './types.js'; +export * from './modal/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts new file mode 100644 index 0000000000..6361b1f612 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/manifests.ts @@ -0,0 +1,3 @@ +import { manifests as modalManifests } from './modal/manifests.js'; + +export const manifests = [...modalManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts index 0dd25d0bba..567801b713 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts @@ -1,7 +1,10 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbFolderCreateModalData, UmbFolderCreateModalValue } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderScaffoldModel } from '@umbraco-cms/backoffice/tree'; +import { + UmbFolderScaffoldModel, + UmbFolderCreateModalData, + UmbFolderCreateModalValue, +} from '@umbraco-cms/backoffice/tree'; @customElement('umb-folder-create-modal') export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-create-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-modal-element-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.element.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.element.ts index d03ce59048..578c3ff396 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/folder/folder-update-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.element.ts @@ -1,6 +1,6 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbFolderUpdateModalData, UmbFolderUpdateModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbFolderUpdateModalData, UmbFolderUpdateModalValue } from '@umbraco-cms/backoffice/tree'; @customElement('umb-folder-update-modal') export class UmbFolderModalElement extends UmbFolderModalElementBase< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/token/folder-update-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/index.ts new file mode 100644 index 0000000000..53af90e067 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/index.ts @@ -0,0 +1,2 @@ +export * from './folder-create-modal.token.js'; +export * from './folder-update-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/manifests.ts new file mode 100644 index 0000000000..84b5ebc9f2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/manifests.ts @@ -0,0 +1,18 @@ +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.Folder.Update', + name: 'Update Folder Modal', + js: () => import('./folder-update-modal.element.js'), + }, + { + type: 'modal', + alias: 'Umb.Modal.Folder.Create', + name: 'Create Folder Modal', + js: () => import('./folder-create-modal.element.js'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts index f808033417..a7dbacba22 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -3,11 +3,11 @@ import { UmbDocumentTypeCreateOptionsModalData } from './index.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { - UmbModalManagerContext, - UmbModalContext, - UMB_FOLDER_CREATE_MODAL, + type UmbModalManagerContext, + type UmbModalContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN, } from '@umbraco-cms/backoffice/modal'; +import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-document-type-create-options-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index 95c00c1149..c1fe4d9617 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -3,11 +3,11 @@ import { UmbMediaTypeCreateOptionsModalData } from './index.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { - UmbModalManagerContext, - UmbModalContext, - UMB_FOLDER_CREATE_MODAL, + type UmbModalManagerContext, + type UmbModalContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN, } from '@umbraco-cms/backoffice/modal'; +import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-media-type-create-options-modal') From 48de22a61b0122f435a5e2b5e433805a30970bda Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 13:57:22 +0100 Subject: [PATCH 033/786] export manifests --- src/Umbraco.Web.UI.Client/src/packages/core/index.ts | 2 ++ src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts | 3 +++ 2 files changed, 5 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts index 21661c1e53..ed3634c8c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -11,6 +11,7 @@ import { manifests as themeManifests } from './themes/manifests.js'; import { manifests as conditionManifests } from './extension-registry/conditions/manifests.js'; import { manifests as cultureManifests } from './culture/manifests.js'; import { manifests as dataTypeManifests } from './data-type/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; import { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; @@ -56,6 +57,7 @@ const manifests: Array = [ ...themeManifests, ...cultureManifests, ...dataTypeManifests, + ...treeManifests, ]; export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts new file mode 100644 index 0000000000..8426073c94 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/manifests.ts @@ -0,0 +1,3 @@ +import { manifests as folderManifests } from './folder/manifests.js'; + +export const manifests = [...folderManifests]; From f853db9ffe0828e6b425f16a674e21d6cd30ad4e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 14:24:31 +0100 Subject: [PATCH 034/786] clean up --- .../repository/folder/data-type-folder.repository.ts | 1 + .../folder/data-type-folder.server.data-source.ts | 12 ++++++------ .../core/tree/folder/folder-data-source.interface.ts | 2 +- .../core/tree/folder/folder-repository-base.ts | 8 +++++--- .../src/packages/core/tree/folder/types.ts | 3 ++- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts index ea512fe114..7f13fa3517 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts @@ -13,6 +13,7 @@ export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { const folderToDataTypeTreeItemMapper = (folder: UmbFolderModel) => { return { id: folder.unique, + parentId: folder.parentUnique, name: folder.name, type: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, hasChildren: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts index a65d2876bb..9a6c0b4cdc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts @@ -60,15 +60,15 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); - const { data, error } = await tryExecuteAndNotify( + const { error } = await tryExecuteAndNotify( this.#host, DataTypeResource.postDataTypeFolder({ requestBody: { parentId: args.parentUnique, name: args.name }, }), ); - if (data) { - return this.read(data); + if (!error) { + return this.read(args.unique); } return { error }; @@ -84,7 +84,7 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { if (!args.unique) throw new Error('Unique is missing'); if (!args.name) throw new Error('Folder name is missing'); - const { data, error } = await tryExecuteAndNotify( + const { error } = await tryExecuteAndNotify( this.#host, DataTypeResource.putDataTypeFolderById({ id: args.unique, @@ -92,8 +92,8 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { }), ); - if (data) { - return this.read(data); + if (!error) { + return this.read(args.unique); } return { error }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts index f4924a98b5..cd98baffd2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts @@ -12,6 +12,6 @@ export interface UmbFolderDataSourceConstructor { export interface UmbFolderDataSource { create(args: UmbCreateFolderModel): Promise>; read(unique: string): Promise>; - update(args: UmbUpdateFolderModel): Promise; + update(args: UmbUpdateFolderModel): Promise>; delete(unique: string): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 57ad7d2cae..2b68c2e641 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -5,6 +5,7 @@ import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './ty import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbId } from '@umbraco-cms/backoffice/id'; export type UmbFolderToTreeItemMapper = (item: UmbFolderModel) => FolderTreeItemType; @@ -34,6 +35,7 @@ export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implemen if (parentUnique === undefined) throw new Error('Parent unique is missing'); const scaffold = { + unique: UmbId.new(), name: '', parentUnique, }; @@ -73,13 +75,13 @@ export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implemen if (!args.name) throw new Error('Folder name is missing'); await this._init; - const { error } = await this.#folderDataSource.update(args); + const { data, error } = await this.#folderDataSource.update(args); - if (!error) { + if (data) { this._treeStore!.updateItem(args.unique, { name: args.name }); } - return { error }; + return { data, error }; } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts index ed176ed548..9ccd85788b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts @@ -1,4 +1,5 @@ export interface UmbFolderScaffoldModel { + unique: string; name: string; parentUnique: string | null; } @@ -10,7 +11,7 @@ export interface UmbFolderModel { } export interface UmbCreateFolderModel { - unique?: string; + unique: string; parentUnique: string | null; name: string; } From f7793dbae67a7ddcc7b7df9a20dd20308ac5dd24 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 14:36:45 +0100 Subject: [PATCH 035/786] move folder entity action into folder module --- .../packages/core/data-type/entity-actions/manifests.ts | 8 ++------ .../src/packages/core/entity-action/common/index.ts | 3 --- .../entity-action}/create-folder/create-folder.action.ts | 2 +- .../entity-action}/delete-folder/delete-folder.action.ts | 2 +- .../entity-action}/folder-update/folder-update.action.ts | 2 +- .../src/packages/core/tree/folder/entity-action/index.ts | 3 +++ .../src/packages/core/tree/folder/index.ts | 1 + .../templating/partial-views/entity-actions/manifests.ts | 7 ++----- .../templating/scripts/entity-actions/manifests.ts | 7 ++----- .../templating/stylesheets/entity-actions/manifests.ts | 7 ++----- 10 files changed, 15 insertions(+), 27 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => tree/folder/entity-action}/create-folder/create-folder.action.ts (93%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => tree/folder/entity-action}/delete-folder/delete-folder.action.ts (94%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => tree/folder/entity-action}/folder-update/folder-update.action.ts (93%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts index dece6b73db..53f2a8dd6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts @@ -4,12 +4,8 @@ import { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../repository/detail/inde import { manifests as createManifests } from './create/manifests.js'; import { manifests as moveManifests } from './move/manifests.js'; import { manifests as copyManifests } from './copy/manifests.js'; - -import { - UmbDeleteEntityAction, - UmbDeleteFolderEntityAction, - UmbFolderUpdateEntityAction, -} from '@umbraco-cms/backoffice/entity-action'; +import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts index fa2f3a18c3..7ec974c77d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts @@ -1,8 +1,5 @@ export * from './copy/copy.action.js'; export * from './delete/delete.action.js'; -export * from './delete-folder/delete-folder.action.js'; -export * from './folder-update/folder-update.action.js'; export * from './move/move.action.js'; export * from './sort-children-of/sort-children-of.action.js'; export * from './trash/trash.action.js'; -export * from './create-folder/create-folder.action.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts index f0e884eaff..28a474da8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '../../entity-action.js'; +import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts index cfa646dc05..a1bc34892c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '../../entity-action.js'; +import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts index 3e26bcfa49..e3e2b4b78e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '../../entity-action.js'; +import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts new file mode 100644 index 0000000000..fbdc5850f0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/index.ts @@ -0,0 +1,3 @@ +export * from './delete-folder/delete-folder.action.js'; +export * from './folder-update/folder-update.action.js'; +export * from './create-folder/create-folder.action.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts index c644a39717..2cc99ce102 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/index.ts @@ -4,3 +4,4 @@ export { UmbFolderRepositoryBase } from './folder-repository-base.js'; export * from './types.js'; export * from './modal/index.js'; +export * from './entity-action/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts index af499e75a7..9cb3417fe5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts @@ -7,11 +7,8 @@ import { UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from '../repository/index.js'; import { UmbCreateFromSnippetPartialViewAction } from './create/create-from-snippet.action.js'; import { UmbCreateEmptyPartialViewAction } from './create/create-empty.action.js'; -import { - UmbCreateFolderEntityAction, - UmbDeleteEntityAction, - UmbDeleteFolderEntityAction, -} from '@umbraco-cms/backoffice/entity-action'; +import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; //Actions for partial view files diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts index b2068289f8..2add792e87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts @@ -1,11 +1,8 @@ import { UMB_SCRIPT_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbCreateScriptAction } from './create/create-empty.action.js'; -import { - UmbCreateFolderEntityAction, - UmbDeleteEntityAction, - UmbDeleteFolderEntityAction, -} from '@umbraco-cms/backoffice/entity-action'; +import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DELETE_SCRIPT_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Delete'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts index aa1ba5207b..ea775fc4b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts @@ -7,11 +7,8 @@ import { import { UMB_STYLESHEET_REPOSITORY_ALIAS } from '../repository/index.js'; import { UmbCreateRTFStylesheetAction } from './create/create-rtf.action.js'; import { UmbCreateStylesheetAction } from './create/create.action.js'; -import { - UmbCreateFolderEntityAction, - UmbDeleteEntityAction, - UmbDeleteFolderEntityAction, -} from '@umbraco-cms/backoffice/entity-action'; +import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const stylesheetActions: Array = [ From 87345e26aa1b712190569085a5ea79267dfdf697 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 14:47:18 +0100 Subject: [PATCH 036/786] pass id to end point --- .../folder/data-type-folder.server.data-source.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts index 9a6c0b4cdc..acc854af6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts @@ -60,10 +60,16 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource { if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); + const requestBody = { + id: args.unique, + parentId: args.parentUnique, + name: args.name, + }; + const { error } = await tryExecuteAndNotify( this.#host, DataTypeResource.postDataTypeFolder({ - requestBody: { parentId: args.parentUnique, name: args.name }, + requestBody, }), ); From 539314d8d4c5acea0b4740aac2f2905500963aac Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 14:47:25 +0100 Subject: [PATCH 037/786] return data --- .../src/packages/core/tree/folder/folder-repository-base.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 2b68c2e641..bf51289b19 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -59,6 +59,7 @@ export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implemen if (data) { const folderTreeItem = this.#folderToTreeItemMapper(data); this._treeStore!.appendItems([folderTreeItem]); + return { data }; } return { error }; From 3f119b150b783c22c29f79b036dfe88c19224d65 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 14:55:04 +0100 Subject: [PATCH 038/786] require a tree folder item type --- .../core/tree/folder/folder-repository-base.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index bf51289b19..3ef552da9a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -10,24 +10,27 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; export type UmbFolderToTreeItemMapper = (item: UmbFolderModel) => FolderTreeItemType; // TODO: add types instead of any -export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbFolderRepository { +export abstract class UmbFolderRepositoryBase + extends UmbRepositoryBase + implements UmbFolderRepository +{ protected _init: Promise; - protected _treeStore?: UmbTreeStore; + protected _treeStore?: UmbTreeStore; #folderDataSource: UmbFolderDataSource; - #folderToTreeItemMapper: UmbFolderToTreeItemMapper; + #folderToTreeItemMapper: UmbFolderToTreeItemMapper; constructor( host: UmbControllerHost, folderDataSource: UmbFolderDataSourceConstructor, treeStoreContextAlias: string | UmbContextToken, - folderToTreeItemMapper: UmbFolderToTreeItemMapper, + folderToTreeItemMapper: UmbFolderToTreeItemMapper, ) { super(host); this.#folderDataSource = new folderDataSource(this); this.#folderToTreeItemMapper = folderToTreeItemMapper; this._init = this.consumeContext(treeStoreContextAlias, (instance) => { - this._treeStore = instance as UmbTreeStore; + this._treeStore = instance; }).asPromise(); } @@ -58,7 +61,7 @@ export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implemen if (data) { const folderTreeItem = this.#folderToTreeItemMapper(data); - this._treeStore!.appendItems([folderTreeItem]); + this._treeStore!.append(folderTreeItem); return { data }; } From e12a904e1bff63714452c998e20c67a3533aa841 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 14:58:45 +0100 Subject: [PATCH 039/786] move folder files into tree folder --- .../core/data-type/repository/manifests.ts | 3 +-- .../packages/core/data-type/repository/utils.ts | 16 ---------------- .../folder/data-type-folder.repository.ts | 0 .../data-type-folder.server.data-source.ts | 0 .../{repository => tree}/folder/index.ts | 0 .../{repository => tree}/folder/manifests.ts | 0 .../packages/core/data-type/tree/manifests.ts | 3 ++- 7 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/utils.ts rename src/Umbraco.Web.UI.Client/src/packages/core/data-type/{repository => tree}/folder/data-type-folder.repository.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/data-type/{repository => tree}/folder/data-type-folder.server.data-source.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/data-type/{repository => tree}/folder/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/data-type/{repository => tree}/folder/manifests.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/manifests.ts index 2b0f5501cf..9c5065f084 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/manifests.ts @@ -1,7 +1,6 @@ import { manifests as copyManifests } from './copy/manifests.js'; import { manifests as detailManifests } from './detail/manifests.js'; -import { manifests as folderManifests } from './folder/manifests.js'; import { manifests as itemManifests } from './item/manifests.js'; import { manifests as moveManifests } from './move/manifests.js'; -export const manifests = [...copyManifests, ...detailManifests, ...folderManifests, ...itemManifests, ...moveManifests]; +export const manifests = [...copyManifests, ...detailManifests, ...itemManifests, ...moveManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/utils.ts deleted file mode 100644 index 1b28a07b8e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/utils.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { CreateFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; - -export const createFolderTreeItem = (item: CreateFolderRequestModel) => { - if (!item) throw new Error('item is null or undefined'); - if (!item.id) throw new Error('item.id is null or undefined'); - - return { - unique: item.id!, - parentUnique: item.parentId!, - name: item.name!, - type: 'data-type-folder', - isFolder: true, - isContainer: false, - hasChildren: false, - }; -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/data-type-folder.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/folder/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts index cab68b229f..47284f43d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts @@ -1,3 +1,4 @@ +import { manifests as folderManifests } from '../folder/manifests.js'; import { UmbDataTypeTreeRepository } from './data-type-tree.repository.js'; import { UmbDataTypeTreeStore } from './data-type-tree.store.js'; import type { @@ -43,4 +44,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; From f43b67d61b605b0acca5b8ccf5db8486069cdc33 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 15:07:59 +0100 Subject: [PATCH 040/786] fix imports --- .../data-type-create-options-modal.element.ts | 2 +- .../data-type/entity-actions/manifests.ts | 30 +--------------- .../core/data-type/repository/index.ts | 1 - .../core/data-type/tree/folder/manifests.ts | 35 +++++++++++++++++-- .../src/packages/core/data-type/tree/index.ts | 1 + .../packages/core/data-type/tree/manifests.ts | 2 +- 6 files changed, 37 insertions(+), 34 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index fc50aece9e..43b8cf9ff2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -1,4 +1,4 @@ -import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../repository/folder/manifests.js'; +import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; import { UmbDataTypeCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts index 53f2a8dd6b..b119b19021 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts @@ -1,11 +1,9 @@ -import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../repository/folder/index.js'; -import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, UMB_DATA_TYPE_ENTITY_TYPE } from '../entity.js'; +import { UMB_DATA_TYPE_ENTITY_TYPE } from '../entity.js'; import { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../repository/detail/index.js'; import { manifests as createManifests } from './create/manifests.js'; import { manifests as moveManifests } from './move/manifests.js'; import { manifests as copyManifests } from './copy/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ @@ -22,32 +20,6 @@ const entityActions: Array = [ entityTypes: [UMB_DATA_TYPE_ENTITY_TYPE], }, }, - { - type: 'entityAction', - alias: 'Umb.EntityAction.DataType.DeleteFolder', - name: 'Delete Data Type Folder Entity Action', - weight: 800, - api: UmbDeleteFolderEntityAction, - meta: { - icon: 'icon-trash', - label: 'Delete Folder...', - repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], - }, - }, - { - type: 'entityAction', - alias: 'Umb.EntityAction.DataType.RenameFolder', - name: 'Rename Data Type Folder Entity Action', - weight: 700, - api: UmbFolderUpdateEntityAction, - meta: { - icon: 'icon-edit', - label: 'Rename Folder...', - repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], - }, - }, ]; export const manifests = [...entityActions, ...createManifests, ...moveManifests, ...copyManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts index b4d5dd0e81..087e670817 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/index.ts @@ -1,5 +1,4 @@ export { UmbCopyDataTypeRepository, COPY_DATA_TYPE_REPOSITORY_ALIAS } from './copy/index.js'; export { UmbDataTypeDetailRepository, UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from './detail/index.js'; -export { UmbDataTypeFolderRepository, UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from './folder/index.js'; export { UmbDataTypeItemRepository, DATA_TYPE_ITEM_REPOSITORY_ALIAS } from './item/index.js'; export { UmbMoveDataTypeRepository, MOVE_DATA_TYPE_REPOSITORY_ALIAS } from './move/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts index 02eaeb7e88..65d6454e00 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts @@ -1,5 +1,7 @@ +import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UmbDataTypeFolderRepository } from './data-type-folder.repository.js'; -import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.DataType.Folder'; @@ -10,4 +12,33 @@ const folderRepository: ManifestRepository = { api: UmbDataTypeFolderRepository, }; -export const manifests = [folderRepository]; +const entityActions: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.DataType.DeleteFolder', + name: 'Delete Data Type Folder Entity Action', + weight: 800, + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete Folder...', + repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.DataType.RenameFolder', + name: 'Rename Data Type Folder Entity Action', + weight: 700, + api: UmbFolderUpdateEntityAction, + meta: { + icon: 'icon-edit', + label: 'Rename Folder...', + repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], + }, + }, +]; + +export const manifests = [folderRepository, ...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts index 9206374a6c..268957ad6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/index.ts @@ -1 +1,2 @@ export { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from './data-type-tree.store.js'; +export * from './folder/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts index 47284f43d6..bee8b4e5ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts @@ -1,4 +1,4 @@ -import { manifests as folderManifests } from '../folder/manifests.js'; +import { manifests as folderManifests } from './folder/manifests.js'; import { UmbDataTypeTreeRepository } from './data-type-tree.repository.js'; import { UmbDataTypeTreeStore } from './data-type-tree.store.js'; import type { From b196657042eb53adf13f7fc0bfb4fccd5fe7bc27 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 16:23:21 +0100 Subject: [PATCH 041/786] type work --- .../src/packages/core/data-type/entity.ts | 6 +++++- .../repository/copy/data-type-copy.repository.ts | 2 +- .../detail/data-type-detail.server.data-source.ts | 5 +++-- .../data-type/tree/data-type-tree.repository.ts | 2 +- .../core/data-type/tree/data-type-tree.store.ts | 4 +++- .../tree/folder/data-type-folder.repository.ts | 14 +++++++++----- .../packages/core/data-type/tree/folder/types.ts | 6 ++++++ .../src/packages/core/data-type/tree/types.ts | 8 +++++--- .../src/packages/core/data-type/types.ts | 4 +++- .../core/tree/folder/folder-repository-base.ts | 9 +++++---- .../src/packages/core/tree/tree-store.interface.ts | 3 ++- .../src/packages/core/tree/unique-tree-store.ts | 14 ++++++-------- 12 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity.ts index 8dc7ede0f3..f1aaaa7427 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity.ts @@ -1,3 +1,7 @@ -export const UMB_DATA_TYPE_ROOT_ENTITY_TYPE = 'data-type-root'; export const UMB_DATA_TYPE_ENTITY_TYPE = 'data-type'; +export const UMB_DATA_TYPE_ROOT_ENTITY_TYPE = 'data-type-root'; export const UMB_DATA_TYPE_FOLDER_ENTITY_TYPE = 'data-type-folder'; + +export type UmbDataTypeEntityType = typeof UMB_DATA_TYPE_ENTITY_TYPE; +export type UmbDataTypeRootEntityType = typeof UMB_DATA_TYPE_ROOT_ENTITY_TYPE; +export type UmbDataTypeFolderEntityType = typeof UMB_DATA_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts index ddb36cd092..dba99160c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts @@ -38,7 +38,7 @@ export class UmbCopyDataTypeRepository extends UmbRepositoryBase implements UmbC if (!dataTypeCopy) throw new Error('Could not find copied data type'); // TODO: Be aware about this responsibility. - this.#treeStore!.append(dataTypeCopy); + // this.#treeStore!.append(dataTypeCopy); const notification = { data: { message: `Data type copied` } }; this.#notificationContext!.peek('positive', notification); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts index 628747212a..657c438ffe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts @@ -1,4 +1,5 @@ import { UmbDataTypeDetailModel, UmbDataTypePropertyModel } from '../../types.js'; +import { UMB_DATA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; import { @@ -63,8 +64,8 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource { - return { + const treeItem: UmbDataTypeTreeItemModel = { unique: item.unique!, parentUnique: item.parentUnique, name: item.name, @@ -41,6 +41,8 @@ export class UmbDataTypeTreeStore extends UmbUniqueTreeStore { isContainer: false, hasChildren: false, }; + + return treeItem; }; // TODO: revisit this when we have decided on detail model sizes diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts index 7f13fa3517..5bbc1b5ba6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts @@ -1,22 +1,26 @@ import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbDataTypeFolderServerDataSource } from './data-type-folder.server.data-source.js'; +import { UmbDataTypeFolderTreeItemModel } from './types.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; -export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { +export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbDataTypeFolderServerDataSource, UMB_DATA_TYPE_TREE_STORE_CONTEXT, folderToDataTypeTreeItemMapper); } } const folderToDataTypeTreeItemMapper = (folder: UmbFolderModel) => { - return { - id: folder.unique, - parentId: folder.parentUnique, + const folderTreeItem: UmbDataTypeFolderTreeItemModel = { + unique: folder.unique, + parentUnique: folder.parentUnique, name: folder.name, - type: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, + entityType: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, + isContainer: false, hasChildren: false, isFolder: true, }; + + return folderTreeItem; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts new file mode 100644 index 0000000000..6b74960e68 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts @@ -0,0 +1,6 @@ +import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbDataTypeTreeItemModel } from '../types.js'; + +export interface UmbDataTypeFolderTreeItemModel extends UmbDataTypeTreeItemModel { + entityType: typeof UMB_DATA_TYPE_FOLDER_ENTITY_TYPE; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts index b3bb8de6fc..5c813894aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts @@ -1,8 +1,10 @@ +import { UmbDataTypeEntityType, UmbDataTypeFolderEntityType, UmbDataTypeRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbDataTypeTreeItemModel extends UmbUniqueTreeItemModel { - isFolder: boolean; - isContainer: boolean; + entityType: UmbDataTypeEntityType | UmbDataTypeFolderEntityType; } -export interface UmbDataTypeTreeRootModel extends UmbUniqueTreeRootModel {} +export interface UmbDataTypeTreeRootModel extends UmbUniqueTreeRootModel { + entityType: UmbDataTypeRootEntityType; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts index 2fd8260458..e0655e512a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts @@ -1,5 +1,7 @@ +import { UmbDataTypeEntityType } from './entity.js'; + export interface UmbDataTypeDetailModel { - entityType: string; + entityType: UmbDataTypeEntityType; unique: string; parentUnique: string | null; name: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 3ef552da9a..82896f41d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -3,14 +3,15 @@ import { type UmbFolderRepository } from './folder-repository.interface.js'; import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbTreeItemModelBase, UmbTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; -export type UmbFolderToTreeItemMapper = (item: UmbFolderModel) => FolderTreeItemType; +export type UmbFolderToTreeItemMapper = ( + item: UmbFolderModel, +) => FolderTreeItemType; -// TODO: add types instead of any -export abstract class UmbFolderRepositoryBase +export abstract class UmbFolderRepositoryBase extends UmbRepositoryBase implements UmbFolderRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts index 7225e57be4..b9e429481f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts @@ -1,8 +1,9 @@ +import { UmbTreeItemModelBase } from './types.js'; import { UmbStore } from '@umbraco-cms/backoffice/store'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export interface UmbTreeStore extends UmbStore, UmbApi { +export interface UmbTreeStore extends UmbStore, UmbApi { rootItems: Observable>; childrenOf: (parentUnique: string | null) => Observable>; // TODO: remove this one when all repositories are using an item store diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts index 2308723f6f..7ff4bee314 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts @@ -1,14 +1,9 @@ import { type UmbTreeStore } from './tree-store.interface.js'; +import { UmbUniqueTreeItemModel } from './types.js'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -// temp model until cleanup is in place -interface TreeItemModel { - unique: string; - parentUnique: string | null; -} - // TODO: remove Unique from name when we have switched to uniques /** * @export @@ -16,9 +11,12 @@ interface TreeItemModel { * @extends {UmbStoreBase} * @description - Entity Tree Store */ -export class UmbUniqueTreeStore extends UmbStoreBase implements UmbTreeStore { +export class UmbUniqueTreeStore + extends UmbStoreBase + implements UmbTreeStore +{ constructor(host: UmbControllerHostElement, storeAlias: string) { - super(host, storeAlias, new UmbArrayState([], (x) => x.unique)); + super(host, storeAlias, new UmbArrayState([], (x) => x.unique)); } /** From 16a1b8e9c7adde9cd28bf589377fc3870a37be19 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 16:56:34 +0100 Subject: [PATCH 042/786] move folder into tree --- .../src/packages/templating/scripts/repository/manifests.ts | 2 +- .../templating/scripts/{repository => tree}/folder/index.ts | 0 .../templating/scripts/{repository => tree}/folder/manifests.ts | 0 .../{repository => tree}/folder/script-folder.repository.ts | 2 +- .../folder/script-folder.server.data-source.ts | 0 5 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/{repository => tree}/folder/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/{repository => tree}/folder/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/{repository => tree}/folder/script-folder.repository.ts (93%) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/{repository => tree}/folder/script-folder.server.data-source.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts index b64a7e3ab9..129191c893 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts @@ -1,6 +1,6 @@ import { UmbScriptRepository } from './script.repository.js'; import { UmbScriptStore } from './script.store.js'; -import { manifests as folderManifests } from './folder/manifests.js'; +import { manifests as folderManifests } from '../tree/folder/manifests.js'; import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_SCRIPT_REPOSITORY_ALIAS = 'Umb.Repository.Script'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts index e55fee8f1a..6616135303 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts @@ -1,5 +1,5 @@ import { UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../../tree/index.js'; +import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../index.js'; import { UmbScriptFolderServerDataSource } from './script-folder.server.data-source.js'; import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/folder/script-folder.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts From 7a5bbf7756dd39e08b5631aee42e68a5d9195847 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 18:43:47 +0100 Subject: [PATCH 043/786] implement folder repo base for scripts --- .../tree/folder/folder-repository-base.ts | 5 ++- .../scripts/entity-actions/manifests.ts | 27 --------------- .../src/packages/templating/scripts/entity.ts | 4 +++ .../scripts/repository/script.repository.ts | 7 ++-- .../templating/scripts/tree/folder/index.ts | 6 +++- .../scripts/tree/folder/manifests.ts | 34 ++++++++++++++++++- .../tree/folder/script-folder.repository.ts | 19 ++++++----- .../templating/scripts/tree/manifests.ts | 3 +- .../scripts/tree/script-tree.repository.ts | 3 +- .../packages/templating/scripts/tree/types.ts | 11 ++++-- .../src/packages/templating/scripts/types.ts | 9 +++-- .../workspace/script-workspace.context.ts | 13 +++---- 12 files changed, 84 insertions(+), 57 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 82896f41d4..fc1249aeca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -83,7 +83,10 @@ export abstract class UmbFolderRepositoryBase = [ { @@ -38,30 +35,6 @@ const scriptFolderActions: Array = [ entityTypes: [UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE], }, }, - { - type: 'entityAction', - alias: UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, - name: 'Delete Script folder', - api: UmbDeleteFolderEntityAction, - meta: { - icon: 'icon-trash', - label: 'Delete folder...', - repositoryAlias: UMB_SCRIPT_REPOSITORY_ALIAS, - entityTypes: [UMB_SCRIPT_FOLDER_ENTITY_TYPE], - }, - }, - { - type: 'entityAction', - alias: UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, - name: 'Create Script folder', - api: UmbCreateFolderEntityAction, - meta: { - icon: 'icon-add', - label: 'Create folder...', - repositoryAlias: UMB_SCRIPT_REPOSITORY_ALIAS, - entityTypes: [UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE], - }, - }, ]; export const manifests = [...scriptViewActions, ...scriptFolderActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity.ts index a8cd48af2b..c6535e25f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity.ts @@ -1,3 +1,7 @@ export const UMB_SCRIPT_ENTITY_TYPE = 'script'; export const UMB_SCRIPT_ROOT_ENTITY_TYPE = 'script-root'; export const UMB_SCRIPT_FOLDER_ENTITY_TYPE = 'script-folder'; + +export type UmbScriptEntityType = typeof UMB_SCRIPT_ENTITY_TYPE; +export type UmbScriptRootEntityType = typeof UMB_SCRIPT_ROOT_ENTITY_TYPE; +export type UmbScriptFolderEntityType = typeof UMB_SCRIPT_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts index c8681d8d8a..a09cbf4ddd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts @@ -17,13 +17,11 @@ export class UmbScriptRepository UmbApi { #detailDataSource: UmbScriptServerDataSource; - // TODO: temp solution until it is automated #treeRepository = new UmbScriptTreeRepository(this); constructor(host: UmbControllerHost) { super(host); - this.#detailDataSource = new UmbScriptServerDataSource(this); } @@ -42,8 +40,9 @@ export class UmbScriptRepository throw new Error('Method not implemented.'); } - createScaffold(parentId: string | null, preset: string) { - return this.#detailDataSource.createScaffold(parentId, preset); + createScaffold(parentUnique: string | null, preset: string) { + if (parentUnique === undefined) throw new Error('Parent unique is missing'); + return this.#detailDataSource.createScaffold(parentUnique, preset); } async create(data: CreateScriptRequestModel) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts index f15267412b..ae1d18208a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts @@ -1,2 +1,6 @@ export { UmbScriptFolderRepository } from './script-folder.repository.js'; -export { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; +export { + UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, + UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, + UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, +} from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts index b26d6b92b7..017ab70edb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts @@ -1,4 +1,6 @@ +import { UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UmbScriptFolderRepository } from './script-folder.repository.js'; +import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.Script.Folder'; @@ -10,4 +12,34 @@ const folderRepository: ManifestRepository = { api: UmbScriptFolderRepository, }; -export const manifests = [folderRepository]; +export const UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Folder.Delete'; +export const UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Folder.Create'; + +const entityActions = [ + { + type: 'entityAction', + alias: UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, + name: 'Create Script folder', + api: UmbCreateFolderEntityAction, + meta: { + icon: 'icon-add', + label: 'Create folder...', + repositoryAlias: UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'entityAction', + alias: UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, + name: 'Delete Script folder', + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete folder...', + repositoryAlias: UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_SCRIPT_FOLDER_ENTITY_TYPE], + }, + }, +]; + +export const manifests = [folderRepository, ...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts index 6616135303..2eb4113d99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts @@ -1,23 +1,24 @@ import { UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../index.js'; +import { UMB_SCRIPT_TREE_STORE_CONTEXT, UmbScriptTreeItemModel } from '../index.js'; import { UmbScriptFolderServerDataSource } from './script-folder.server.data-source.js'; -import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -export class UmbScriptFolderRepository extends UmbFolderRepositoryBase { +export class UmbScriptFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbScriptFolderServerDataSource, UMB_SCRIPT_TREE_STORE_CONTEXT, folderToScriptTreeItemFolder); } } -// TODO: Update when uniques are implemented everywhere -const folderToScriptTreeItemFolder = (folder: UmbFolderModel): FileSystemTreeItemPresentationModel => { - return { - path: folder.unique, +const folderToScriptTreeItemFolder = (folder: UmbFolderModel) => { + const treeItem: UmbScriptTreeItemModel = { + path: folder.unique, // TODO: change to unique when mapping is done name: folder.name, - type: UMB_SCRIPT_FOLDER_ENTITY_TYPE, + entityType: UMB_SCRIPT_FOLDER_ENTITY_TYPE, + isContainer: false, hasChildren: false, isFolder: true, }; + + return treeItem; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts index 9a7863bae1..6909ad457a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbScriptTreeRepository } from './script-tree.repository.js'; import { UmbScriptTreeStore } from './script-tree.store.js'; +import { manifests as folderManifests } from './folder/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts index dcc712e203..c1e8aa3a75 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts @@ -16,8 +16,7 @@ export class UmbScriptTreeRepository } async requestTreeRoot() { - const data = { - id: null, + const data: UmbScriptTreeRootModel = { path: null, entityType: UMB_SCRIPT_ROOT_ENTITY_TYPE, name: 'Scripts', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts index fc8174d67a..cc36dbc23a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts @@ -1,5 +1,10 @@ +import { UmbScriptEntityType, UmbScriptFolderEntityType, UmbScriptRootEntityType } from '../entity.js'; import type { UmbFileSystemTreeItemModel, UmbFileSystemTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbScriptTreeItemModel extends UmbFileSystemTreeItemModel {} -// TODO: TREE STORE TYPE PROBLEM: -export interface UmbScriptTreeRootModel extends UmbFileSystemTreeRootModel {} +export interface UmbScriptTreeItemModel extends UmbFileSystemTreeItemModel { + entityType: UmbScriptEntityType | UmbScriptFolderEntityType; +} + +export interface UmbScriptTreeRootModel extends UmbFileSystemTreeRootModel { + entityType: UmbScriptRootEntityType; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts index f82bf2bc0c..682c204b0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts @@ -1,3 +1,8 @@ -import { ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbScriptEntityType } from './entity.js'; -export type UmbScripDetailModel = ScriptResponseModel; +export interface UmbScriptDetailModel { + entityType: UmbScriptEntityType; + path: string; // TODO: change to unique when mapping is done + name: string; + content: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 5ba3d3f7c9..a6c63b2326 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbScripDetailModel } from '../types.js'; +import { UmbScriptDetailModel } from '../types.js'; import { UmbScriptRepository } from '../repository/script.repository.js'; import { UMB_SCRIPT_WORKSPACE_ALIAS } from './manifests.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; @@ -9,9 +9,9 @@ import { TextFileResponseModelBaseModel, UpdateScriptRequestModel } from '@umbra export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< UmbScriptRepository, - UmbScripDetailModel + UmbScriptDetailModel > { - #data = new UmbObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.asObservablePart((data) => data?.name); content = this.#data.asObservablePart((data) => data?.content); @@ -46,15 +46,16 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< this.#data.update({ content: value }); } - async load(entityKey: string) { - const { data } = await this.repository.requestByKey(entityKey); + async load(unique: string) { + const { data } = await this.repository.requestByKey(unique); if (data) { this.setIsNew(false); this.#data.next(data); } } - async create(parentKey: string) { + async create(parentUnique: string | null) { + const { data } = await this.repository.createScaffold(parentUnique); const newScript: TextFileResponseModelBaseModel = { name: '', path: parentKey, From 10fb2783f41e03cf8f05dd71dc27fe2fed83d096 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 18:47:32 +0100 Subject: [PATCH 044/786] remove folder scaffold model --- .../core/tree/folder/folder-repository.interface.ts | 4 ++-- .../core/tree/folder/modal/folder-create-modal.element.ts | 8 ++------ .../src/packages/core/tree/folder/types.ts | 6 ------ 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts index 6e94499dfa..7d50885d72 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts @@ -1,8 +1,8 @@ import { DataSourceResponse, UmbDataSourceErrorResponse } from '../../repository/data-source/index.js'; -import { UmbCreateFolderModel, UmbFolderModel, UmbFolderScaffoldModel, UmbUpdateFolderModel } from './types.js'; +import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbFolderRepository extends UmbApi { - createScaffold(parentUnique: string | null): Promise>; + createScaffold(parentUnique: string | null): Promise>; create(args: UmbCreateFolderModel): Promise>; request(unique: string): Promise>; update(args: UmbUpdateFolderModel): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts index 567801b713..d4bebf36b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts @@ -1,10 +1,6 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { - UmbFolderScaffoldModel, - UmbFolderCreateModalData, - UmbFolderCreateModalValue, -} from '@umbraco-cms/backoffice/tree'; +import { UmbFolderCreateModalData, UmbFolderCreateModalValue, UmbFolderModel } from '@umbraco-cms/backoffice/tree'; @customElement('umb-folder-create-modal') export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< @@ -12,7 +8,7 @@ export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< UmbFolderCreateModalValue > { @state() - _folderScaffold?: UmbFolderScaffoldModel; + _folderScaffold?: UmbFolderModel; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts index 9ccd85788b..dd8e80baff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/types.ts @@ -1,9 +1,3 @@ -export interface UmbFolderScaffoldModel { - unique: string; - name: string; - parentUnique: string | null; -} - export interface UmbFolderModel { unique: string; parentUnique: string | null; From 07d6a728dcf4a36a3877dcff204729ff61bfe900 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 18:53:06 +0100 Subject: [PATCH 045/786] move --- .../{sources => }/script-detail.server.data.ts | 0 .../templating/scripts/repository/script.repository.ts | 2 +- .../scripts/workspace/script-workspace.context.ts | 10 ++++------ 3 files changed, 5 insertions(+), 7 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/{sources => }/script-detail.server.data.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/sources/script-detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/sources/script-detail.server.data.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts index a09cbf4ddd..2222ae9a7b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts @@ -1,5 +1,5 @@ import { UmbScriptTreeRepository } from '../tree/index.js'; -import { UmbScriptServerDataSource } from './sources/script-detail.server.data.js'; +import { UmbScriptServerDataSource } from './script-detail.server.data.js'; import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { CreateScriptRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index a6c63b2326..29f2726a0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -1,4 +1,3 @@ -import { UmbScriptDetailModel } from '../types.js'; import { UmbScriptRepository } from '../repository/script.repository.js'; import { UMB_SCRIPT_WORKSPACE_ALIAS } from './manifests.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; @@ -9,9 +8,9 @@ import { TextFileResponseModelBaseModel, UpdateScriptRequestModel } from '@umbra export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< UmbScriptRepository, - UmbScriptDetailModel + TextFileResponseModelBaseModel > { - #data = new UmbObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.asObservablePart((data) => data?.name); content = this.#data.asObservablePart((data) => data?.content); @@ -54,11 +53,10 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } } - async create(parentUnique: string | null) { - const { data } = await this.repository.createScaffold(parentUnique); + async create(parentUnique: string) { const newScript: TextFileResponseModelBaseModel = { name: '', - path: parentKey, + path: parentUnique, content: '', }; this.#data.next(newScript); From 015166ac69bb1046983ac539c101e36b92df741d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 18:56:19 +0100 Subject: [PATCH 046/786] add detail to name --- .../templating/scripts/repository/index.ts | 2 +- .../templating/scripts/repository/manifests.ts | 8 ++++---- ...t.repository.ts => script-detail.repository.ts} | 8 ++++---- .../repository/script-detail.server.data.ts | 2 +- .../{script.store.ts => script-detail.store.ts} | 14 +++++++------- .../scripts/workspace/script-workspace.context.ts | 8 ++++---- 6 files changed, 21 insertions(+), 21 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/{script.repository.ts => script-detail.repository.ts} (89%) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/{script.store.ts => script-detail.store.ts} (78%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts index fccda7a496..3bf954aed4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts @@ -1,2 +1,2 @@ export { UMB_SCRIPT_REPOSITORY_ALIAS } from './manifests.js'; -export { UmbScriptRepository } from './script.repository.js'; +export { UmbScriptDetailRepository as UmbScriptRepository } from './script-detail.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts index 129191c893..6324c840c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts @@ -1,5 +1,5 @@ -import { UmbScriptRepository } from './script.repository.js'; -import { UmbScriptStore } from './script.store.js'; +import { UmbScriptDetailRepository } from './script-detail.repository.js'; +import { UmbScriptDetailStore } from './script-detail.store.js'; import { manifests as folderManifests } from '../tree/folder/manifests.js'; import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; @@ -10,14 +10,14 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_SCRIPT_REPOSITORY_ALIAS, name: 'Script Repository', - api: UmbScriptRepository, + api: UmbScriptDetailRepository, }; const store: ManifestStore = { type: 'store', alias: UMB_SCRIPT_STORE_ALIAS, name: 'Script Store', - api: UmbScriptStore, + api: UmbScriptDetailStore, }; export const manifests = [repository, store, ...folderManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts index 2222ae9a7b..a85b807821 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts @@ -1,5 +1,5 @@ import { UmbScriptTreeRepository } from '../tree/index.js'; -import { UmbScriptServerDataSource } from './script-detail.server.data.js'; +import { UmbScriptDetailServerDataSource } from './script-detail.server.data.js'; import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { CreateScriptRequestModel, @@ -10,19 +10,19 @@ import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export class UmbScriptRepository +export class UmbScriptDetailRepository extends UmbBaseController implements UmbDetailRepository, UmbApi { - #detailDataSource: UmbScriptServerDataSource; + #detailDataSource: UmbScriptDetailServerDataSource; // TODO: temp solution until it is automated #treeRepository = new UmbScriptTreeRepository(this); constructor(host: UmbControllerHost) { super(host); - this.#detailDataSource = new UmbScriptServerDataSource(this); + this.#detailDataSource = new UmbScriptDetailServerDataSource(this); } //#region DETAILS diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts index 061ff57403..6c536c97f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts @@ -10,7 +10,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { DataSourceResponse, UmbDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -export class UmbScriptServerDataSource +export class UmbScriptDetailServerDataSource implements UmbDataSource { #host: UmbControllerHost; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.store.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts index 158f91c5c7..d52bc6e11d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts @@ -6,15 +6,15 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api /** * @export - * @class UmbScriptStore + * @class UmbScriptDetailStore * @extends {UmbStoreBase} * @description - Data Store for scripts */ -export class UmbScriptStore extends UmbStoreBase { +export class UmbScriptDetailStore extends UmbStoreBase { /** - * Creates an instance of UmbScriptStore. + * Creates an instance of UmbScriptDetailStore. * @param {UmbControllerHostInterface} host - * @memberof UmbScriptStore + * @memberof UmbScriptDetailStore */ constructor(host: UmbControllerHostElement) { super(host, UMB_SCRIPTS_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id)); @@ -23,7 +23,7 @@ export class UmbScriptStore extends UmbStoreBase { /** * Append a script to the store * @param {Template} template - * @memberof UmbScriptStore + * @memberof UmbScriptDetailStore */ append(template: TemplateResponseModel) { this._data.append([template]); @@ -32,11 +32,11 @@ export class UmbScriptStore extends UmbStoreBase { /** * Removes scripts in the store with the given uniques * @param {string[]} uniques - * @memberof UmbScriptStore + * @memberof UmbScriptDetailStore */ remove(uniques: string[]) { this._data.remove(uniques); } } -export const UMB_SCRIPTS_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbScriptStore'); +export const UMB_SCRIPTS_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbScriptDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 29f2726a0e..6e2ddbf86b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbScriptRepository } from '../repository/script.repository.js'; -import { UMB_SCRIPT_WORKSPACE_ALIAS } from './manifests.js'; +import { UmbScriptDetailRepository } from '../repository/script-detail.repository.js'; +import { UMB_SCRIPT_WORKSPACE_ALIAS }../repository/script-detail.repository.js import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; @@ -7,7 +7,7 @@ import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import { TextFileResponseModelBaseModel, UpdateScriptRequestModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< - UmbScriptRepository, + UmbScriptDetailRepository, TextFileResponseModelBaseModel > { #data = new UmbObjectState(undefined); @@ -20,7 +20,7 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< isCodeEditorReady = this.#isCodeEditorReady.asObservable(); constructor(host: UmbControllerHostElement) { - super(host, UMB_SCRIPT_WORKSPACE_ALIAS, new UmbScriptRepository(host)); + super(host, UMB_SCRIPT_WORKSPACE_ALIAS, new UmbScriptDetailRepository(host)); this.#loadCodeEditor(); } From 7a410f4f9942d137b33bf079e2cad1916c365086 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 18:59:31 +0100 Subject: [PATCH 047/786] remove renamed export --- .../src/packages/templating/scripts/repository/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts index 3bf954aed4..1ba6f85e48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts @@ -1,2 +1,2 @@ export { UMB_SCRIPT_REPOSITORY_ALIAS } from './manifests.js'; -export { UmbScriptDetailRepository as UmbScriptRepository } from './script-detail.repository.js'; +export { UmbScriptDetailRepository } from './script-detail.repository.js'; From 4ebe0ce197fbd4ec07867aeb9d1a6863d610f830 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 18:59:45 +0100 Subject: [PATCH 048/786] remove redundant methods --- .../scripts/repository/script-detail.store.ts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts index d52bc6e11d..aa5b541833 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts @@ -19,24 +19,6 @@ export class UmbScriptDetailStore extends UmbStoreBase { constructor(host: UmbControllerHostElement) { super(host, UMB_SCRIPTS_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id)); } - - /** - * Append a script to the store - * @param {Template} template - * @memberof UmbScriptDetailStore - */ - append(template: TemplateResponseModel) { - this._data.append([template]); - } - - /** - * Removes scripts in the store with the given uniques - * @param {string[]} uniques - * @memberof UmbScriptDetailStore - */ - remove(uniques: string[]) { - this._data.remove(uniques); - } } export const UMB_SCRIPTS_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbScriptDetailStore'); From 0631ce25c44f3384b507ba4d550ae3f1e8f14bbe Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 18:59:56 +0100 Subject: [PATCH 049/786] fix exports --- .../templating/scripts/workspace/script-workspace.context.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 6e2ddbf86b..04da6ea69c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbScriptDetailRepository } from '../repository/script-detail.repository.js'; -import { UMB_SCRIPT_WORKSPACE_ALIAS }../repository/script-detail.repository.js +import { UmbScriptDetailRepository } from '../repository/index.js'; +import { UMB_SCRIPT_WORKSPACE_ALIAS } from './manifests.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; From 89979e17ed5a9e51e08b22dec21de4cfbd5d75b3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 19:04:04 +0100 Subject: [PATCH 050/786] remove wrong import --- .../templating/scripts/repository/index.ts | 2 +- .../templating/scripts/repository/manifests.ts | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts index 1ba6f85e48..bea24485a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts @@ -1,2 +1,2 @@ -export { UMB_SCRIPT_REPOSITORY_ALIAS } from './manifests.js'; +export { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS as UMB_SCRIPT_REPOSITORY_ALIAS } from './manifests.js'; export { UmbScriptDetailRepository } from './script-detail.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts index 6324c840c7..6dd3212951 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts @@ -1,23 +1,22 @@ import { UmbScriptDetailRepository } from './script-detail.repository.js'; import { UmbScriptDetailStore } from './script-detail.store.js'; -import { manifests as folderManifests } from '../tree/folder/manifests.js'; import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; -export const UMB_SCRIPT_REPOSITORY_ALIAS = 'Umb.Repository.Script'; -export const UMB_SCRIPT_STORE_ALIAS = 'Umb.Store.Script'; +export const UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Script.Detail'; +export const UMB_SCRIPT_DETAIL_STORE_ALIAS = 'Umb.Store.Script.Detail'; const repository: ManifestRepository = { type: 'repository', - alias: UMB_SCRIPT_REPOSITORY_ALIAS, - name: 'Script Repository', + alias: UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS, + name: 'Script Detail Repository', api: UmbScriptDetailRepository, }; const store: ManifestStore = { type: 'store', - alias: UMB_SCRIPT_STORE_ALIAS, - name: 'Script Store', + alias: UMB_SCRIPT_DETAIL_STORE_ALIAS, + name: 'Script Detail Store', api: UmbScriptDetailStore, }; -export const manifests = [repository, store, ...folderManifests]; +export const manifests = [repository, store]; From bbd70862e907e385230026174917181fc11049d6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 19:05:03 +0100 Subject: [PATCH 051/786] align file naming --- .../templating/scripts/repository/script-detail.repository.ts | 2 +- ...etail.server.data.ts => script-detail.server.data-source.ts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/{script-detail.server.data.ts => script-detail.server.data-source.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts index a85b807821..825edca3ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts @@ -1,5 +1,5 @@ import { UmbScriptTreeRepository } from '../tree/index.js'; -import { UmbScriptDetailServerDataSource } from './script-detail.server.data.js'; +import { UmbScriptDetailServerDataSource } from './script-detail.server.data-source.js'; import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { CreateScriptRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts From 11e07963fe3943a7250269fbd0058251f49825c5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 19:07:44 +0100 Subject: [PATCH 052/786] correct param name --- .../packages/core/repository/detail/detail-repository-base.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 3db16d452e..02fb5bdbd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -15,14 +15,14 @@ export abstract class UmbDetailRepositoryBase, - itemStoreContextAlias: string | UmbContextToken, + detailStoreContextAlias: string | UmbContextToken, ) { super(host); this.#detailSource = new detailSource(host); this.#init = Promise.all([ - this.consumeContext(itemStoreContextAlias, (instance) => { + this.consumeContext(detailStoreContextAlias, (instance) => { this.#detailStore = instance; }).asPromise(), From ba7d65d57cb5600f0fd43c6be53ea9391c7073b4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 20:01:34 +0100 Subject: [PATCH 053/786] wip script with unique --- .../detail/detail-repository-base.ts | 6 +- .../repository/script-detail.repository.ts | 70 +------- .../script-detail.server.data-source.ts | 153 +++++++++++------- .../scripts/repository/script-detail.store.ts | 11 +- .../packages/templating/scripts/tree/types.ts | 6 +- .../src/packages/templating/scripts/types.ts | 3 +- 6 files changed, 118 insertions(+), 131 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 02fb5bdbd7..53d708a864 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -4,8 +4,12 @@ import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; +import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export abstract class UmbDetailRepositoryBase extends UmbRepositoryBase { +export abstract class UmbDetailRepositoryBase + extends UmbRepositoryBase + implements UmbApi +{ #init: Promise; #detailStore?: UmbDetailStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts index 825edca3ec..bc4eb49675 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts @@ -1,71 +1,11 @@ -import { UmbScriptTreeRepository } from '../tree/index.js'; +import { UmbScriptDetailModel } from '../types.js'; +import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.js'; import { UmbScriptDetailServerDataSource } from './script-detail.server.data-source.js'; -import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; -import { - CreateScriptRequestModel, - ScriptResponseModel, - UpdateScriptRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; - -export class UmbScriptDetailRepository - extends UmbBaseController - implements - UmbDetailRepository, - UmbApi -{ - #detailDataSource: UmbScriptDetailServerDataSource; - // TODO: temp solution until it is automated - #treeRepository = new UmbScriptTreeRepository(this); +export class UmbScriptDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { - super(host); - this.#detailDataSource = new UmbScriptDetailServerDataSource(this); + super(host, UmbScriptDetailServerDataSource, UMB_SCRIPT_DETAIL_STORE_CONTEXT); } - - //#region DETAILS - async requestByKey(path: string) { - if (!path) throw new Error('Path is missing'); - const { data, error } = await this.#detailDataSource.read(path); - return { data, error }; - } - - requestById(): any { - throw new Error('Method not implemented.'); - } - - byId(): any { - throw new Error('Method not implemented.'); - } - - createScaffold(parentUnique: string | null, preset: string) { - if (parentUnique === undefined) throw new Error('Parent unique is missing'); - return this.#detailDataSource.createScaffold(parentUnique, preset); - } - - async create(data: CreateScriptRequestModel) { - const promise = this.#detailDataSource.create(data); - await promise; - this.#treeRepository.requestTreeItemsOf(data.parentPath ? data.parentPath : null); - return promise; - } - - save(id: string, requestBody: UpdateScriptRequestModel) { - return this.#detailDataSource.update(id, requestBody); - } - - async delete(id: string) { - const promise = this.#detailDataSource.delete(id); - const parentPath = id.substring(0, id.lastIndexOf('/')); - this.#treeRepository.requestTreeItemsOf(parentPath ? parentPath : null); - return promise; - } - - requestItems(keys: Array) { - return this.#detailDataSource.getItems(keys); - } - - //#endregion } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 6c536c97f1..91322cc7be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,75 +1,118 @@ +import { UmbScriptDetailModel } from '../types.js'; +import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { CreateScriptRequestModel, - CreateTextFileViewModelBaseModel, - ScriptItemResponseModel, ScriptResource, - ScriptResponseModel, - UpdateScriptRequestModel, + UpdateTextFileViewModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DataSourceResponse, UmbDataSource } from '@umbraco-cms/backoffice/repository'; +import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -export class UmbScriptDetailServerDataSource - implements UmbDataSource -{ +export class UmbScriptDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; constructor(host: UmbControllerHost) { this.#host = host; } - createScaffold( - parentId: string | null, - preset?: string | Partial | undefined, - ): Promise> { - throw new Error('Method not implemented.'); + + async createScaffold(parentUnique: string | null) { + const data: UmbScriptDetailModel = { + entityType: UMB_SCRIPT_ENTITY_TYPE, + unique: '', + parentUnique, + name: '', + content: '', + }; + + return { data }; } - /** - * Fetches a script with the given path from the server - * @param {string} path - * @return {*} - * @memberof UmbScriptDetailServerDataSource - */ - read(path: string): Promise> { - if (!path) throw new Error('Path is missing'); - return tryExecuteAndNotify(this.#host, ScriptResource.getScript({ path })); - } - /** - * Creates a new script - * - * @param {CreateScriptRequestModel} requestBody - * @return {*} {Promise>} - * @memberof UmbScriptDetailServerDataSource - */ - create(requestBody: CreateScriptRequestModel): Promise> { - return tryExecuteAndNotify(this.#host, ScriptResource.postScript({ requestBody })); + async create(script: UmbScriptDetailModel) { + if (!script) throw new Error('Data is missing'); + if (!script.unique) throw new Error('Unique is missing'); + + // TODO: get parent path from parent unique + const parentPath = script.parentUnique; + + // TODO: make data mapper to prevent errors + const requestBody: CreateScriptRequestModel = { + parentPath, + name: script.name, + content: script.content, + }; + + const { error: createError } = await tryExecuteAndNotify( + this.#host, + ScriptResource.postScript({ + requestBody, + }), + ); + + if (createError) { + return { error: createError }; + } + + // We have to fetch the data again. The server can have modified the data after creation + return this.read(script.unique); } - //TODO the parameters here are bit ugly, since unique is already in the request body parameter, but it has to be done to marry the UmbDataSource interface an backend API together... maybe come up with some nicer solution - /** - * Updates a script - * - * @param {string} [unique=''] - * @param {UpdateScriptRequestModel} requestBody - * @return {*} {Promise>} - * @memberof UmbScriptDetailServerDataSource - */ - update(unique = '', requestBody: UpdateScriptRequestModel): Promise> { - return tryExecuteAndNotify(this.#host, ScriptResource.putScript({ requestBody })); - } - /** - * Deletes a script - * - * @param {string} path - * @return {*} {Promise} - * @memberof UmbScriptDetailServerDataSource - */ - delete(path: string): Promise { - return tryExecuteAndNotify(this.#host, ScriptResource.deleteScript({ path })); + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + // TODO: unique to path + + const { data, error } = await tryExecuteAndNotify(this.#host, ScriptResource.getScript({ path })); + + if (error || !data) { + return { error }; + } + + // TODO: make data mapper to prevent errors + const script: UmbScriptDetailModel = { + entityType: UMB_SCRIPT_ENTITY_TYPE, + unique: data.path, + parentUnique, + name: data.name, + content: data.content, + }; + + return { data: script }; } - getItems(keys: Array): Promise> { - return tryExecuteAndNotify(this.#host, ScriptResource.getScriptItem({ path: keys })); + async update(data: UmbScriptDetailModel) { + if (!data.unique) throw new Error('Unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: UpdateTextFileViewModelBaseModel = { + existingPath, + name: data.name, + content: data.content, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + ScriptResource.putScript({ + requestBody, + }), + ); + + if (error) { + return { error }; + } + + // We have to fetch the data type again. The server can have modified the data after update + return this.read(data.unique); + } + + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + return tryExecuteAndNotify( + this.#host, + ScriptResource.deleteScript({ + path, + }), + ); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts index aa5b541833..dc8aaa5e8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts @@ -1,8 +1,7 @@ +import { UmbScriptDetailModel } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import type { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; /** * @export @@ -10,15 +9,15 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api * @extends {UmbStoreBase} * @description - Data Store for scripts */ -export class UmbScriptDetailStore extends UmbStoreBase { +export class UmbScriptDetailStore extends UmbDetailStoreBase { /** * Creates an instance of UmbScriptDetailStore. * @param {UmbControllerHostInterface} host * @memberof UmbScriptDetailStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_SCRIPTS_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id)); + super(host, UMB_SCRIPT_DETAIL_STORE_CONTEXT.toString()); } } -export const UMB_SCRIPTS_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbScriptDetailStore'); +export const UMB_SCRIPT_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbScriptDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts index cc36dbc23a..7428f2f887 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts @@ -1,10 +1,10 @@ import { UmbScriptEntityType, UmbScriptFolderEntityType, UmbScriptRootEntityType } from '../entity.js'; -import type { UmbFileSystemTreeItemModel, UmbFileSystemTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbScriptTreeItemModel extends UmbFileSystemTreeItemModel { +export interface UmbScriptTreeItemModel extends UmbUniqueTreeItemModel { entityType: UmbScriptEntityType | UmbScriptFolderEntityType; } -export interface UmbScriptTreeRootModel extends UmbFileSystemTreeRootModel { +export interface UmbScriptTreeRootModel extends UmbUniqueTreeRootModel { entityType: UmbScriptRootEntityType; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts index 682c204b0f..2ec921c907 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts @@ -2,7 +2,8 @@ import { UmbScriptEntityType } from './entity.js'; export interface UmbScriptDetailModel { entityType: UmbScriptEntityType; - path: string; // TODO: change to unique when mapping is done + unique: string; + parentUnique: string | null; name: string; content: string; } From 99adf0994adbda2782feba399f45d9fe6fd8a9d9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 20:37:27 +0100 Subject: [PATCH 054/786] set unique and parentUnique for script tree items --- .../packages/templating/scripts/tree/manifests.ts | 6 +++--- .../scripts/tree/script-tree.repository.ts | 8 ++------ .../scripts/tree/script-tree.server.data-source.ts | 11 +++++++++-- .../templating/scripts/tree/script-tree.store.ts | 6 +++--- .../scripts/workspace/script-workspace.element.ts | 12 ++++++------ 5 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts index 6909ad457a..413e7b78b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbScriptTreeRepository } from './script-tree.repository.js'; import { UmbScriptTreeStore } from './script-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; @@ -38,11 +38,11 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'fileSystem', + kind: 'unique', alias: 'Umb.TreeItem.Script', name: 'Script Tree Item', meta: { - entityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_ENTITY_TYPE], + entityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts index c1e8aa3a75..ebb84eefb9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts @@ -4,20 +4,16 @@ import { UmbScriptTreeItemModel, UmbScriptTreeRootModel } from './types.js'; import { UMB_SCRIPT_TREE_STORE_CONTEXT } from './script-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; // TODO: TREE STORE TYPE PROBLEM: -export class UmbScriptTreeRepository - extends UmbTreeRepositoryBase - implements UmbApi -{ +export class UmbScriptTreeRepository extends UmbTreeRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbScriptTreeServerDataSource, UMB_SCRIPT_TREE_STORE_CONTEXT); } async requestTreeRoot() { const data: UmbScriptTreeRootModel = { - path: null, + unique: null, entityType: UMB_SCRIPT_ROOT_ENTITY_TYPE, name: 'Scripts', icon: 'icon-folder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts index 89a2d559eb..7a9aa73afb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts @@ -1,3 +1,4 @@ +import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbScriptTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { FileSystemTreeItemPresentationModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; @@ -43,11 +44,17 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: FileSystemTreeItemPresentationModel): UmbScriptTreeItemModel => { return { - path: item.path, + unique: item.path, + parentUnique: getParentPathFromServerPath(item.path), + entityType: item.isFolder ? UMB_SCRIPT_FOLDER_ENTITY_TYPE : UMB_SCRIPT_ENTITY_TYPE, name: item.name, - entityType: 'script', isFolder: item.isFolder, hasChildren: item.hasChildren, isContainer: false, }; }; + +const getParentPathFromServerPath = (serverPath: string): string | null => { + const parentPath = serverPath.substring(0, serverPath.lastIndexOf('/')); + return parentPath || null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index 7224f980cb..76bd969ac3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -1,14 +1,14 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFileSystemTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; /** * @export * @class UmbScriptTreeStore - * @extends {UmbStoreBase} + * @extends {UmbUniqueTreeStore} * @description - Tree Data Store for Scripts */ -export class UmbScriptTreeStore extends UmbFileSystemTreeStore { +export class UmbScriptTreeStore extends UmbUniqueTreeStore { /** * Creates an instance of UmbScriptTreeStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts index c2d4e7a2b8..b334d96bda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts @@ -11,11 +11,11 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { @state() _routes: UmbRoute[] = [ { - path: 'create/:parentKey', + path: 'create/:parentUnique', component: import('./script-workspace-edit.element.js'), setup: async (_component: PageComponent, info: IRoutingInfo) => { - const parentKey = info.match.params.parentKey; - const decodePath = decodeURIComponent(parentKey); + const parentUnique = info.match.params.parentUnique; + const decodePath = decodeURIComponent(parentUnique); this.#workspaceContext.create(decodePath === 'null' ? '' : decodePath); new UmbWorkspaceIsNewRedirectController( @@ -26,11 +26,11 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { }, }, { - path: 'edit/:key', + path: 'edit/:unique', component: import('./script-workspace-edit.element.js'), setup: (component: PageComponent, info: IRoutingInfo) => { - const key = info.match.params.key; - const decodePath = decodeURIComponent(key).replace('-js', '.js'); + const unique = info.match.params.unique; + const decodePath = decodeURIComponent(unique).replace('-js', '.js'); this.#workspaceContext.load(decodePath); }, }, From 3b20936cfc90b791a04c77f20a05a011b79033f4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 13 Dec 2023 21:05:58 +0100 Subject: [PATCH 055/786] use unique instead of path --- .../templating-insert-menu.element.ts | 2 +- .../insert-section-modal.element.ts | 2 +- .../partial-view-workspace-edit.element.ts | 2 +- .../script-detail.server.data-source.ts | 18 +++-- .../tree/folder/script-folder.repository.ts | 5 +- .../tree/script-tree.server.data-source.ts | 6 +- .../src/packages/templating/scripts/types.ts | 1 + .../workspace/script-workspace.context.ts | 68 +++++++------------ .../template-workspace-editor.element.ts | 2 +- .../templating/{utils.ts => utils/index.ts} | 2 + .../parent-path-from-server-path.function.ts | 4 ++ 11 files changed, 47 insertions(+), 65 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/{utils.ts => utils/index.ts} (96%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts index cacdd87ed4..1b8b1c5558 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts @@ -1,5 +1,5 @@ import { UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS } from '../../modals/manifests.js'; -import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils.js'; +import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils/index.js'; import { UmbChooseInsertTypeModalValue, CodeSnippetType } from '../../modals/insert-choose-type-sidebar.element.js'; import { UmbDictionaryRepository } from '@umbraco-cms/backoffice/dictionary'; import { customElement, property, css, html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts index 22017d6972..602b206ca1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-modal.element.ts @@ -1,5 +1,5 @@ import { UMB_MODAL_TEMPLATING_INSERT_SECTION_SIDEBAR_ALIAS } from '../manifests.js'; -import { getAddSectionSnippet, getRenderBodySnippet, getRenderSectionSnippet } from '../../utils.js'; +import { getAddSectionSnippet, getRenderBodySnippet, getRenderSectionSnippet } from '../../utils/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalToken, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-edit.element.ts index 5c12498611..dcd8b2c3ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-edit.element.ts @@ -1,6 +1,6 @@ import { UmbTemplatingInsertMenuElement } from '../../components/index.js'; import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '../../templates/modals/modal-tokens.js'; -import { getQuerySnippet } from '../../utils.js'; +import { getQuerySnippet } from '../../utils/index.js'; import { UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT } from './partial-view-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 91322cc7be..05fe6225e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,5 +1,6 @@ import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; +import { getParentPathFromServerPath } from '../../utils/parent-path-from-server-path.function.js'; import { CreateScriptRequestModel, ScriptResource, @@ -21,6 +22,7 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource { const treeItem: UmbScriptTreeItemModel = { - path: folder.unique, // TODO: change to unique when mapping is done + unique: folder.unique, + parentUnique: folder.parentUnique, name: folder.name, entityType: UMB_SCRIPT_FOLDER_ENTITY_TYPE, + isFolder: true, isContainer: false, hasChildren: false, - isFolder: true, }; return treeItem; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts index 7a9aa73afb..dc35a59b6f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts @@ -3,6 +3,7 @@ import { UmbScriptTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { FileSystemTreeItemPresentationModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { getParentPathFromServerPath } from '../../utils/index.js'; /** * A data source for the Script tree that fetches data from the server @@ -53,8 +54,3 @@ const mapper = (item: FileSystemTreeItemPresentationModel): UmbScriptTreeItemMod isContainer: false, }; }; - -const getParentPathFromServerPath = (serverPath: string): string | null => { - const parentPath = serverPath.substring(0, serverPath.lastIndexOf('/')); - return parentPath || null; -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts index 2ec921c907..497367e0a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts @@ -4,6 +4,7 @@ export interface UmbScriptDetailModel { entityType: UmbScriptEntityType; unique: string; parentUnique: string | null; + path: string; name: string; content: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 04da6ea69c..d516540baa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -1,16 +1,16 @@ import { UmbScriptDetailRepository } from '../repository/index.js'; +import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_WORKSPACE_ALIAS } from './manifests.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; -import { TextFileResponseModelBaseModel, UpdateScriptRequestModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< UmbScriptDetailRepository, - TextFileResponseModelBaseModel + UmbScriptDetailModel > { - #data = new UmbObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.asObservablePart((data) => data?.name); content = this.#data.asObservablePart((data) => data?.content); @@ -46,7 +46,7 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } async load(unique: string) { - const { data } = await this.repository.requestByKey(unique); + const { data } = await this.repository.requestByUnique(unique); if (data) { this.setIsNew(false); this.#data.next(data); @@ -54,53 +54,31 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } async create(parentUnique: string) { - const newScript: TextFileResponseModelBaseModel = { - name: '', - path: parentUnique, - content: '', - }; - this.#data.next(newScript); - this.setIsNew(true); + const { data } = await this.repository.createScaffold(parentUnique); + + if (data) { + this.setIsNew(true); + this.#data.next(data); + } } getEntityId() { - const path = this.getData()?.path?.replace(/\//g, '%2F'); - const name = this.getData()?.name; - - // Note: %2F is a slash (/) - return path && name ? `${path}%2F${name}` : name || ''; + const data = this.getData(); + if (!data) throw new Error('Data is missing'); + return data.unique; } - public async save() { - const script = this.getData(); + async save() { + if (!this.#data.value) return; + if (!this.#data.value.unique) return; - if (!script) { - return Promise.reject('Something went wrong, there is no data for script you want to save...'); - } if (this.getIsNew()) { - const createRequestBody = { - name: script.name, - content: script.content, - parentPath: script.path + '/', - }; + await this.repository.create(this.#data.value); + } else { + await this.repository.save(this.#data.value); + } - const { error } = await this.repository.create(createRequestBody); - if (!error) { - this.setIsNew(false); - } - return Promise.resolve(); - } - if (!script.path) return Promise.reject('There is no path'); - const updateRequestBody: UpdateScriptRequestModel = { - name: script.name, - existingPath: script.path, - content: script.content, - }; - const { error } = await this.repository.save(script.path, updateRequestBody); - if (!error) { - //TODO Update the URL to the new name - } - return Promise.resolve(); + this.saveComplete(this.#data.value); } destroy(): void { @@ -108,6 +86,8 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } getEntityType(): string { - throw new Error('Method not implemented.'); + const data = this.getData(); + if (!data) throw new Error('Data is missing'); + return data.entityType; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts index 22f4d43501..b0515857bd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -1,7 +1,7 @@ import type { UmbTemplatingInsertMenuElement } from '../../components/insert-menu/templating-insert-menu.element.js'; import { UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL } from '../../modals/insert-section-modal/insert-section-modal.element.js'; import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '../modals/modal-tokens.js'; -import { getQuerySnippet } from '../../utils.js'; +import { getQuerySnippet } from '../../utils/index.js'; import { UMB_TEMPLATE_WORKSPACE_CONTEXT } from './template-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { camelCase } from '@umbraco-cms/backoffice/external/lodash'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/packages/templating/utils.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts index 57c84ea4bf..95e6022e3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts @@ -49,3 +49,5 @@ export const getUmbracoFieldSnippet = (field: string, defaultValue: string | nul return value; }; + +export * from './parent-path-from-server-path.function.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts new file mode 100644 index 0000000000..3930a27324 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts @@ -0,0 +1,4 @@ +export const getParentPathFromServerPath = (serverPath: string): string | null => { + const parentPath = serverPath.substring(0, serverPath.lastIndexOf('/')); + return parentPath || null; +}; From d763ab36820428c50b3e23d251bd402384852c88 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 12:52:00 +0100 Subject: [PATCH 056/786] add server path unique serializer --- .../script-detail.server.data-source.ts | 17 +++++--- .../tree/script-tree.server.data-source.ts | 12 ++++-- .../workspace/script-workspace.element.ts | 6 +-- .../src/packages/templating/utils/index.ts | 1 + .../utils/server-path-unique-serializer.ts | 43 +++++++++++++++++++ 5 files changed, 64 insertions(+), 15 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 05fe6225e8..17010762b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,6 +1,6 @@ import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; -import { getParentPathFromServerPath } from '../../utils/parent-path-from-server-path.function.js'; +import { UmbServerPathUniqueSerializer } from '../../utils/server-path-unique-serializer.js'; import { CreateScriptRequestModel, ScriptResource, @@ -12,6 +12,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbScriptDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; @@ -20,8 +21,8 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource ScriptResource.getTreeScriptRoot({}); const getChildrenOf = (parentUnique: string | null) => { + const serializer = new UmbServerPathUniqueSerializer(); + if (parentUnique === null) { return getRootItems(); } else { // eslint-disable-next-line local-rules/no-direct-api-import return ScriptResource.getTreeScriptChildren({ - path: parentUnique, + path: serializer.toServerPath(parentUnique), }); } }; const mapper = (item: FileSystemTreeItemPresentationModel): UmbScriptTreeItemModel => { + const serializer = new UmbServerPathUniqueSerializer(); + return { - unique: item.path, - parentUnique: getParentPathFromServerPath(item.path), + unique: serializer.toUnique(item.path), + parentUnique: serializer.toParentUnique(item.path), entityType: item.isFolder ? UMB_SCRIPT_FOLDER_ENTITY_TYPE : UMB_SCRIPT_ENTITY_TYPE, name: item.name, isFolder: item.isFolder, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts index b334d96bda..85855dc3af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts @@ -15,8 +15,7 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { component: import('./script-workspace-edit.element.js'), setup: async (_component: PageComponent, info: IRoutingInfo) => { const parentUnique = info.match.params.parentUnique; - const decodePath = decodeURIComponent(parentUnique); - this.#workspaceContext.create(decodePath === 'null' ? '' : decodePath); + this.#workspaceContext.create(parentUnique); new UmbWorkspaceIsNewRedirectController( this, @@ -30,8 +29,7 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { component: import('./script-workspace-edit.element.js'), setup: (component: PageComponent, info: IRoutingInfo) => { const unique = info.match.params.unique; - const decodePath = decodeURIComponent(unique).replace('-js', '.js'); - this.#workspaceContext.load(decodePath); + this.#workspaceContext.load(unique); }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts index 95e6022e3a..d564820430 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts @@ -51,3 +51,4 @@ export const getUmbracoFieldSnippet = (field: string, defaultValue: string | nul }; export * from './parent-path-from-server-path.function.js'; +export * from './server-path-unique-serializer.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts new file mode 100644 index 0000000000..7c4f81d24b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts @@ -0,0 +1,43 @@ +import { getParentPathFromServerPath } from './parent-path-from-server-path.function.js'; + +export class UmbServerPathUniqueSerializer { + #magicDot = '%dot%'; + + /** + * Converts a server path to a unique URL friendly string that can be used in the client + * @param {string} serverPath + * @return {*} {(string | null)} + * @memberof UmbServerPathSerializer + */ + toUnique(serverPath: string): string { + const urlSafeServerPath = serverPath.replace('.', this.#magicDot); + return encodeURIComponent(urlSafeServerPath); + } + + /** + * Converts a server path to the a unique parent path URL friendly string that can be used in the client + * @param {string} serverPath + * @return {*} {(string | null)} + * @memberof UmbServerPathUniqueSerializer + */ + toParentUnique(serverPath: string): string | null { + const parentPath = getParentPathFromServerPath(serverPath); + + if (parentPath) { + return this.toUnique(parentPath); + } else { + return null; + } + } + + /** + * Converts a unique URL friendly string to a server path + * @param {string} serverPathUnique + * @return {*} {(string | null)} + * @memberof UmbServerPathSerializer + */ + toServerPath(serverPathUnique: string): string { + const decoded = decodeURIComponent(serverPathUnique); + return decoded.replace(this.#magicDot, '.'); + } +} From 7a0ba9efb97a0275347949086efac9a9ba92ff4b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 13:24:53 +0100 Subject: [PATCH 057/786] add tests for server path unique serializer --- .../server-path-unique-serializer.test.ts | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts new file mode 100644 index 0000000000..8fb2b06d88 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts @@ -0,0 +1,52 @@ +import { expect } from '@open-wc/testing'; +import { UmbServerPathUniqueSerializer } from './server-path-unique-serializer.js'; + +describe('UmbPaginationManager', () => { + let serializer: UmbServerPathUniqueSerializer; + const serverPath = 'Folder A/Folder AA/some-Filename-WithCasing_underscore.js'; + + const expectedUnique = 'Folder%20A%2FFolder%20AA%2Fsome-Filename-WithCasing_underscore%25dot%25js'; + const expectedParentUnique = 'Folder%20A%2FFolder%20AA'; + + beforeEach(() => { + serializer = new UmbServerPathUniqueSerializer(); + }); + + describe('Public API', () => { + describe('methods', () => { + it('has a toUnique method', () => { + expect(serializer).to.have.property('toUnique').that.is.a('function'); + }); + + it('has a toParentUnique method', () => { + expect(serializer).to.have.property('toParentUnique').that.is.a('function'); + }); + + it('has a toServerPath method', () => { + expect(serializer).to.have.property('toServerPath').that.is.a('function'); + }); + }); + }); + + describe('toUnique', () => { + it('converts a server path to a URL friendly unique', () => { + expect(serializer.toUnique(serverPath)).to.equal(expectedUnique); + }); + }); + + describe('toParentUnique', () => { + it('converts a server path to a URL friendly parent unique', () => { + expect(serializer.toParentUnique(serverPath)).to.equal(expectedParentUnique); + }); + + it('returns null if the server path is the root', () => { + expect(serializer.toParentUnique('')).to.be.null; + }); + }); + + describe('toServerPath', () => { + it('converts a URL friendly unique to a server path', () => { + expect(serializer.toServerPath(expectedUnique)).to.equal(serverPath); + }); + }); +}); From 6632b8c3f309bd6e1446a2a318c94261e9422131 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 13:25:31 +0100 Subject: [PATCH 058/786] add correct name to test --- .../templating/utils/server-path-unique-serializer.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts index 8fb2b06d88..1d9b899d82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts @@ -1,7 +1,7 @@ import { expect } from '@open-wc/testing'; import { UmbServerPathUniqueSerializer } from './server-path-unique-serializer.js'; -describe('UmbPaginationManager', () => { +describe('UmbServerPathUniqueSerializer', () => { let serializer: UmbServerPathUniqueSerializer; const serverPath = 'Folder A/Folder AA/some-Filename-WithCasing_underscore.js'; From bc21de11258396f089c33cccd4a6eda5f4ad9162 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 13:34:14 +0100 Subject: [PATCH 059/786] add tests for parent path util --- .../parent-path-from-server-path.function.test.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts new file mode 100644 index 0000000000..6adcd962cf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts @@ -0,0 +1,15 @@ +import { expect } from '@open-wc/testing'; +import { getParentPathFromServerPath } from './parent-path-from-server-path.function.js'; + +describe('parent-path-from-server-path', () => { + it('it returns the parent path of a nested server path', () => { + const path = 'Folder A/Folder AA/Folder AAA'; + const expectedParentPath = 'Folder A/Folder AA'; + expect(getParentPathFromServerPath(path)).to.equal(expectedParentPath); + }); + + it('it returns null of a root server path', () => { + const path = 'Folder A'; + expect(getParentPathFromServerPath(path)).to.be.null; + }); +}); From 3c097e6afeabb91d65d2b8aa749d4e1a0c3cacf3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 13:39:14 +0100 Subject: [PATCH 060/786] simplify --- .../scripts/tree/folder/script-folder.repository.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts index a8cb840fdf..71f184dd91 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts @@ -10,8 +10,8 @@ export class UmbScriptFolderRepository extends UmbFolderRepositoryBase { - const treeItem: UmbScriptTreeItemModel = { +const folderToScriptTreeItemFolder = (folder: UmbFolderModel): UmbScriptTreeItemModel => { + return { unique: folder.unique, parentUnique: folder.parentUnique, name: folder.name, @@ -20,6 +20,4 @@ const folderToScriptTreeItemFolder = (folder: UmbFolderModel) => { isContainer: false, hasChildren: false, }; - - return treeItem; }; From 83b24bd2198159c5a11f05222395d29e4b4d26f0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 14:47:57 +0100 Subject: [PATCH 061/786] fix import --- .../scripts/repository/script-detail.server.data-source.ts | 2 +- .../templating/scripts/tree/script-tree.server.data-source.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 17010762b5..27fa5e707f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,6 +1,6 @@ import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer } from '../../utils/server-path-unique-serializer.js'; +import { UmbServerPathUniqueSerializer } from '../../utils/index.js'; import { CreateScriptRequestModel, ScriptResource, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts index 1218ff357e..68d30e66cb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts @@ -1,5 +1,5 @@ import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer } from '../../utils/server-path-unique-serializer.js'; +import { UmbServerPathUniqueSerializer } from '../../utils/index.js'; import { UmbScriptTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { FileSystemTreeItemPresentationModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; From 966162ac716cecb284b31d79da190a0ab51a62a1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 14:48:18 +0100 Subject: [PATCH 062/786] return empty string if path is null --- .../templating/utils/server-path-unique-serializer.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts index 7c4f81d24b..c3de1b60fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts @@ -36,7 +36,9 @@ export class UmbServerPathUniqueSerializer { * @return {*} {(string | null)} * @memberof UmbServerPathSerializer */ - toServerPath(serverPathUnique: string): string { + toServerPath(serverPathUnique: string | null): string { + if (serverPathUnique === undefined) throw new Error('Server path unique is missing'); + if (serverPathUnique === null) return ''; const decoded = decodeURIComponent(serverPathUnique); return decoded.replace(this.#magicDot, '.'); } From b6be2c931b3fceece0108ce8bf66bf8e9319e940 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 14:48:40 +0100 Subject: [PATCH 063/786] clean up + map data --- .../script-folder.server.data-source.ts | 65 +++++++++++-------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts index 5db0b97192..61f37b34d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts @@ -1,3 +1,4 @@ +import { UmbServerPathUniqueSerializer } from '../../../utils/index.js'; import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -11,6 +12,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; */ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { #host: UmbControllerHost; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); /** * Creates an instance of UmbScriptFolderServerDataSource. @@ -29,12 +31,27 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { */ async read(unique: string) { if (!unique) throw new Error('Unique is missing'); - return tryExecuteAndNotify( + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + + const { data, error } = await tryExecuteAndNotify( this.#host, ScriptResource.getScriptFolder({ - path: unique, + path, }), ); + + if (data) { + const mappedData = { + unique: data.id, + name: data.name, + parentUnique: data.parentId || null, + }; + + return { data: mappedData }; + } + + return { error }; } /** @@ -47,42 +64,30 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); - const { data, error } = await tryExecuteAndNotify( + const parentPath = new UmbServerPathUniqueSerializer().toServerPath(args.parentUnique); + + const requestBody = { + parentPath, + name: args.name, + }; + + const { error } = await tryExecuteAndNotify( this.#host, ScriptResource.postScriptFolder({ - requestBody: { parentPath: args.parentUnique, name: args.name }, + requestBody, }), ); - if (data) { - const folderData = { unique: data.path, parentUnique: data.parentPath || null, name: data.name }; - return { data: folderData }; + if (!error) { + /* TODO: investigate why we don't get the location header as part of data, + so we don't have to construct the path ourselves */ + const newPath = `${parentPath}/${args.name}`; + return this.read(newPath); } return { error }; } - /** - * Updates a Script folder on the server - * @param {UmbUpdateFolderModel} args - * @return {UmbDataSourceErrorResponse} - * @memberof UmbScriptFolderServerDataSource - */ - async update(args: UmbUpdateFolderModel): Promise { - throw new Error('Not implemented. Missing server endpoint'); - /* - if (!args.unique) throw new Error('Unique is missing'); - if (!args.name) throw new Error('Folder name is missing'); - return tryExecuteAndNotify( - this.#host, - ScriptResource.putScriptFolder({ - id: args.unique, - requestBody: { name: args.name }, - }), - ); - */ - } - /** * Deletes a Script folder on the server * @param {string} unique @@ -98,4 +103,8 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { }), ); } + + async update(args: UmbUpdateFolderModel): Promise { + throw new Error('Updating is not supported'); + } } From 8809445eff8b8c874f63d40586e9390829493141 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 14:59:49 +0100 Subject: [PATCH 064/786] correctly map to unique --- .../scripts/tree/folder/script-folder.server.data-source.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts index 61f37b34d1..a99db501a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts @@ -43,9 +43,9 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { if (data) { const mappedData = { - unique: data.id, + unique: this.#serverPathUniqueSerializer.toUnique(data.path), + parentUnique: this.#serverPathUniqueSerializer.toUnique(data.parentPath), name: data.name, - parentUnique: data.parentId || null, }; return { data: mappedData }; From 29b29986040d0fef2184c88198e58d12bb575625 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 15:02:55 +0100 Subject: [PATCH 065/786] map unique --- .../scripts/tree/folder/script-folder.server.data-source.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts index a99db501a4..c5819f140e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts @@ -96,10 +96,13 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { */ async delete(unique: string) { if (!unique) throw new Error('Unique is missing'); + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + return tryExecuteAndNotify( this.#host, ScriptResource.deleteScriptFolder({ - path: unique, + path, }), ); } From feb6a89471eefc6fba394cf0ba207d5ac77b0a29 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 17:27:12 +0100 Subject: [PATCH 066/786] dont worry about the unique here --- .../packages/core/repository/detail/detail-repository-base.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 53d708a864..628fb319af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -74,7 +74,6 @@ export abstract class UmbDetailRepositoryBase Date: Thu, 14 Dec 2023 17:27:44 +0100 Subject: [PATCH 067/786] unique mapper --- .../script-detail.server.data-source.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 27fa5e707f..5bb7f228c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -33,28 +33,33 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource Date: Thu, 14 Dec 2023 17:27:56 +0100 Subject: [PATCH 068/786] don't worry about the unique here --- .../templating/scripts/workspace/script-workspace.context.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index d516540baa..ebf6d2f259 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -69,8 +69,7 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } async save() { - if (!this.#data.value) return; - if (!this.#data.value.unique) return; + if (!this.#data.value) throw new Error('Data is missing'); if (this.getIsNew()) { await this.repository.create(this.#data.value); From 34500bb22c7d18e3478c04e1f02a2d2c43c59ab1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 17:32:58 +0100 Subject: [PATCH 069/786] remove type hack --- .../src/packages/core/data-type/tree/data-type-tree.store.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts index 6d89c4373d..030ae1dc06 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts @@ -33,7 +33,7 @@ export class UmbDataTypeTreeStore extends UmbUniqueTreeStore { // TODO: revisit this when we have decided on detail model sizes #createTreeItemMapper = (item: UmbDataTypeDetailModel) => { const treeItem: UmbDataTypeTreeItemModel = { - unique: item.unique!, + unique: item.unique, parentUnique: item.parentUnique, name: item.name, entityType: item.entityType, From b1cca515c9ef24cfd076c448cf522a16e3f3516c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:49:18 +0100 Subject: [PATCH 070/786] remove rename of export --- .../packages/templating/scripts/entity-actions/manifests.ts | 6 +++--- .../src/packages/templating/scripts/repository/index.ts | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts index 98499c3100..28bd08fd8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_SCRIPT_REPOSITORY_ALIAS } from '../repository/index.js'; +import { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbCreateScriptAction } from './create/create-empty.action.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; @@ -16,7 +16,7 @@ const scriptViewActions: Array = [ meta: { icon: 'icon-trash', label: 'Delete', - repositoryAlias: UMB_SCRIPT_REPOSITORY_ALIAS, + repositoryAlias: UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_SCRIPT_ENTITY_TYPE], }, }, @@ -31,7 +31,7 @@ const scriptFolderActions: Array = [ meta: { icon: 'icon-article', label: 'New empty script', - repositoryAlias: UMB_SCRIPT_REPOSITORY_ALIAS, + repositoryAlias: UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts index bea24485a2..f53bd9a964 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/index.ts @@ -1,2 +1,3 @@ -export { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS as UMB_SCRIPT_REPOSITORY_ALIAS } from './manifests.js'; +export { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; export { UmbScriptDetailRepository } from './script-detail.repository.js'; +export { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.js'; From ca664b6bb9c04ddd1d64a74cb14ee30f79efa17a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:56:05 +0100 Subject: [PATCH 071/786] remove unused code --- .../workspace/script-workspace-edit.element.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts index edf2b89730..b3ffef622f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts @@ -29,23 +29,13 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { @state() private _ready?: boolean = false; - @query('umb-code-editor') - private _codeEditor?: UmbCodeEditorElement; - #scriptsWorkspaceContext?: UmbScriptWorkspaceContext; - private _modalContext?: UmbModalManagerContext; - - #isNew = false; private inputQuery$ = new Subject(); constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this._modalContext = instance; - }); - this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { this.#scriptsWorkspaceContext = workspaceContext as UmbScriptWorkspaceContext; this.observe(this.#scriptsWorkspaceContext.name, (name) => { @@ -60,10 +50,6 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { this._path = path?.replace(/\\/g, '/'); }); - this.observe(this.#scriptsWorkspaceContext.isNew, (isNew) => { - this.#isNew = !!isNew; - }); - this.observe(this.#scriptsWorkspaceContext.isCodeEditorReady, (isReady) => { this._ready = isReady; }); From c62adfcadfa90dd9d1e31732b2ce1de6e9a09ff1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:56:50 +0100 Subject: [PATCH 072/786] comment out non working keyboard shortcuts --- .../scripts/workspace/script-workspace-edit.element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts index b3ffef622f..ce51fb7eb0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts @@ -100,7 +100,7 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { `}
- +
`; } From 3c4a1c8a07a24ddfc495c2de2090ad9d60a8f195 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:57:16 +0100 Subject: [PATCH 073/786] remove it --- .../workspace/script-workspace-edit.element.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts index ce51fb7eb0..ebfe8cf64b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts @@ -99,20 +99,6 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { `} -
- -
`; } From fb10b96c5826478f5f461f9786bf431685af29f0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:57:54 +0100 Subject: [PATCH 074/786] align file name --- ...rkspace-edit.element.ts => script-workspace-editor.element.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/{script-workspace-edit.element.ts => script-workspace-editor.element.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts From 5f05318e72767de4016d8ced233c390a984c0d44 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:58:08 +0100 Subject: [PATCH 075/786] remove unused --- .../scripts/workspace/script-workspace-editor.element.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index ebfe8cf64b..a37b27b685 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -1,9 +1,8 @@ import { UmbScriptWorkspaceContext } from './script-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { UUITextStyles, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; -import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; From d98ab370c0a8831319f8e6119aeb7060228da5af Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:59:21 +0100 Subject: [PATCH 076/786] remove type cast --- .../scripts/workspace/script-workspace-editor.element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index a37b27b685..e2cad163bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -36,7 +36,8 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { super(); this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { - this.#scriptsWorkspaceContext = workspaceContext as UmbScriptWorkspaceContext; + this.#scriptsWorkspaceContext = workspaceContext; + this.observe(this.#scriptsWorkspaceContext.name, (name) => { this._name = name; }); From 3527001e1224c4196727da1000454ffb7505ade8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 19:59:33 +0100 Subject: [PATCH 077/786] fix file name --- .../templating/scripts/workspace/script-workspace.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts index 85855dc3af..0842dcfee9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts @@ -12,7 +12,7 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { _routes: UmbRoute[] = [ { path: 'create/:parentUnique', - component: import('./script-workspace-edit.element.js'), + component: import('./script-workspace-editor.element.js'), setup: async (_component: PageComponent, info: IRoutingInfo) => { const parentUnique = info.match.params.parentUnique; this.#workspaceContext.create(parentUnique); From dbc8acf156b492496d0815a31fd0fa1ffedb57a4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 20:06:11 +0100 Subject: [PATCH 078/786] align naming --- .../workspace/script-workspace-editor.element.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index e2cad163bb..12c9581f81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -6,8 +6,8 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -@customElement('umb-script-workspace-edit') -export class UmbScriptWorkspaceEditElement extends UmbLitElement { +@customElement('umb-script-workspace-editor') +export class UmbScriptWorkspaceEditorElement extends UmbLitElement { #name: string | undefined = ''; @state() private get _name() { @@ -36,7 +36,7 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { super(); this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { - this.#scriptsWorkspaceContext = workspaceContext; + this.#scriptsWorkspaceContext = workspaceContext as UmbScriptWorkspaceContext; this.observe(this.#scriptsWorkspaceContext.name, (name) => { this._name = name; @@ -139,10 +139,10 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbScriptWorkspaceEditElement; +export default UmbScriptWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-script-workspace-edit': UmbScriptWorkspaceEditElement; + 'umb-script-workspace-editor': UmbScriptWorkspaceEditorElement; } } From 3c994d2bee68531d70b7b02337b9c4b8aaa25cf1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 20:07:50 +0100 Subject: [PATCH 079/786] fix merge error --- src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts index 6097f82d6f..2b50aea71b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts @@ -17,7 +17,6 @@ export * from './embedded-media-modal.token.js'; export * from './entity-user-permission-settings-modal.token.js'; export * from './examine-fields-settings-modal.token.js'; export * from './export-dictionary-modal.token.js'; -export * from './folder-modal.token.js'; export * from './icon-picker-modal.token.js'; export * from './import-dictionary-modal.token.js'; export * from './language-picker-modal.token.js'; From 57e46cfdb69db4506b6c9a260e162a5f8b533ce9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 20:13:15 +0100 Subject: [PATCH 080/786] transform string null to null --- .../scripts/workspace/script-workspace.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts index fa7490a5f6..2aced0f4a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts @@ -1,5 +1,5 @@ import { UmbScriptWorkspaceContext } from './script-workspace.context.js'; -import { UmbScriptWorkspaceEditElement } from './script-workspace-edit.element.js'; +import { UmbScriptWorkspaceEditorElement } from './script-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -9,7 +9,7 @@ import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/wor @customElement('umb-script-workspace') export class UmbScriptWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbScriptWorkspaceContext(this); - #createElement = () => new UmbScriptWorkspaceEditElement(); + #createElement = () => new UmbScriptWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ @@ -17,7 +17,7 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { path: 'create/:parentUnique', component: this.#createElement, setup: async (_component: PageComponent, info: IRoutingInfo) => { - const parentUnique = info.match.params.parentUnique; + const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; this.#workspaceContext.create(parentUnique); new UmbWorkspaceIsNewRedirectController( From bb82a3c9db2374223589824166b97aafc4597e97 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 20:13:26 +0100 Subject: [PATCH 081/786] allow null as parentUnique --- .../templating/scripts/workspace/script-workspace.context.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index ebf6d2f259..8672ecd526 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -53,7 +53,7 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } } - async create(parentUnique: string) { + async create(parentUnique: string | null) { const { data } = await this.repository.createScaffold(parentUnique); if (data) { From d1b312cdbd90bb984a7d0413a7850b17dcafd6cb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 20:13:43 +0100 Subject: [PATCH 082/786] accept null as parentUnique --- .../scripts/repository/script-detail.server.data-source.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 5bb7f228c4..f211f02e51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -33,7 +33,7 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource Date: Thu, 14 Dec 2023 21:17:01 +0100 Subject: [PATCH 083/786] append file name before sending to the server --- .../scripts/repository/script-detail.server.data-source.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index f211f02e51..b29e8eaa12 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,6 +1,6 @@ import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer } from '../../utils/index.js'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../utils/index.js'; import { CreateScriptRequestModel, ScriptResource, @@ -41,7 +41,7 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource Date: Thu, 14 Dec 2023 21:17:22 +0100 Subject: [PATCH 084/786] remove extension append in workspace --- .../script-workspace-editor.element.ts | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index 12c9581f81..8398a4d27c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -3,21 +3,12 @@ import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { UUITextStyles, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-script-workspace-editor') export class UmbScriptWorkspaceEditorElement extends UmbLitElement { - #name: string | undefined = ''; @state() - private get _name() { - return this.#name; - } - - private set _name(value) { - this.#name = value?.replace('.js', ''); - this.requestUpdate(); - } + private _name?: string = ''; @state() private _content?: string | null = ''; @@ -30,8 +21,6 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { #scriptsWorkspaceContext?: UmbScriptWorkspaceContext; - private inputQuery$ = new Subject(); - constructor() { super(); @@ -53,17 +42,13 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { this.observe(this.#scriptsWorkspaceContext.isCodeEditorReady, (isReady) => { this._ready = isReady; }); - - this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue: string) => { - this.#scriptsWorkspaceContext?.setName(`${nameInputValue}.js`); - }); }); } #onNameInput(event: Event) { const target = event.target as UUIInputElement; const value = target.value as string; - this.inputQuery$.next(value); + this.#scriptsWorkspaceContext?.setName(value); } #onCodeEditorInput(event: Event) { @@ -87,8 +72,8 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { placeholder="Enter name..." .value=${this._name} @input=${this.#onNameInput} - label="template name"> - Scripts/${this._path} + label="Script name"> + /scripts/${this._path} From 0cacf0c552b4c05cd0002624c6c75f14dc511955 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 14 Dec 2023 21:17:42 +0100 Subject: [PATCH 085/786] add function to append file extension --- .../utils/append-file-extension.function.test.ts | 12 ++++++++++++ .../utils/append-file-extension.function.ts | 7 +++++++ .../src/packages/templating/utils/index.ts | 1 + 3 files changed, 20 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.test.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.test.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.test.ts new file mode 100644 index 0000000000..48830fe697 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.test.ts @@ -0,0 +1,12 @@ +import { expect } from '@open-wc/testing'; +import { appendFileExtensionIfNeeded } from './append-file-extension.function.js'; + +describe('append-file-extension-if-needed', () => { + it('should append extension if not present', () => { + expect(appendFileExtensionIfNeeded('test', '.js')).to.equal('test.js'); + }); + + it('should not append extension if present', () => { + expect(appendFileExtensionIfNeeded('test.js', '.js')).to.equal('test.js'); + }); +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.ts new file mode 100644 index 0000000000..25df47ddc6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.ts @@ -0,0 +1,7 @@ +export const appendFileExtensionIfNeeded = (fileName: string, extension: string) => { + if (!fileName.endsWith(extension)) { + return fileName + extension; + } + + return fileName; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts index d564820430..90a7a7b3b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts @@ -52,3 +52,4 @@ export const getUmbracoFieldSnippet = (field: string, defaultValue: string | nul export * from './parent-path-from-server-path.function.js'; export * from './server-path-unique-serializer.js'; +export * from './append-file-extension.function.js'; From da72eb9d2cabf70f61c3e8fbd775502cec3a9365 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 12:56:16 +0100 Subject: [PATCH 086/786] add action event context --- .../core/action/action-event.context.ts | 13 +++++++++ .../src/packages/core/action/action.event.ts | 27 +++++++++++++++++++ .../src/packages/core/action/index.ts | 2 ++ 3 files changed, 42 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts new file mode 100644 index 0000000000..945fadf152 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts @@ -0,0 +1,13 @@ +import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +export class UmbActionEventContext extends UmbContextBase { + constructor(host: UmbControllerHost) { + super(host, UMB_ACTION_EVENT_CONTEXT); + } +} + +export const UMB_ACTION_EVENT_CONTEXT = new UmbContextToken( + 'UmbActionEventContext', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts new file mode 100644 index 0000000000..24e4901ba9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts @@ -0,0 +1,27 @@ +export class UmbControllerEvent extends Event { + public constructor(type: string) { + super(type, { bubbles: false, composed: false, cancelable: false }); + } +} + +export interface UmbActionEventArgs { + entityType: string; + unique: string; +} + +export class UmbActionEvent extends UmbControllerEvent { + #args: UmbActionEventArgs; + + public constructor(type: string, args: UmbActionEventArgs) { + super(type); + this.#args = args; + } + + getEntityType(): string { + return this.#args.entityType; + } + + getUnique(): string { + return this.#args.unique; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts index b9a260ce0b..05f892981b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts @@ -1,2 +1,4 @@ export * from './repository-action.js'; export * from './action.interface.js'; +export * from './action-event.context.js'; +export * from './action.event.js'; From 0d13f1353c43f6dc986c58b6981028be0ccb4860 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 12:56:40 +0100 Subject: [PATCH 087/786] make a controller an event target --- .../src/libs/class-api/controller-base.class.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts index 5c2b78b2b7..a37142d8a1 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts @@ -6,4 +6,4 @@ import { UmbClassMixin } from './index.js'; * This enables controllers to be added to the life cycle of this element. * */ -export abstract class UmbBaseController extends UmbClassMixin(class {}) implements UmbController {} +export abstract class UmbBaseController extends UmbClassMixin(EventTarget) implements UmbController {} From 3930db590ca6656919f80610c228693ef1f86030 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 12:57:17 +0100 Subject: [PATCH 088/786] initial action event target --- src/Umbraco.Web.UI.Client/src/packages/core/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts index 21661c1e53..f26ce09226 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -16,6 +16,7 @@ import { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbExtensionsApiInitializer, type UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; import type { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbActionEventContext } from './action/action-event.context.js'; export * from './collection/index.js'; export * from './localization/index.js'; @@ -74,4 +75,5 @@ export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { new UmbNotificationContext(host); new UmbModalManagerContext(host); + new UmbActionEventContext(host); }; From 2c97ed6316c152af5f0c80ce9e95caa6a253721c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 12:57:42 +0100 Subject: [PATCH 089/786] extend context base for store base --- .../src/packages/core/store/store-base.ts | 21 ++++--------------- .../packages/core/store/store.interface.ts | 2 +- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts index c2ba2afaf0..703c08de45 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts @@ -2,26 +2,17 @@ import { UmbStore } from './store.interface.js'; import { UmbStoreRemoveEvent } from './events/store-remove.event.js'; import { UmbStoreUpdateEvent } from './events/store-update.event.js'; import { UmbStoreAppendEvent } from './events/store-append.event.js'; -import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { type UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; -export class UmbStoreBase extends EventTarget implements UmbStore, UmbApi { - #provider; - - protected _host: UmbControllerHost; +export class UmbStoreBase extends UmbContextBase implements UmbStore, UmbApi { protected _data: UmbArrayState; - public readonly storeAlias: string; - - constructor(_host: UmbControllerHost, storeAlias: string, data: UmbArrayState) { - super(); - this._host = _host; - this.storeAlias = storeAlias; + constructor(host: UmbControllerHost, storeAlias: string, data: UmbArrayState) { + super(host, storeAlias); this._data = data; - - this.#provider = new UmbContextProviderController(_host, storeAlias, this); } /** @@ -94,8 +85,4 @@ export class UmbStoreBase extends EventTarget implements Um all() { return this._data.asObservable(); } - - destroy() { - this.#provider.destroy(); - } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts index 0e65b33aeb..1803d5e41e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts @@ -1,6 +1,6 @@ import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -export interface UmbStore extends EventTarget { +export interface UmbStore extends UmbContextBase { append: (item: T) => void; appendItems: (items: Array) => void; updateItem: (unique: string, item: Partial) => void; From e08cb7de5e0631e721d570de6f3c747c54f58602 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 12:57:57 +0100 Subject: [PATCH 090/786] test dispatch events from detail repo --- .../detail/detail-repository-base.ts | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 3db16d452e..b060715059 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -4,13 +4,19 @@ import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; +import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export abstract class UmbDetailRepositoryBase extends UmbRepositoryBase { +export abstract class UmbDetailRepositoryBase + extends UmbRepositoryBase + implements UmbApi +{ #init: Promise; #detailStore?: UmbDetailStore; #detailSource: UmbDetailDataSource; #notificationContext?: UmbNotificationContext; + #actionEventContext?: UmbActionEventContext; constructor( host: UmbControllerHost, @@ -29,6 +35,10 @@ export abstract class UmbDetailRepositoryBase { this.#notificationContext = instance; }).asPromise(), + + this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { + this.#actionEventContext = instance; + }).asPromise(), ]); } @@ -73,6 +83,9 @@ export abstract class UmbDetailRepositoryBase Date: Fri, 15 Dec 2023 12:58:15 +0100 Subject: [PATCH 091/786] test listen to event from detail store --- .../detail/data-type-detail.store.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts index 9474ba7d55..71a5cc5ee6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts @@ -2,6 +2,7 @@ import { UmbDataTypeDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_ACTION_EVENT_CONTEXT, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; /** * @export @@ -10,6 +11,8 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api * @description - Data Store for Data Type Details */ export class UmbDataTypeDetailStore extends UmbDetailStoreBase { + #actionEventContext?: UmbActionEventContext; + /** * Creates an instance of UmbDataTypeDetailStore. * @param {UmbControllerHostElement} host @@ -17,6 +20,23 @@ export class UmbDataTypeDetailStore extends UmbDetailStoreBase { + this.#actionEventContext = context; + this.#listen(); + }); + } + + #listen() { + this.#actionEventContext!.addEventListener('save-success', (event) => { + console.log('event', event); + debugger; + }); + + this.#actionEventContext!.addEventListener('save-error', (event) => { + console.log('event', event); + debugger; + }); } withPropertyEditorUiAlias(propertyEditorUiAlias: string) { From 57f936b8e190fa9e08faa3ff76288aca60943086 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 14:16:28 +0100 Subject: [PATCH 092/786] remove unused --- .../detail/data-type-detail.store.ts | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts index 71a5cc5ee6..9474ba7d55 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts @@ -2,7 +2,6 @@ import { UmbDataTypeDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_ACTION_EVENT_CONTEXT, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; /** * @export @@ -11,8 +10,6 @@ import { UMB_ACTION_EVENT_CONTEXT, type UmbActionEventContext } from '@umbraco-c * @description - Data Store for Data Type Details */ export class UmbDataTypeDetailStore extends UmbDetailStoreBase { - #actionEventContext?: UmbActionEventContext; - /** * Creates an instance of UmbDataTypeDetailStore. * @param {UmbControllerHostElement} host @@ -20,23 +17,6 @@ export class UmbDataTypeDetailStore extends UmbDetailStoreBase { - this.#actionEventContext = context; - this.#listen(); - }); - } - - #listen() { - this.#actionEventContext!.addEventListener('save-success', (event) => { - console.log('event', event); - debugger; - }); - - this.#actionEventContext!.addEventListener('save-error', (event) => { - console.log('event', event); - debugger; - }); } withPropertyEditorUiAlias(propertyEditorUiAlias: string) { From 68c9d72ee53879231f12f2a9cbbd0d321bf703c8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 14:18:56 +0100 Subject: [PATCH 093/786] update data after save --- .../repository/detail/detail-repository-base.ts | 2 +- .../repository/script-detail.server.data-source.ts | 14 +++++++++++--- .../scripts/workspace/script-workspace.context.ts | 13 ++++++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 628fb319af..11fdb527ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -86,7 +86,7 @@ export abstract class UmbDetailRepositoryBase Date: Fri, 15 Dec 2023 15:56:26 +0100 Subject: [PATCH 094/786] add event listernes to script tree store --- .../scripts/tree/script-tree.store.ts | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index 76bd969ac3..b90e59622f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -1,3 +1,5 @@ +import { UmbScriptTreeRepository } from './script-tree.repository.js'; +import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; @@ -9,6 +11,9 @@ import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; * @description - Tree Data Store for Scripts */ export class UmbScriptTreeStore extends UmbUniqueTreeStore { + #actionEventContext?: UmbActionEventContext; + #treeRepository: UmbScriptTreeRepository; + /** * Creates an instance of UmbScriptTreeStore. * @param {UmbControllerHostElement} host @@ -16,6 +21,44 @@ export class UmbScriptTreeStore extends UmbUniqueTreeStore { */ constructor(host: UmbControllerHostElement) { super(host, UMB_SCRIPT_TREE_STORE_CONTEXT.toString()); + + this.#treeRepository = new UmbScriptTreeRepository(host); + + this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { + this.#actionEventContext = instance; + this.#listen(); + }); + } + + #listen() { + this.#actionEventContext?.addEventListener('create-success', this.#onCreated); + this.#actionEventContext?.addEventListener('save-success', this.#onSaved); + this.#actionEventContext?.addEventListener('delete-success', this.#onDeleted); + } + + #onCreated = (event: UmbActionEvent) => { + // the item doesn't exist yet, so we reload the parent + const eventParentUnique = event.getParentUnique(); + this.#treeRepository.requestTreeItemsOf(eventParentUnique); + }; + + #onSaved = (event: UmbActionEvent) => { + // only reload the parent if the item is already in the store + const eventUnique = event.getUnique(); + const storeItem = this.getItems([eventUnique])?.[0]; + if (storeItem) { + this.#treeRepository.requestTreeItemsOf(storeItem.parentUnique); + } + }; + + #onDeleted = (event: UmbActionEvent) => { + this.removeItem(event.getUnique()); + }; + + onDestroy() { + this.#actionEventContext?.removeEventListener('create-success', this.#onCreated); + this.#actionEventContext?.removeEventListener('save-success', this.#onSaved); + this.#actionEventContext?.removeEventListener('delete-success', this.#onDeleted); } } From 7558c50aceff1b009914b763c4557b7abdd056c9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 15:56:44 +0100 Subject: [PATCH 095/786] pass parent unique --- .../repository/detail/detail-repository-base.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 5a58acbf4b..22ed36438e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -7,7 +7,9 @@ import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; -export abstract class UmbDetailRepositoryBase +export abstract class UmbDetailRepositoryBase< + DetailModelType extends { unique: string; entityType: string; parentUnique: string | null }, + > extends UmbRepositoryBase implements UmbApi { @@ -82,7 +84,7 @@ export abstract class UmbDetailRepositoryBase Date: Fri, 15 Dec 2023 15:56:57 +0100 Subject: [PATCH 096/786] accept parent unique --- .../src/packages/core/action/action.event.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts index 24e4901ba9..3adacaa763 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts @@ -5,8 +5,8 @@ export class UmbControllerEvent extends Event { } export interface UmbActionEventArgs { - entityType: string; unique: string; + parentUnique: string | null; // TODO: remove this when we have endpoints to support mapping a new item without reloading the parent tree item } export class UmbActionEvent extends UmbControllerEvent { @@ -17,11 +17,11 @@ export class UmbActionEvent extends UmbControllerEvent { this.#args = args; } - getEntityType(): string { - return this.#args.entityType; - } - getUnique(): string { return this.#args.unique; } + + getParentUnique(): string { + return this.#args.unique; + } } From fe9ad9988b5ce11fa5d98f19a8279e9744a2b429 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 15 Dec 2023 15:59:31 +0100 Subject: [PATCH 097/786] add mock data --- src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts index e0b88086fd..a90b109642 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts @@ -115,6 +115,14 @@ export const data: Array = [ console.log(employee);`, }, + { + path: 'very important folder/file-with-dash.js', + isFolder: false, + name: 'file-with-dash.js', + type: 'script', + hasChildren: false, + content: `alert('hello file with dash');`, + }, ]; class UmbScriptsData extends UmbData { From 5a7d8b6747bcc64cf5c11c9321ea24a26e8d466a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 19:42:09 +0100 Subject: [PATCH 098/786] wip split file system mock db into reusable managers --- .../src/mocks/data/data.ts | 5 +- .../file-system/file-system-folder-manager.ts | 29 +++++ .../file-system/file-system-tree-manager.ts | 32 +++++ .../src/mocks/data/scripts.data.ts | 116 ++++-------------- 4 files changed, 89 insertions(+), 93 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder-manager.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree-manager.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data.ts index 8f08949ada..d26dc233ff 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data.ts @@ -1,4 +1,3 @@ -// Temp mocked database export class UmbData { protected data: Array = []; @@ -6,6 +5,10 @@ export class UmbData { this.data = data; } + getData() { + return this.data; + } + get total() { return this.data.length; } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder-manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder-manager.ts new file mode 100644 index 0000000000..ac5bbded13 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder-manager.ts @@ -0,0 +1,29 @@ +import { UmbData } from '../data.js'; +import { CreatePathFolderRequestModel, PathFolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbMockFileSystemFolderManager { + #db: UmbData; + + constructor(db: UmbData) { + this.#db = db; + } + + create(request: CreatePathFolderRequestModel) { + const newFolder = { + path: `${request.parentPath ?? ''}/${request.name}`, + name: request.name, + hasChildren: false, + isFolder: true, + }; + + this.#db.getData().push(newFolder); + } + + read(path: string) { + return this.#db.getData().find((item) => item.path === path); + } + + delete(path: string) { + alert('delete folder'); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree-manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree-manager.ts new file mode 100644 index 0000000000..a3e1b4395f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree-manager.ts @@ -0,0 +1,32 @@ +import { UmbData } from '../data.js'; +import { createFileSystemTreeItem } from '../utils.js'; +import { + FileSystemTreeItemPresentationModel, + PagedFileSystemTreeItemPresentationModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export class UmbMockFileSystemTreeManager { + #db: UmbData; + + constructor(mockDb: UmbData) { + this.#db = mockDb; + } + + getTreeRoot(): PagedFileSystemTreeItemPresentationModel { + const items = this.#db.getData().filter((item) => item.path?.includes('/') === false); + const treeItems = items.map((item) => createFileSystemTreeItem(item)); + const total = items.length; + return { items: treeItems, total }; + } + + getTreeItemChildren(parentPath: string): PagedFileSystemTreeItemPresentationModel { + const items = this.#db.getData().filter((item) => item.path?.startsWith(parentPath)); + const treeItems = items.map((item) => createFileSystemTreeItem(item)); + const total = items.length; + return { items: treeItems, total }; + } + + getTreeItem(path: string): FileSystemTreeItemPresentationModel | undefined { + return this.#db.getData().find((item) => item.path === path); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts index a90b109642..9fec2eaf7a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts @@ -1,18 +1,18 @@ import { UmbData } from './data.js'; -import { createFileItemResponseModelBaseModel, createFileSystemTreeItem, createTextFileItem } from './utils.js'; +import { UmbMockFileSystemFolderManager } from './file-system/file-system-folder-manager.js'; +import { UmbMockFileSystemTreeManager } from './file-system/file-system-tree-manager.js'; +import { createFileItemResponseModelBaseModel, createTextFileItem } from './utils.js'; import { - CreatePathFolderRequestModel, CreateTextFileViewModelBaseModel, FileSystemTreeItemPresentationModel, - PagedFileSystemTreeItemPresentationModel, ScriptItemResponseModel, ScriptResponseModel, UpdateScriptRequestModel, } from '@umbraco-cms/backoffice/backend-api'; -type ScriptsDataItem = ScriptResponseModel & FileSystemTreeItemPresentationModel; +type UmbMockScriptModel = ScriptResponseModel & FileSystemTreeItemPresentationModel; -export const data: Array = [ +export const data: Array = [ { path: 'some-folder', isFolder: true, @@ -125,123 +125,55 @@ export const data: Array = [ }, ]; -class UmbScriptsData extends UmbData { +class UmbScriptsData extends UmbData { + tree = new UmbMockFileSystemTreeManager(this); + folder = new UmbMockFileSystemFolderManager(this); + constructor() { super(data); } - getTreeRoot(): PagedFileSystemTreeItemPresentationModel { - const items = this.data.filter((item) => item.path?.includes('/') === false); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItemChildren(parentPath: string): PagedFileSystemTreeItemPresentationModel { - const items = this.data.filter((item) => item.path?.startsWith(parentPath)); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItem(paths: Array): Array { - const items = this.data.filter((item) => paths.includes(item.path ?? '')); - return items.map((item) => createFileSystemTreeItem(item)); - } - getItem(paths: Array): Array { const items = this.data.filter((item) => paths.includes(item.path ?? '')); return items.map((item) => createFileItemResponseModelBaseModel(item)); } - getFolder(path: string) { - return data.find((item) => item.isFolder && item.path === path); - } - - postFolder(payload: CreatePathFolderRequestModel) { - const newFolder = { - path: `${payload.parentPath ?? ''}/${payload.name}`, - isFolder: true, - name: payload.name, - type: 'script', - hasChildren: false, - content: '', - }; - return this.insert(newFolder); - } - - deleteFolder(path: string) { - return this.delete([path]); - } - - getScript(path: string): ScriptResponseModel | undefined { - return createTextFileItem(this.data.find((item) => item.path === path)); - } - - insertScript(item: CreateTextFileViewModelBaseModel) { - const newItem: ScriptsDataItem = { - ...item, - path: `${item.parentPath}/${item.name}.js}`, + create(item: CreateTextFileViewModelBaseModel) { + const newItem: UmbMockScriptModel = { + name: item.name, + content: item.content, + //parentPath: item.parentPath, + path: `${item.parentPath}` ? `${item.parentPath}/${item.name}}` : item.name, isFolder: false, hasChildren: false, type: 'script', }; - this.insert(newItem); - return newItem; + this.data.push(newItem); } - insert(item: ScriptsDataItem) { - const exits = this.data.find((i) => i.path === item.path); - - if (exits) { - throw new Error(`Item with path ${item.path} already exists`); - } - - this.data.push(item); - - return item; + read(path: string): ScriptResponseModel | undefined { + const item = this.data.find((item) => item.path === path); + return createTextFileItem(item); } - updateData(updateItem: UpdateScriptRequestModel) { + update(updateItem: UpdateScriptRequestModel) { const itemIndex = this.data.findIndex((item) => item.path === updateItem.existingPath); const item = this.data[itemIndex]; - if (!item) return; + if (!item) throw new Error('Item not found'); - // TODO: revisit this code, seems like something we can solve smarter/type safer now: - const itemKeys = Object.keys(item); - const newItem = { ...item }; + const updatedItem = { + path: item, + }; - for (const [key] of Object.entries(updateItem)) { - if (itemKeys.indexOf(key) !== -1) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - newItem[key] = updateItem[key]; - } - } - // Specific to fileSystem, we need to update path based on name: - const dirName = updateItem.existingPath?.substring(0, updateItem.existingPath.lastIndexOf('/')); - newItem.path = `${dirName}${dirName ? '/' : ''}${updateItem.name}`; - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore this.data[itemIndex] = newItem; } delete(paths: Array) { - const pathsOfItemsToDelete = this.data - .filter((item) => { - if (!item.path) throw new Error('Item has no path'); - return paths.includes(item.path); - }) - .map((item) => item.path); - this.data = this.data.filter((item) => { if (!item.path) throw new Error('Item has no path'); return paths.indexOf(item.path) === -1; }); - - return pathsOfItemsToDelete; } } From 02e02df0d290608ee902b2ce299398ee68b1e948 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 19:46:59 +0100 Subject: [PATCH 099/786] split db and data into separate files --- .../script.data.ts} | 68 +------------------ .../src/mocks/data/script/script.db.ts | 65 ++++++++++++++++++ 2 files changed, 67 insertions(+), 66 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/data/{scripts.data.ts => script/script.data.ts} (54%) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts similarity index 54% rename from src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts index 9fec2eaf7a..e9e43d58c9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/scripts.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts @@ -1,16 +1,6 @@ -import { UmbData } from './data.js'; -import { UmbMockFileSystemFolderManager } from './file-system/file-system-folder-manager.js'; -import { UmbMockFileSystemTreeManager } from './file-system/file-system-tree-manager.js'; -import { createFileItemResponseModelBaseModel, createTextFileItem } from './utils.js'; -import { - CreateTextFileViewModelBaseModel, - FileSystemTreeItemPresentationModel, - ScriptItemResponseModel, - ScriptResponseModel, - UpdateScriptRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { FileSystemTreeItemPresentationModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; -type UmbMockScriptModel = ScriptResponseModel & FileSystemTreeItemPresentationModel; +export type UmbMockScriptModel = ScriptResponseModel & FileSystemTreeItemPresentationModel; export const data: Array = [ { @@ -124,57 +114,3 @@ export const data: Array = [ content: `alert('hello file with dash');`, }, ]; - -class UmbScriptsData extends UmbData { - tree = new UmbMockFileSystemTreeManager(this); - folder = new UmbMockFileSystemFolderManager(this); - - constructor() { - super(data); - } - - getItem(paths: Array): Array { - const items = this.data.filter((item) => paths.includes(item.path ?? '')); - return items.map((item) => createFileItemResponseModelBaseModel(item)); - } - - create(item: CreateTextFileViewModelBaseModel) { - const newItem: UmbMockScriptModel = { - name: item.name, - content: item.content, - //parentPath: item.parentPath, - path: `${item.parentPath}` ? `${item.parentPath}/${item.name}}` : item.name, - isFolder: false, - hasChildren: false, - type: 'script', - }; - - this.data.push(newItem); - } - - read(path: string): ScriptResponseModel | undefined { - const item = this.data.find((item) => item.path === path); - return createTextFileItem(item); - } - - update(updateItem: UpdateScriptRequestModel) { - const itemIndex = this.data.findIndex((item) => item.path === updateItem.existingPath); - const item = this.data[itemIndex]; - if (!item) throw new Error('Item not found'); - - const updatedItem = { - path: item, - }; - - this.data[itemIndex] = newItem; - } - - delete(paths: Array) { - this.data = this.data.filter((item) => { - if (!item.path) throw new Error('Item has no path'); - return paths.indexOf(item.path) === -1; - }); - } -} - -export const umbScriptsData = new UmbScriptsData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts new file mode 100644 index 0000000000..c325183d50 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts @@ -0,0 +1,65 @@ +import { UmbData } from '../data.js'; +import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folder-manager.js'; +import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree-manager.js'; +import { createFileItemResponseModelBaseModel, createTextFileItem } from '../utils.js'; +import { UmbMockScriptModel, data as scriptData } from './script.data.js'; +import { + CreateTextFileViewModelBaseModel, + ScriptItemResponseModel, + ScriptResponseModel, + UpdateScriptRequestModel, +} from '@umbraco-cms/backoffice/backend-api'; + +class UmbScriptsData extends UmbData { + tree = new UmbMockFileSystemTreeManager(this); + folder = new UmbMockFileSystemFolderManager(this); + + constructor(data) { + super(data); + } + + getItem(paths: Array): Array { + const items = this.data.filter((item) => paths.includes(item.path ?? '')); + return items.map((item) => createFileItemResponseModelBaseModel(item)); + } + + create(item: CreateTextFileViewModelBaseModel) { + const newItem: UmbMockScriptModel = { + name: item.name, + content: item.content, + //parentPath: item.parentPath, + path: `${item.parentPath}` ? `${item.parentPath}/${item.name}}` : item.name, + isFolder: false, + hasChildren: false, + type: 'script', + }; + + this.data.push(newItem); + } + + read(path: string): ScriptResponseModel | undefined { + const item = this.data.find((item) => item.path === path); + return createTextFileItem(item); + } + + update(updateItem: UpdateScriptRequestModel) { + const itemIndex = this.data.findIndex((item) => item.path === updateItem.existingPath); + const item = this.data[itemIndex]; + if (!item) throw new Error('Item not found'); + + const updatedItem = { + path: item, + }; + + this.data[itemIndex] = newItem; + } + + delete(paths: Array) { + this.data = this.data.filter((item) => { + if (!item.path) throw new Error('Item has no path'); + return paths.indexOf(item.path) === -1; + }); + } +} + +export const umbScriptsData = new UmbScriptsData(scriptData); From 4a43cead916c96d49745dd4192e5d04e671f41cb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 19:48:35 +0100 Subject: [PATCH 100/786] remove s in filename --- .../src/mocks/browser-handlers.ts | 2 +- .../{scripts.handlers.ts => script.handlers.ts} | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/handlers/{scripts.handlers.ts => script.handlers.ts} (89%) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index cac7ae809b..086f2db8cb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -32,7 +32,7 @@ import { handlers as stylesheetHandlers } from './handlers/stylesheet.handlers.j import { handlers as partialViewsHandlers } from './handlers/partial-views.handlers.js'; import { handlers as tagHandlers } from './handlers/tag-handlers.js'; import { handlers as configHandlers } from './handlers/config.handlers.js'; -import { handlers as scriptHandlers } from './handlers/scripts.handlers.js'; +import { handlers as scriptHandlers } from './handlers/script.handlers.js'; const handlers = [ serverHandlers.serverVersionHandler, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/scripts.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/mocks/handlers/scripts.handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts index 1ccd89e2ea..f133bf39bc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/scripts.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; import { RestHandler, MockedRequest, DefaultBodyType } from 'msw'; -import { umbScriptsData } from '../data/scripts.data.js'; +import { umbScriptsData } from '../data/script/script.db.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import { CreateScriptRequestModel, UpdateScriptRequestModel } from '@umbraco-cms/backoffice/backend-api'; @@ -45,20 +45,21 @@ const detailHandlers: RestHandler>[] = [ rest.post(umbracoPath('/script'), async (req, res, ctx) => { const requestBody = (await req.json()) as CreateScriptRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); - const response = umbScriptsData.insertScript(requestBody); - return res(ctx.status(200), ctx.json(response)); + umbScriptsData.insert(requestBody); + return res(ctx.status(200)); }), rest.delete(umbracoPath('/script'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); if (!path) return res(ctx.status(400)); - const response = umbScriptsData.delete([path]); - return res(ctx.status(200), ctx.json(response)); + umbScriptsData.delete([path]); + return res(ctx.status(200)); }), rest.put(umbracoPath('/script'), async (req, res, ctx) => { const requestBody = (await req.json()) as UpdateScriptRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); + umbScriptsData.updateData(requestBody); return res(ctx.status(200)); }), ]; @@ -80,8 +81,8 @@ const folderHandlers: RestHandler>[] = [ rest.delete(umbracoPath('script/folder'), (req, res, ctx) => { const path = decodeURIComponent(req.url.searchParams.get('path') ?? '').replace('-js', '.js'); if (!path) return res(ctx.status(400)); - const response = umbScriptsData.deleteFolder(path); - return res(ctx.status(200), ctx.json(response)); + umbScriptsData.deleteFolder(path); + return res(ctx.status(200)); }), ]; From ab9139059a8c2dc5b09fdd9af77be1afe0860a53 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 20:12:01 +0100 Subject: [PATCH 101/786] add item manager + align naming --- ...nager.ts => file-system-folder.manager.ts} | 0 .../file-system/file-system-item.manager.ts | 16 ++++ ...manager.ts => file-system-tree.manager.ts} | 6 +- .../src/mocks/data/script/script.data.ts | 17 ++++- .../src/mocks/data/script/script.db.ts | 20 ++--- .../src/mocks/handlers/script.handlers.ts | 74 ++++++++++--------- 6 files changed, 83 insertions(+), 50 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/data/file-system/{file-system-folder-manager.ts => file-system-folder.manager.ts} (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts rename src/Umbraco.Web.UI.Client/src/mocks/data/file-system/{file-system-tree-manager.ts => file-system-tree.manager.ts} (80%) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder-manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder-manager.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts new file mode 100644 index 0000000000..fe1ece640b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts @@ -0,0 +1,16 @@ +import { UmbData } from '../data.js'; +import { createFileItemResponseModelBaseModel } from '../utils.js'; +import { FileItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbMockFileSystemItemManager { + #db: UmbData; + + constructor(db: UmbData) { + this.#db = db; + } + + getItems(paths: Array) { + const items = this.#db.getData().filter((item) => paths.includes(item.path)); + return items.map((item) => createFileItemResponseModelBaseModel(item)); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree-manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts similarity index 80% rename from src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree-manager.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts index a3e1b4395f..aa93cfb815 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts @@ -12,21 +12,21 @@ export class UmbMockFileSystemTreeManager item.path?.includes('/') === false); const treeItems = items.map((item) => createFileSystemTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getTreeItemChildren(parentPath: string): PagedFileSystemTreeItemPresentationModel { + getChildrenOf(parentPath: string): PagedFileSystemTreeItemPresentationModel { const items = this.#db.getData().filter((item) => item.path?.startsWith(parentPath)); const treeItems = items.map((item) => createFileSystemTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getTreeItem(path: string): FileSystemTreeItemPresentationModel | undefined { + getItem(path: string): FileSystemTreeItemPresentationModel | undefined { return this.#db.getData().find((item) => item.path === path); } } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts index e9e43d58c9..a97f37343c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts @@ -1,6 +1,10 @@ -import { FileSystemTreeItemPresentationModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { + FileSystemTreeItemPresentationModel, + ScriptItemResponseModel, + ScriptResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; -export type UmbMockScriptModel = ScriptResponseModel & FileSystemTreeItemPresentationModel; +export type UmbMockScriptModel = ScriptResponseModel & FileSystemTreeItemPresentationModel & ScriptItemResponseModel; export const data: Array = [ { @@ -9,6 +13,7 @@ export const data: Array = [ name: 'some-folder', type: 'script', hasChildren: true, + icon: 'icon-script', content: '', }, { @@ -17,6 +22,7 @@ export const data: Array = [ name: 'another-folder', type: 'script', hasChildren: true, + icon: 'icon-script', content: '', }, { @@ -25,6 +31,7 @@ export const data: Array = [ name: 'very important folder', type: 'script', hasChildren: true, + icon: 'icon-script', content: '', }, { @@ -33,6 +40,7 @@ export const data: Array = [ name: 'ugly script.js', type: 'script', hasChildren: false, + icon: 'icon-script', content: `function makeid(length) { var result = ''; var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; @@ -51,6 +59,7 @@ export const data: Array = [ name: 'nice script.js', type: 'script', hasChildren: false, + icon: 'icon-script', content: `var items = { "item_1": "1", "item_2": "2", @@ -66,6 +75,7 @@ export const data: Array = [ name: 'only bugs.js', type: 'script', hasChildren: false, + icon: 'icon-script', content: `var my_arr = [4, '', 0, 10, 7, '', false, 10]; my_arr = my_arr.filter(Boolean); @@ -78,6 +88,7 @@ export const data: Array = [ name: 'no bugs at all.js', type: 'script', hasChildren: false, + icon: 'icon-script', content: `const date_str = "07/20/2021"; const date = new Date(date_str); const full_day_name = date.toLocaleDateString('default', { weekday: 'long' }); @@ -93,6 +104,7 @@ export const data: Array = [ name: 'nope.js', type: 'script', hasChildren: false, + icon: 'icon-script', content: `// Define an object const employee = { "name": "John Deo", @@ -111,6 +123,7 @@ export const data: Array = [ name: 'file-with-dash.js', type: 'script', hasChildren: false, + icon: 'icon-script', content: `alert('hello file with dash');`, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts index c325183d50..c5d1424c84 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts @@ -1,28 +1,24 @@ import { UmbData } from '../data.js'; -import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folder-manager.js'; -import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree-manager.js'; -import { createFileItemResponseModelBaseModel, createTextFileItem } from '../utils.js'; +import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folder.manager.js'; +import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; +import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; +import { createTextFileItem } from '../utils.js'; import { UmbMockScriptModel, data as scriptData } from './script.data.js'; import { CreateTextFileViewModelBaseModel, - ScriptItemResponseModel, ScriptResponseModel, UpdateScriptRequestModel, } from '@umbraco-cms/backoffice/backend-api'; -class UmbScriptsData extends UmbData { +class UmbScriptMockDB extends UmbData { tree = new UmbMockFileSystemTreeManager(this); folder = new UmbMockFileSystemFolderManager(this); + item = new UmbMockFileSystemItemManager(this); - constructor(data) { + constructor(data: Array) { super(data); } - getItem(paths: Array): Array { - const items = this.data.filter((item) => paths.includes(item.path ?? '')); - return items.map((item) => createFileItemResponseModelBaseModel(item)); - } - create(item: CreateTextFileViewModelBaseModel) { const newItem: UmbMockScriptModel = { name: item.name, @@ -62,4 +58,4 @@ class UmbScriptsData extends UmbData { } } -export const umbScriptsData = new UmbScriptsData(scriptData); +export const umbScriptMockDb = new UmbScriptMockDB(scriptData); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts index f133bf39bc..3829797c88 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts @@ -1,89 +1,97 @@ const { rest } = window.MockServiceWorker; import { RestHandler, MockedRequest, DefaultBodyType } from 'msw'; -import { umbScriptsData } from '../data/script/script.db.js'; +import { umbScriptMockDb } from '../data/script/script.db.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { CreateScriptRequestModel, UpdateScriptRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { + CreatePathFolderRequestModel, + CreateScriptRequestModel, + UpdateScriptRequestModel, +} from '@umbraco-cms/backoffice/backend-api'; const treeHandlers = [ rest.get(umbracoPath('/tree/script/root'), (req, res, ctx) => { - const response = umbScriptsData.getTreeRoot(); + const response = umbScriptMockDb.tree.getRoot(); + debugger; return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath('/tree/script/children'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - if (!path) return; - - const response = umbScriptsData.getTreeItemChildren(path); + debugger; + if (!path) return res(ctx.status(400)); + const response = umbScriptMockDb.tree.getChildrenOf(path); return res(ctx.status(200), ctx.json(response)); }), - - rest.get(umbracoPath('/tree/script/item'), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); - if (!paths) return; - - const items = umbScriptsData.getTreeItem(paths); - return res(ctx.status(200), ctx.json(items)); - }), ]; const detailHandlers: RestHandler>[] = [ rest.get(umbracoPath('/script'), (req, res, ctx) => { - const path = decodeURIComponent(req.url.searchParams.get('path') ?? '').replace('-js', '.js'); + const path = req.url.searchParams.get('path'); + debugger; if (!path) return res(ctx.status(400)); - const response = umbScriptsData.getScript(path); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get(umbracoPath('/script/item'), (req, res, ctx) => { - const path = decodeURIComponent(req.url.searchParams.get('path') ?? '').replace('-js', '.js'); - if (!path) return res(ctx.status(400, 'no body found')); - const response = umbScriptsData.getItem([path]); + const response = umbScriptMockDb.read(path); return res(ctx.status(200), ctx.json(response)); }), rest.post(umbracoPath('/script'), async (req, res, ctx) => { const requestBody = (await req.json()) as CreateScriptRequestModel; + debugger; if (!requestBody) return res(ctx.status(400, 'no body found')); - umbScriptsData.insert(requestBody); + umbScriptMockDb.create(requestBody); return res(ctx.status(200)); }), rest.delete(umbracoPath('/script'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); + debugger; if (!path) return res(ctx.status(400)); - umbScriptsData.delete([path]); + umbScriptMockDb.delete([path]); return res(ctx.status(200)); }), rest.put(umbracoPath('/script'), async (req, res, ctx) => { const requestBody = (await req.json()) as UpdateScriptRequestModel; + debugger; if (!requestBody) return res(ctx.status(400, 'no body found')); - umbScriptsData.updateData(requestBody); + umbScriptMockDb.update(requestBody); return res(ctx.status(200)); }), ]; +const itemHandlers: RestHandler>[] = [ + rest.get(umbracoPath('/script/item'), (req, res, ctx) => { + const paths = req.url.searchParams.getAll('paths'); + debugger; + if (!paths) return res(ctx.status(400, 'no body found')); + const response = umbScriptMockDb.getItems(paths); + return res(ctx.status(200), ctx.json(response)); + }), +]; + const folderHandlers: RestHandler>[] = [ rest.get(umbracoPath('script/folder'), (req, res, ctx) => { - const path = decodeURIComponent(req.url.searchParams.get('path') ?? '').replace('-js', '.js'); + const path = req.url.searchParams.get('path'); + debugger; if (!path) return res(ctx.status(400)); - const response = umbScriptsData.getFolder(path); + const response = umbScriptMockDb.folder.read(path); return res(ctx.status(200), ctx.json(response)); }), - rest.post(umbracoPath('script/folder'), (req, res, ctx) => { - const requestBody = req.json(); + rest.post(umbracoPath('script/folder'), async (req, res, ctx) => { + const requestBody = (await req.json()) as CreatePathFolderRequestModel; + debugger; if (!requestBody) return res(ctx.status(400, 'no body found')); + umbScriptMockDb.folder.create(requestBody); return res(ctx.status(200)); }), rest.delete(umbracoPath('script/folder'), (req, res, ctx) => { - const path = decodeURIComponent(req.url.searchParams.get('path') ?? '').replace('-js', '.js'); + const path = req.url.searchParams.get('path'); + debugger; if (!path) return res(ctx.status(400)); - umbScriptsData.deleteFolder(path); + umbScriptMockDb.folder.delete(path); return res(ctx.status(200)); }), ]; -export const handlers = [...treeHandlers, ...detailHandlers, ...folderHandlers]; +export const handlers = [...treeHandlers, ...detailHandlers, ...itemHandlers, ...folderHandlers]; From a40e01f2714fe645fdd41db1b1ddbf1856b8c2a4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 20:18:48 +0100 Subject: [PATCH 102/786] fix file system tree mock manager --- .../src/mocks/data/file-system/file-system-tree.manager.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts index aa93cfb815..5ec6f06a89 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts @@ -13,14 +13,14 @@ export class UmbMockFileSystemTreeManager item.path?.includes('/') === false); + const items = this.#db.getData().filter((item) => item.path.includes('/') === false); const treeItems = items.map((item) => createFileSystemTreeItem(item)); const total = items.length; return { items: treeItems, total }; } getChildrenOf(parentPath: string): PagedFileSystemTreeItemPresentationModel { - const items = this.#db.getData().filter((item) => item.path?.startsWith(parentPath)); + const items = this.#db.getData().filter((item) => item.path.includes('/') && item.path.startsWith(parentPath)); const treeItems = items.map((item) => createFileSystemTreeItem(item)); const total = items.length; return { items: treeItems, total }; From 301f8f6a0902b806a9b57b559ef6d04130a80845 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 21:22:50 +0100 Subject: [PATCH 103/786] add parentPath to mock item --- .../src/mocks/data/file-system/file-system-folder.manager.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts index ac5bbded13..7f84e93485 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts @@ -10,7 +10,8 @@ export class UmbMockFileSystemFolderManager create(request: CreatePathFolderRequestModel) { const newFolder = { - path: `${request.parentPath ?? ''}/${request.name}`, + path: request.parentPath ? `${request.parentPath ?? ''}/${request.name}` : request.name, + parenPath: request.parentPath, name: request.name, hasChildren: false, isFolder: true, From e3294c42c28c9c465c0cefb75a61a53fa57578ee Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 21:23:16 +0100 Subject: [PATCH 104/786] add parentPath to new item --- src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts index c5d1424c84..fc7e287330 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts @@ -23,7 +23,7 @@ class UmbScriptMockDB extends UmbData { const newItem: UmbMockScriptModel = { name: item.name, content: item.content, - //parentPath: item.parentPath, + parentPath: item.parentPath, path: `${item.parentPath}` ? `${item.parentPath}/${item.name}}` : item.name, isFolder: false, hasChildren: false, From df4faa0bc66b956b273ce8174e181b1646755cba Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 21:23:48 +0100 Subject: [PATCH 105/786] only add dash if there is a parent path --- .../scripts/tree/folder/script-folder.server.data-source.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts index c5819f140e..83759f1752 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts @@ -81,7 +81,7 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { if (!error) { /* TODO: investigate why we don't get the location header as part of data, so we don't have to construct the path ourselves */ - const newPath = `${parentPath}/${args.name}`; + const newPath = parentPath ? `${parentPath}/${args.name}` : args.name; return this.read(newPath); } From 16c3b801a6c38f3c9152c3ddf63ded26ae77b7df Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 21:24:22 +0100 Subject: [PATCH 106/786] return null if there is no path --- .../packages/templating/utils/server-path-unique-serializer.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts index c3de1b60fc..0c0d7278f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts @@ -9,7 +9,8 @@ export class UmbServerPathUniqueSerializer { * @return {*} {(string | null)} * @memberof UmbServerPathSerializer */ - toUnique(serverPath: string): string { + toUnique(serverPath: string): string | null { + if (!serverPath) return null; const urlSafeServerPath = serverPath.replace('.', this.#magicDot); return encodeURIComponent(urlSafeServerPath); } From 5a748d3ace1dd93e8523a23773d79001417cf4cb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 16 Dec 2023 21:32:13 +0100 Subject: [PATCH 107/786] return empty string instead of null --- .../templating/utils/server-path-unique-serializer.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts index 0c0d7278f9..5fdf17b767 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts @@ -9,9 +9,8 @@ export class UmbServerPathUniqueSerializer { * @return {*} {(string | null)} * @memberof UmbServerPathSerializer */ - toUnique(serverPath: string): string | null { - if (!serverPath) return null; - const urlSafeServerPath = serverPath.replace('.', this.#magicDot); + toUnique(serverPath: string): string { + const urlSafeServerPath = serverPath?.replace('.', this.#magicDot); return encodeURIComponent(urlSafeServerPath); } From a97583c9fd432f60abb86a9d8c6224c0d80592f8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 18:52:39 +0100 Subject: [PATCH 108/786] move to method --- .../templating/scripts/tree/script-tree.store.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index b90e59622f..6e32d35376 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -36,6 +36,12 @@ export class UmbScriptTreeStore extends UmbUniqueTreeStore { this.#actionEventContext?.addEventListener('delete-success', this.#onDeleted); } + #stopListening() { + this.#actionEventContext?.removeEventListener('create-success', this.#onCreated); + this.#actionEventContext?.removeEventListener('save-success', this.#onSaved); + this.#actionEventContext?.removeEventListener('delete-success', this.#onDeleted); + } + #onCreated = (event: UmbActionEvent) => { // the item doesn't exist yet, so we reload the parent const eventParentUnique = event.getParentUnique(); @@ -56,9 +62,7 @@ export class UmbScriptTreeStore extends UmbUniqueTreeStore { }; onDestroy() { - this.#actionEventContext?.removeEventListener('create-success', this.#onCreated); - this.#actionEventContext?.removeEventListener('save-success', this.#onSaved); - this.#actionEventContext?.removeEventListener('delete-success', this.#onDeleted); + this.#stopListening(); } } From f0feb93f83aebb7ac620feb585c643597b186281 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 18:52:59 +0100 Subject: [PATCH 109/786] temp solution to produce the unique --- .../scripts/repository/script-detail.server.data-source.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 614b2e206a..10c49c0dab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -58,7 +58,9 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource Date: Sun, 17 Dec 2023 18:53:19 +0100 Subject: [PATCH 110/786] include "real" data in success event --- .../core/repository/detail/detail-repository-base.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 22ed36438e..c8825ea145 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -84,8 +84,8 @@ export abstract class UmbDetailRepositoryBase< if (!data) throw new Error('Data is missing'); await this.#init; - const eventData = { unique: data.unique, parentUnique: data.parentUnique }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-request', eventData)); + const requestEventData = { unique: data.unique, parentUnique: data.parentUnique }; + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-request', requestEventData)); const { data: createdData, error } = await this.#detailSource.create(data); @@ -96,11 +96,12 @@ export abstract class UmbDetailRepositoryBase< const notification = { data: { message: `Created` } }; this.#notificationContext!.peek('positive', notification); - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-success', eventData)); + const successEventData = { unique: createdData.unique, parentUnique: createdData.parentUnique }; + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-success', successEventData)); } if (error) { - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-error', eventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-error', requestEventData)); } return { data: createdData, error }; From 7cddd86e6efb445aefb110c6f3466518eaaebbfb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 18:53:31 +0100 Subject: [PATCH 111/786] return the parentPath --- .../src/packages/core/action/action.event.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts index 3adacaa763..0d9610e9c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts @@ -21,7 +21,7 @@ export class UmbActionEvent extends UmbControllerEvent { return this.#args.unique; } - getParentUnique(): string { - return this.#args.unique; + getParentUnique(): string | null { + return this.#args.parentUnique; } } From 34488ed3e4a1bef3fd426c39f77eabbf5d24830a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 18:53:40 +0100 Subject: [PATCH 112/786] rename util --- src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 210fa01636..1d1047c2bc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -85,7 +85,7 @@ export const createFileSystemTreeItem = (item: any): FileSystemTreeItemPresentat }; }; -export const createTextFileItem = (item: any): TextFileResponseModelBaseModel => ({ +export const textFileItemMapper = (item: any): TextFileResponseModelBaseModel => ({ path: item.path, name: item.name, content: item.content, From 21db8b070b937e9f8c640250b56fef038f85b74e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 18:53:51 +0100 Subject: [PATCH 113/786] update import of renamed util --- src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts index 5916118028..4a72b7113b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts @@ -1,5 +1,5 @@ import { UmbData } from './data.js'; -import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, createTextFileItem } from './utils.js'; +import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, textFileItemMapper } from './utils.js'; import { CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, @@ -146,12 +146,12 @@ class UmbStylesheetData extends UmbData { } getStylesheet(path: string): StylesheetResponseModel | undefined { - return createTextFileItem(this.data.find((item) => item.path === path)); + return textFileItemMapper(this.data.find((item) => item.path === path)); } getAllStylesheets(): PagedStylesheetOverviewResponseModel { return { - items: this.data.map((item) => createTextFileItem(item)), + items: this.data.map((item) => textFileItemMapper(item)), total: this.data.map((item) => !item.isFolder).length, }; } From b676649e7b2f47c43adde7269a83d480d75111ab Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 18:54:30 +0100 Subject: [PATCH 114/786] add base and detail manager --- .../data/file-system/file-system-base.ts | 24 ++++++++ .../file-system/file-system-detail.manager.ts | 36 ++++++++++++ .../file-system/file-system-folder.manager.ts | 30 +++++++--- .../src/mocks/data/partial-views.data.ts | 4 +- .../src/mocks/data/script/script.db.ts | 58 +++++++------------ .../src/mocks/handlers/script.handlers.ts | 22 +++---- 6 files changed, 113 insertions(+), 61 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts new file mode 100644 index 0000000000..26dd0f0320 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts @@ -0,0 +1,24 @@ +import { UmbData } from '../data.js'; + +export abstract class UmbFileSystemMockDbBase extends UmbData { + constructor(data: Array) { + super(data); + } + + create(item: T) { + this.data.push(item); + } + + read(path: string) { + return this.data.find((item) => item.path === path); + } + + update(updateItem: T) { + const itemIndex = this.data.findIndex((item) => item.path === updateItem.path); + this.data[itemIndex] = updateItem; + } + + delete(path: string) { + this.data = this.data.filter((item) => item.path !== path); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts new file mode 100644 index 0000000000..7fd1045449 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts @@ -0,0 +1,36 @@ +import { UmbFileSystemMockDbBase } from './file-system-base.js'; +import { CreateTextFileViewModelBaseModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbMockFileSystemDetailManagerArgs { + createMapper: (item: CreateTextFileViewModelBaseModel) => MockItemType; + readMapper: (item: MockItemType) => ScriptResponseModel; +} + +export class UmbMockFileSystemDetailManager { + #db: UmbFileSystemMockDbBase; + #args: UmbMockFileSystemDetailManagerArgs; + + constructor(db: UmbFileSystemMockDbBase, args: UmbMockFileSystemDetailManagerArgs) { + this.#db = db; + this.#args = args; + } + + create(item: CreateTextFileViewModelBaseModel) { + const mockItem = this.#args.createMapper(item); + // create mock item in mock db + this.#db.create(mockItem); + } + + read(path: string): ScriptResponseModel | undefined { + const item = this.#db.read(path); + // map mock item to response model + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const mappedItem = this.#args.readMapper(item); + return mappedItem; + } + + delete(path: string) { + this.#db.delete(path); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts index 7f84e93485..138d280995 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts @@ -1,30 +1,46 @@ -import { UmbData } from '../data.js'; +import { UmbFileSystemMockDbBase } from './file-system-base.js'; import { CreatePathFolderRequestModel, PathFolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMockFileSystemFolderManager { - #db: UmbData; + #db: UmbFileSystemMockDbBase; - constructor(db: UmbData) { + constructor(db: UmbFileSystemMockDbBase) { this.#db = db; } create(request: CreatePathFolderRequestModel) { const newFolder = { - path: request.parentPath ? `${request.parentPath ?? ''}/${request.name}` : request.name, + path: request.parentPath ? `${request.parentPath}/${request.name}` : request.name, parenPath: request.parentPath, name: request.name, hasChildren: false, isFolder: true, }; - this.#db.getData().push(newFolder); + this.#db.create(newFolder); } read(path: string) { - return this.#db.getData().find((item) => item.path === path); + const dbItem = this.#db.read(path); + const isFolder = dbItem?.isFolder ?? false; + if (!isFolder) return undefined; + return fileSystemFolderMapper(dbItem); } delete(path: string) { - alert('delete folder'); + const dbItem = this.#db.read(path); + const isFolder = dbItem?.isFolder ?? false; + if (isFolder) { + this.#db.delete(path); + } } } + +const fileSystemFolderMapper = (item: T): PathFolderModelBaseModel => { + return { + name: item.name, + path: item.path, + hasChildren: item.hasChildren ?? false, + isFolder: item.isFolder ?? false, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-views.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-views.data.ts index b747f6df14..d70e77ff05 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-views.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-views.data.ts @@ -1,5 +1,5 @@ import { UmbEntityData } from './entity.data.js'; -import { createFileSystemTreeItem, createTextFileItem } from './utils.js'; +import { createFileSystemTreeItem, textFileItemMapper } from './utils.js'; import { CreateTextFileViewModelBaseModel, FileSystemTreeItemPresentationModel, @@ -359,7 +359,7 @@ class UmbPartialViewsData extends UmbEntityData { } getPartialView(path: string): PartialViewResponseModel | undefined { - return createTextFileItem(this.data.find((item) => item.path === path)); + return textFileItemMapper(this.data.find((item) => item.path === path)); } insertPartialView(item: CreateTextFileViewModelBaseModel) { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts index fc7e287330..4b0322eb37 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts @@ -1,61 +1,45 @@ -import { UmbData } from '../data.js'; +import { UmbFileSystemMockDbBase } from '../file-system/file-system-base.js'; import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folder.manager.js'; import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; -import { createTextFileItem } from '../utils.js'; +import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; import { UmbMockScriptModel, data as scriptData } from './script.data.js'; -import { - CreateTextFileViewModelBaseModel, - ScriptResponseModel, - UpdateScriptRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { CreateTextFileViewModelBaseModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; -class UmbScriptMockDB extends UmbData { +class UmbScriptMockDB extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); folder = new UmbMockFileSystemFolderManager(this); item = new UmbMockFileSystemItemManager(this); + file; constructor(data: Array) { super(data); + + this.file = new UmbMockFileSystemDetailManager(this, { + createMapper: this.#createScriptMockItem, + readMapper: this.#readScriptResponseMapper, + }); } - create(item: CreateTextFileViewModelBaseModel) { - const newItem: UmbMockScriptModel = { + #createScriptMockItem = (item: CreateTextFileViewModelBaseModel): UmbMockScriptModel => { + return { name: item.name, content: item.content, - parentPath: item.parentPath, - path: `${item.parentPath}` ? `${item.parentPath}/${item.name}}` : item.name, + path: `${item.parentPath}` ? `${item.parentPath}/${item.name}` : item.name, isFolder: false, hasChildren: false, type: 'script', + icon: '', }; + }; - this.data.push(newItem); - } - - read(path: string): ScriptResponseModel | undefined { - const item = this.data.find((item) => item.path === path); - return createTextFileItem(item); - } - - update(updateItem: UpdateScriptRequestModel) { - const itemIndex = this.data.findIndex((item) => item.path === updateItem.existingPath); - const item = this.data[itemIndex]; - if (!item) throw new Error('Item not found'); - - const updatedItem = { - path: item, + #readScriptResponseMapper = (item: UmbMockScriptModel): ScriptResponseModel => { + return { + path: item.path, + name: item.name, + content: item.content, }; - - this.data[itemIndex] = newItem; - } - - delete(paths: Array) { - this.data = this.data.filter((item) => { - if (!item.path) throw new Error('Item has no path'); - return paths.indexOf(item.path) === -1; - }); - } + }; } export const umbScriptMockDb = new UmbScriptMockDB(scriptData); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts index 3829797c88..eee63d3391 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts @@ -11,13 +11,11 @@ import { const treeHandlers = [ rest.get(umbracoPath('/tree/script/root'), (req, res, ctx) => { const response = umbScriptMockDb.tree.getRoot(); - debugger; return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath('/tree/script/children'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - debugger; if (!path) return res(ctx.status(400)); const response = umbScriptMockDb.tree.getChildrenOf(path); return res(ctx.status(200), ctx.json(response)); @@ -27,25 +25,22 @@ const treeHandlers = [ const detailHandlers: RestHandler>[] = [ rest.get(umbracoPath('/script'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - debugger; if (!path) return res(ctx.status(400)); - const response = umbScriptMockDb.read(path); + const response = umbScriptMockDb.file.read(path); return res(ctx.status(200), ctx.json(response)); }), rest.post(umbracoPath('/script'), async (req, res, ctx) => { const requestBody = (await req.json()) as CreateScriptRequestModel; - debugger; if (!requestBody) return res(ctx.status(400, 'no body found')); - umbScriptMockDb.create(requestBody); + umbScriptMockDb.file.create(requestBody); return res(ctx.status(200)); }), rest.delete(umbracoPath('/script'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - debugger; if (!path) return res(ctx.status(400)); - umbScriptMockDb.delete([path]); + umbScriptMockDb.file.delete(path); return res(ctx.status(200)); }), @@ -53,7 +48,7 @@ const detailHandlers: RestHandler>[] = [ const requestBody = (await req.json()) as UpdateScriptRequestModel; debugger; if (!requestBody) return res(ctx.status(400, 'no body found')); - umbScriptMockDb.update(requestBody); + umbScriptMockDb.file.update(requestBody); return res(ctx.status(200)); }), ]; @@ -69,25 +64,22 @@ const itemHandlers: RestHandler>[] = [ ]; const folderHandlers: RestHandler>[] = [ - rest.get(umbracoPath('script/folder'), (req, res, ctx) => { + rest.get(umbracoPath('/script/folder'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - debugger; if (!path) return res(ctx.status(400)); const response = umbScriptMockDb.folder.read(path); return res(ctx.status(200), ctx.json(response)); }), - rest.post(umbracoPath('script/folder'), async (req, res, ctx) => { + rest.post(umbracoPath('/script/folder'), async (req, res, ctx) => { const requestBody = (await req.json()) as CreatePathFolderRequestModel; - debugger; if (!requestBody) return res(ctx.status(400, 'no body found')); umbScriptMockDb.folder.create(requestBody); return res(ctx.status(200)); }), - rest.delete(umbracoPath('script/folder'), (req, res, ctx) => { + rest.delete(umbracoPath('/script/folder'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - debugger; if (!path) return res(ctx.status(400)); umbScriptMockDb.folder.delete(path); return res(ctx.status(200)); From fb31168feb46ece613cb84fda1c3481fc4e217b9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:01:51 +0100 Subject: [PATCH 115/786] add update method --- .../data/file-system/file-system-base.ts | 6 ++--- .../file-system/file-system-detail.manager.ts | 23 ++++++++++++++++++- .../src/mocks/data/file-system/util/index.ts | 1 + ...ent-path-from-server-path.function.test.ts | 15 ++++++++++++ .../parent-path-from-server-path.function.ts | 4 ++++ .../src/mocks/data/script/script.db.ts | 4 ++-- 6 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.test.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts index 26dd0f0320..72c4cd0ca6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts @@ -13,9 +13,9 @@ export abstract class UmbFileSystemMockDbBase extend return this.data.find((item) => item.path === path); } - update(updateItem: T) { - const itemIndex = this.data.findIndex((item) => item.path === updateItem.path); - this.data[itemIndex] = updateItem; + update(existingPath: string, updatedItem: T) { + const itemIndex = this.data.findIndex((item) => item.path === existingPath); + this.data[itemIndex] = updatedItem; } delete(path: string) { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts index 7fd1045449..c47022639a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts @@ -1,5 +1,10 @@ import { UmbFileSystemMockDbBase } from './file-system-base.js'; -import { CreateTextFileViewModelBaseModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { getParentPathFromServerPath } from './util/index.js'; +import { + CreateTextFileViewModelBaseModel, + ScriptResponseModel, + UpdateTextFileViewModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; export interface UmbMockFileSystemDetailManagerArgs { createMapper: (item: CreateTextFileViewModelBaseModel) => MockItemType; @@ -30,6 +35,22 @@ export class UmbMockFileSystemDetailManager { + it('it returns the parent path of a nested server path', () => { + const path = 'Folder A/Folder AA/Folder AAA'; + const expectedParentPath = 'Folder A/Folder AA'; + expect(getParentPathFromServerPath(path)).to.equal(expectedParentPath); + }); + + it('it returns null of a root server path', () => { + const path = 'Folder A'; + expect(getParentPathFromServerPath(path)).to.be.null; + }); +}); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.ts new file mode 100644 index 0000000000..3930a27324 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/util/parent-path-from-server-path.function.ts @@ -0,0 +1,4 @@ +export const getParentPathFromServerPath = (serverPath: string): string | null => { + const parentPath = serverPath.substring(0, serverPath.lastIndexOf('/')); + return parentPath || null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts index 4b0322eb37..6e74cccf3a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts @@ -4,7 +4,7 @@ import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.ma import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; import { UmbMockScriptModel, data as scriptData } from './script.data.js'; -import { CreateTextFileViewModelBaseModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { CreateScriptRequestModel, ScriptResponseModel } from '@umbraco-cms/backoffice/backend-api'; class UmbScriptMockDB extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); @@ -21,7 +21,7 @@ class UmbScriptMockDB extends UmbFileSystemMockDbBase { }); } - #createScriptMockItem = (item: CreateTextFileViewModelBaseModel): UmbMockScriptModel => { + #createScriptMockItem = (item: CreateScriptRequestModel): UmbMockScriptModel => { return { name: item.name, content: item.content, From 1c2b7a3935663b55fea6efb9f5d08a946c285e76 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:09:09 +0100 Subject: [PATCH 116/786] remove file system item on update --- .../src/packages/templating/scripts/tree/script-tree.store.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index 6e32d35376..455770d5f4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -52,7 +52,11 @@ export class UmbScriptTreeStore extends UmbUniqueTreeStore { // only reload the parent if the item is already in the store const eventUnique = event.getUnique(); const storeItem = this.getItems([eventUnique])?.[0]; + + /* we need to remove the store because the unique (path) can have changed. + and it will therefore not update the correct item but append a new. */ if (storeItem) { + this.removeItem(eventUnique); this.#treeRepository.requestTreeItemsOf(storeItem.parentUnique); } }; From 9c9b9edbed21d18bfea7ff86642266207512c076 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:12:38 +0100 Subject: [PATCH 117/786] prefix with detail --- .../detail/detail-repository-base.ts | 18 +++++++++--------- .../scripts/tree/script-tree.store.ts | 13 +++++++------ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index c8825ea145..94c82ef7d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -85,7 +85,7 @@ export abstract class UmbDetailRepositoryBase< await this.#init; const requestEventData = { unique: data.unique, parentUnique: data.parentUnique }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-request', requestEventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-request', requestEventData)); const { data: createdData, error } = await this.#detailSource.create(data); @@ -97,11 +97,11 @@ export abstract class UmbDetailRepositoryBase< this.#notificationContext!.peek('positive', notification); const successEventData = { unique: createdData.unique, parentUnique: createdData.parentUnique }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-success', successEventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-success', successEventData)); } if (error) { - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('create-error', requestEventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-error', requestEventData)); } return { data: createdData, error }; @@ -119,7 +119,7 @@ export abstract class UmbDetailRepositoryBase< await this.#init; const eventData = { unique: data.unique, parentUnique: data.parentUnique }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('save-request', eventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-save-request', eventData)); const { data: updatedData, error } = await this.#detailSource.update(data); @@ -130,11 +130,11 @@ export abstract class UmbDetailRepositoryBase< const notification = { data: { message: `Saved` } }; this.#notificationContext!.peek('positive', notification); - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('save-success', eventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-save-success', eventData)); } if (error) { - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('save-error', eventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-save-error', eventData)); } return { data, error }; @@ -151,7 +151,7 @@ export abstract class UmbDetailRepositoryBase< await this.#init; const eventData = { unique, parentUnique: null }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('delete-request', eventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-delete-request', eventData)); const { error } = await this.#detailSource.delete(unique); @@ -162,11 +162,11 @@ export abstract class UmbDetailRepositoryBase< const notification = { data: { message: `Deleted` } }; this.#notificationContext!.peek('positive', notification); - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('delete-success', eventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-delete-success', eventData)); } if (error) { - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('delete-error', eventData)); + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-delete-error', eventData)); } return { error }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index 455770d5f4..c539cc1511 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -31,15 +31,16 @@ export class UmbScriptTreeStore extends UmbUniqueTreeStore { } #listen() { - this.#actionEventContext?.addEventListener('create-success', this.#onCreated); - this.#actionEventContext?.addEventListener('save-success', this.#onSaved); - this.#actionEventContext?.addEventListener('delete-success', this.#onDeleted); + // TODO: add event class to remove the magic strings + this.#actionEventContext?.addEventListener('detail-create-success', this.#onCreated); + this.#actionEventContext?.addEventListener('detail-save-success', this.#onSaved); + this.#actionEventContext?.addEventListener('detail-delete-success', this.#onDeleted); } #stopListening() { - this.#actionEventContext?.removeEventListener('create-success', this.#onCreated); - this.#actionEventContext?.removeEventListener('save-success', this.#onSaved); - this.#actionEventContext?.removeEventListener('delete-success', this.#onDeleted); + this.#actionEventContext?.removeEventListener('detail-create-success', this.#onCreated); + this.#actionEventContext?.removeEventListener('detail-save-success', this.#onSaved); + this.#actionEventContext?.removeEventListener('detail-delete-success', this.#onDeleted); } #onCreated = (event: UmbActionEvent) => { From 2de83924619c4fb92a6ac458547e6abc52766095 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:21:37 +0100 Subject: [PATCH 118/786] move controller event class to controller-api --- .../src/libs/controller-api/controller.event.ts | 5 +++++ src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts | 1 + .../src/packages/core/action/action.event.ts | 7 ++----- 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.event.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.event.ts new file mode 100644 index 0000000000..e51bc0ca23 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.event.ts @@ -0,0 +1,5 @@ +export class UmbControllerEvent extends Event { + public constructor(type: string) { + super(type, { bubbles: false, composed: false, cancelable: false }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts index 26ffaaec28..40d2c77261 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/index.ts @@ -3,3 +3,4 @@ export * from './controller-host.interface.js'; export * from './controller-host-element.mixin.js'; export * from './controller.interface.js'; export * from './controller-alias.type.js'; +export * from './controller.event.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts index 0d9610e9c6..98a6a7713b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts @@ -1,8 +1,4 @@ -export class UmbControllerEvent extends Event { - public constructor(type: string) { - super(type, { bubbles: false, composed: false, cancelable: false }); - } -} +import { UmbControllerEvent } from '@umbraco-cms/backoffice/controller-api'; export interface UmbActionEventArgs { unique: string; @@ -21,6 +17,7 @@ export class UmbActionEvent extends UmbControllerEvent { return this.#args.unique; } + // TODO: this can be removed when the server supports reloading a tree item without reloading the parent getParentUnique(): string | null { return this.#args.parentUnique; } From 3717609c28859248f772fb2698e73e00deddba51 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:28:15 +0100 Subject: [PATCH 119/786] add todo --- .../src/libs/controller-api/controller-host.interface.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts index 243a2e3791..8e34ad93d6 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts @@ -6,5 +6,5 @@ export declare class UmbControllerHost { addController(controller: UmbController): void; removeControllerByAlias(unique: UmbController['controllerAlias']): void; removeController(controller: UmbController): void; - getHostElement(): EventTarget; + getHostElement(): EventTarget; // TODO: should this be HTMLElement? } From 4777a28ffb991161eee2548c0b05522bc5240d6a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:31:54 +0100 Subject: [PATCH 120/786] rename generic type --- .../src/mocks/data/file-system/file-system-base.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts index 72c4cd0ca6..ce2230a51b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts @@ -1,11 +1,11 @@ import { UmbData } from '../data.js'; -export abstract class UmbFileSystemMockDbBase extends UmbData { - constructor(data: Array) { +export abstract class UmbFileSystemMockDbBase extends UmbData { + constructor(data: Array) { super(data); } - create(item: T) { + create(item: MockItemType) { this.data.push(item); } @@ -13,7 +13,7 @@ export abstract class UmbFileSystemMockDbBase extend return this.data.find((item) => item.path === path); } - update(existingPath: string, updatedItem: T) { + update(existingPath: string, updatedItem: MockItemType) { const itemIndex = this.data.findIndex((item) => item.path === existingPath); this.data[itemIndex] = updatedItem; } From 9f44d6fe39459feb02e7a2451a676c5c080e5886 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:33:19 +0100 Subject: [PATCH 121/786] rename generic type --- .../mocks/data/file-system/file-system-folder.manager.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts index 138d280995..092b173df9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts @@ -1,10 +1,10 @@ import { UmbFileSystemMockDbBase } from './file-system-base.js'; import { CreatePathFolderRequestModel, PathFolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbMockFileSystemFolderManager { - #db: UmbFileSystemMockDbBase; +export class UmbMockFileSystemFolderManager { + #db: UmbFileSystemMockDbBase; - constructor(db: UmbFileSystemMockDbBase) { + constructor(db: UmbFileSystemMockDbBase) { this.#db = db; } @@ -24,7 +24,7 @@ export class UmbMockFileSystemFolderManager const dbItem = this.#db.read(path); const isFolder = dbItem?.isFolder ?? false; if (!isFolder) return undefined; - return fileSystemFolderMapper(dbItem); + return fileSystemFolderMapper(dbItem); } delete(path: string) { From fada788daefac9117755248f5df4230753f6bfda Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 20:34:20 +0100 Subject: [PATCH 122/786] clean up delete folder --- .../src/mocks/data/file-system/file-system-folder.manager.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts index 092b173df9..b8903ca5d1 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts @@ -1,7 +1,7 @@ import { UmbFileSystemMockDbBase } from './file-system-base.js'; import { CreatePathFolderRequestModel, PathFolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbMockFileSystemFolderManager { +export class UmbMockFileSystemFolderManager { #db: UmbFileSystemMockDbBase; constructor(db: UmbFileSystemMockDbBase) { @@ -29,8 +29,7 @@ export class UmbMockFileSystemFolderManager Date: Sun, 17 Dec 2023 20:51:01 +0100 Subject: [PATCH 123/786] adjust folder manager --- .../file-system/file-system-folder.manager.ts | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts index b8903ca5d1..4a19d52b0f 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts @@ -1,7 +1,9 @@ import { UmbFileSystemMockDbBase } from './file-system-base.js'; import { CreatePathFolderRequestModel, PathFolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbMockFileSystemFolderManager { +export class UmbMockFileSystemFolderManager< + MockItemType extends PathFolderModelBaseModel & { path: string; isFolder: boolean }, +> { #db: UmbFileSystemMockDbBase; constructor(db: UmbFileSystemMockDbBase) { @@ -9,22 +11,27 @@ export class UmbMockFileSystemFolderManager(dbItem); + const mockItem = this.#db.read(path); + if (mockItem?.isFolder) { + return this.#defaultReadMapper(mockItem); + } else { + return undefined; + } } delete(path: string) { @@ -33,13 +40,11 @@ export class UmbMockFileSystemFolderManager { - return { - name: item.name, - path: item.path, - hasChildren: item.hasChildren ?? false, - isFolder: item.isFolder ?? false, + #defaultReadMapper = (item: MockItemType): PathFolderModelBaseModel & { path: string } => { + return { + name: item.name, + path: item.path, + }; }; -}; +} From 559dcecbba98b64ecfca6f30037bf71cb1adea14 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 21:17:41 +0100 Subject: [PATCH 124/786] fix filesystem folder creation --- .../src/mocks/handlers/script.handlers.ts | 2 - .../tree/folder/folder-repository-base.ts | 48 +++++++++++++------ .../script-folder.server.data-source.ts | 2 +- 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts index eee63d3391..549f7b1f03 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts @@ -46,7 +46,6 @@ const detailHandlers: RestHandler>[] = [ rest.put(umbracoPath('/script'), async (req, res, ctx) => { const requestBody = (await req.json()) as UpdateScriptRequestModel; - debugger; if (!requestBody) return res(ctx.status(400, 'no body found')); umbScriptMockDb.file.update(requestBody); return res(ctx.status(200)); @@ -56,7 +55,6 @@ const detailHandlers: RestHandler>[] = [ const itemHandlers: RestHandler>[] = [ rest.get(umbracoPath('/script/item'), (req, res, ctx) => { const paths = req.url.searchParams.getAll('paths'); - debugger; if (!paths) return res(ctx.status(400, 'no body found')); const response = umbScriptMockDb.getItems(paths); return res(ctx.status(200), ctx.json(response)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index fc1249aeca..317ef7214c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -6,6 +6,7 @@ import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeItemModelBase, UmbTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; export type UmbFolderToTreeItemMapper = ( item: UmbFolderModel, @@ -19,6 +20,7 @@ export abstract class UmbFolderRepositoryBase; #folderDataSource: UmbFolderDataSource; #folderToTreeItemMapper: UmbFolderToTreeItemMapper; + #notificationContext?: UmbNotificationContext; constructor( host: UmbControllerHost, @@ -30,9 +32,15 @@ export abstract class UmbFolderRepositoryBase { - this._treeStore = instance; - }).asPromise(); + this._init = Promise.all([ + this.consumeContext(treeStoreContextAlias, (instance) => { + this._treeStore = instance; + }).asPromise(), + + this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.#notificationContext = instance; + }).asPromise(), + ]); } async createScaffold(parentUnique: string | null) { @@ -63,12 +71,28 @@ export abstract class UmbFolderRepositoryBase Date: Sun, 17 Dec 2023 21:40:56 +0100 Subject: [PATCH 125/786] move stylesheet mocks to folder --- .../src/mocks/data/{ => stylesheet}/stylesheet.data.ts | 4 ++-- .../src/mocks/handlers/stylesheet.handlers.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/data/{ => stylesheet}/stylesheet.data.ts (98%) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts index 4a72b7113b..da28c3471e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts @@ -1,5 +1,5 @@ -import { UmbData } from './data.js'; -import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, textFileItemMapper } from './utils.js'; +import { UmbData } from '../data.js'; +import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, textFileItemMapper } from '../utils.js'; import { CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts index 129582f308..d9bc5167fd 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../data/stylesheet.data.js'; +import { umbStylesheetData } from '../data/stylesheet/stylesheet.data.js'; import { CreatePathFolderRequestModel, CreateStylesheetRequestModel, From 7eaf0c815ce6fd56d96e165846ae5c1393b935ee Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 21:41:11 +0100 Subject: [PATCH 126/786] rename --- .../data/stylesheet/{stylesheet.data.ts => stylesheet.db.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/{stylesheet.data.ts => stylesheet.db.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts From b9c61c80f11680b13225e48c125bf57ba79a6604 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 21:43:20 +0100 Subject: [PATCH 127/786] split db and data --- .../mocks/data/stylesheet/stylesheet.data.ts | 97 +++++++++++++++++ .../mocks/data/stylesheet/stylesheet.db.ts | 101 +----------------- .../src/mocks/handlers/stylesheet.handlers.ts | 2 +- 3 files changed, 101 insertions(+), 99 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts new file mode 100644 index 0000000000..cb286635b5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts @@ -0,0 +1,97 @@ +import { FileSystemTreeItemPresentationModel, StylesheetResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export type StylesheetDBItem = StylesheetResponseModel & FileSystemTreeItemPresentationModel & { icon?: string }; + +export const data: Array = [ + { + path: 'Stylesheet File 1.css', + icon: 'style', + isFolder: false, + name: 'Stylesheet File 1.css', + type: 'stylesheet', + hasChildren: false, + content: ` + /** Stylesheet 1 */ + + h1 { + color: blue; +} + +/**umb_name:bjjh*/ +h1 { + color: blue; +} + +/**umb_name:comeone*/ +h1 { + color: blue; +} + +/**umb_name:lol*/ +h1 { + color: blue; +}`, + }, + { + path: 'Stylesheet File 2.css', + isFolder: false, + icon: 'style', + name: 'Stylesheet File 2.css', + type: 'stylesheet', + hasChildren: false, + content: ` + /** Stylesheet 2 */ +h1 { + color: green; +} + +/**umb_name:HELLO*/ +h1 { + color: green; +} + +/**umb_name:SOMETHING*/ +h1 { + color: green; +} + +/**umb_name:NIOCE*/ +h1 { + color: green; +}`, + }, + { + path: 'Folder 1', + name: 'Folder 1', + isFolder: true, + icon: 'folder', + type: 'stylesheet', + hasChildren: true, + content: '', + }, + { + path: 'Folder 1/Stylesheet File 3.css', + name: 'Stylesheet File 3.css', + type: 'stylesheet', + hasChildren: false, + isFolder: false, + content: `h1 { + color: pink; +} + +/**umb_name:ONE*/ +h1 { + color: pink; +} + +/**umb_name:TWO*/ +h1 { + color: pink; +} + +/**umb_name:THREE*/ +h1 { + color: pink; +}`, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index da28c3471e..6c41aef62a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -1,5 +1,6 @@ import { UmbData } from '../data.js'; import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, textFileItemMapper } from '../utils.js'; +import { StylesheetDBItem, data } from './stylesheet.data.js'; import { CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, @@ -16,108 +17,12 @@ import { //prettier-ignore // eslint-disable-next-line no-useless-escape -type StylesheetDBItem = StylesheetResponseModel & FileSystemTreeItemPresentationModel & { icon?: string }; - -export const data: Array = [ - { - path: 'Stylesheet File 1.css', - icon: 'style', - isFolder: false, - name: 'Stylesheet File 1.css', - type: 'stylesheet', - hasChildren: false, - content: ` - /** Stylesheet 1 */ - - h1 { - color: blue; -} - -/**umb_name:bjjh*/ -h1 { - color: blue; -} - -/**umb_name:comeone*/ -h1 { - color: blue; -} - -/**umb_name:lol*/ -h1 { - color: blue; -}`, - }, - { - path: 'Stylesheet File 2.css', - isFolder: false, - icon: 'style', - name: 'Stylesheet File 2.css', - type: 'stylesheet', - hasChildren: false, - content: ` - /** Stylesheet 2 */ -h1 { - color: green; -} - -/**umb_name:HELLO*/ -h1 { - color: green; -} - -/**umb_name:SOMETHING*/ -h1 { - color: green; -} - -/**umb_name:NIOCE*/ -h1 { - color: green; -}`, - }, - { - path: 'Folder 1', - name: 'Folder 1', - isFolder: true, - icon: 'folder', - type: 'stylesheet', - hasChildren: true, - content: '', - }, - { - path: 'Folder 1/Stylesheet File 3.css', - name: 'Stylesheet File 3.css', - type: 'stylesheet', - hasChildren: false, - isFolder: false, - content: `h1 { - color: pink; -} - -/**umb_name:ONE*/ -h1 { - color: pink; -} - -/**umb_name:TWO*/ -h1 { - color: pink; -} - -/**umb_name:THREE*/ -h1 { - color: pink; -}`, - }, -]; - // Temp mocked database // TODO: all properties are optional in the server schema. I don't think this is correct. // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore class UmbStylesheetData extends UmbData { - constructor() { + constructor(data: Array) { super(data); } @@ -296,4 +201,4 @@ ${rule.selector} { } } -export const umbStylesheetData = new UmbStylesheetData(); +export const umbStylesheetData = new UmbStylesheetData(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts index d9bc5167fd..62fe5586a0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../data/stylesheet/stylesheet.data.js'; +import { umbStylesheetData } from '../data/stylesheet/stylesheet.db.js'; import { CreatePathFolderRequestModel, CreateStylesheetRequestModel, From 421098b68482fc4b0547a509987c79903723c85c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 21:43:52 +0100 Subject: [PATCH 128/786] align mock type name --- .../src/mocks/data/stylesheet/stylesheet.data.ts | 4 ++-- .../src/mocks/data/stylesheet/stylesheet.db.ts | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts index cb286635b5..f0c06de91d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts @@ -1,8 +1,8 @@ import { FileSystemTreeItemPresentationModel, StylesheetResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export type StylesheetDBItem = StylesheetResponseModel & FileSystemTreeItemPresentationModel & { icon?: string }; +export type UmbMockStylesheetModel = StylesheetResponseModel & FileSystemTreeItemPresentationModel & { icon?: string }; -export const data: Array = [ +export const data: Array = [ { path: 'Stylesheet File 1.css', icon: 'style', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index 6c41aef62a..d245c196fa 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -1,6 +1,6 @@ import { UmbData } from '../data.js'; import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, textFileItemMapper } from '../utils.js'; -import { StylesheetDBItem, data } from './stylesheet.data.js'; +import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; import { CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, @@ -21,8 +21,8 @@ import { // TODO: all properties are optional in the server schema. I don't think this is correct. // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -class UmbStylesheetData extends UmbData { - constructor(data: Array) { +class UmbStylesheetData extends UmbData { + constructor(data: Array) { super(data); } @@ -61,7 +61,7 @@ class UmbStylesheetData extends UmbData { }; } - getFolder(path: string): StylesheetDBItem | undefined { + getFolder(path: string): UmbMockStylesheetModel | undefined { return this.data.find((item) => item.path === path && item.isFolder === true); } @@ -119,7 +119,7 @@ ${rule.selector} { } insertFolder(item: CreateTextFileViewModelBaseModel) { - const newItem: StylesheetDBItem = { + const newItem: UmbMockStylesheetModel = { ...item, path: `${item.parentPath}/${item.name}`, isFolder: true, @@ -134,7 +134,7 @@ ${rule.selector} { insertStyleSheet(item: CreateTextFileViewModelBaseModel) { const parentPath = item.parentPath ? `${item.parentPath}/` : ''; - const newItem: StylesheetDBItem = { + const newItem: UmbMockStylesheetModel = { ...item, path: `${parentPath}${item.name}`, isFolder: false, @@ -147,7 +147,7 @@ ${rule.selector} { return newItem; } - insert(item: StylesheetDBItem) { + insert(item: UmbMockStylesheetModel) { const exits = this.data.find((i) => i.path === item.path); if (exits) { From b0c04f221f052cf5a135cd7bb22c15207a8dd337 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 17 Dec 2023 21:49:30 +0100 Subject: [PATCH 129/786] use tree manager for stylesheets --- .../mocks/data/stylesheet/stylesheet.db.ts | 35 +++---------------- .../src/mocks/handlers/stylesheet.handlers.ts | 15 ++------ 2 files changed, 8 insertions(+), 42 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index d245c196fa..3efcb05bc3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -1,50 +1,25 @@ -import { UmbData } from '../data.js'; -import { createFileSystemTreeItem, createFileItemResponseModelBaseModel, textFileItemMapper } from '../utils.js'; +import { UmbFileSystemMockDbBase } from '../file-system/file-system-base.js'; +import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; +import { createFileItemResponseModelBaseModel, textFileItemMapper } from '../utils.js'; import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; import { CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, ExtractRichTextStylesheetRulesResponseModel, - FileSystemTreeItemPresentationModel, InterpolateRichTextStylesheetRequestModel, - PagedFileSystemTreeItemPresentationModel, PagedStylesheetOverviewResponseModel, StylesheetItemResponseModel, StylesheetResponseModel, UpdateStylesheetRequestModel, } from '@umbraco-cms/backoffice/backend-api'; -//prettier-ignore -// eslint-disable-next-line no-useless-escape +class UmbStylesheetData extends UmbFileSystemMockDbBase { + tree = new UmbMockFileSystemTreeManager(this); -// Temp mocked database -// TODO: all properties are optional in the server schema. I don't think this is correct. -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore -class UmbStylesheetData extends UmbData { constructor(data: Array) { super(data); } - getTreeRoot(): PagedFileSystemTreeItemPresentationModel { - const items = this.data.filter((item) => item.path?.includes('/') === false); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItemChildren(parentPath: string): PagedFileSystemTreeItemPresentationModel { - const items = this.data.filter((item) => item.path?.startsWith(parentPath + '/')); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItem(paths: Array): Array { - const items = this.data.filter((item) => paths.includes(item.path ?? '')); - return items.map((item) => createFileSystemTreeItem(item)); - } - getItems(paths: Array): Array { const items = this.data.filter((item) => paths.includes(item.path ?? '')); return items.map((item) => createFileItemResponseModelBaseModel(item)); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts index 62fe5586a0..9518f064db 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts @@ -11,25 +11,16 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; const treeHandlers = [ rest.get(umbracoPath('/tree/stylesheet/root'), (req, res, ctx) => { - const response = umbStylesheetData.getTreeRoot(); + const response = umbStylesheetData.tree.getRoot(); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath('/tree/stylesheet/children'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - if (!path) return; - - const response = umbStylesheetData.getTreeItemChildren(path); + if (!path) return res(ctx.status(400)); + const response = umbStylesheetData.tree.getChildrenOf(path); return res(ctx.status(200), ctx.json(response)); }), - - rest.get(umbracoPath('/tree/stylesheet/item'), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); - if (!paths) return; - - const items = umbStylesheetData.getTreeItem(paths); - return res(ctx.status(200), ctx.json(items)); - }), ]; const detailHandlers = [ From 2bfb8035adfe2b0b4a70c359a048363ed837e552 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 09:21:04 +0100 Subject: [PATCH 130/786] remove appended icon to the type --- .../src/mocks/data/stylesheet/stylesheet.data.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts index f0c06de91d..ee64c07188 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts @@ -1,11 +1,10 @@ import { FileSystemTreeItemPresentationModel, StylesheetResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export type UmbMockStylesheetModel = StylesheetResponseModel & FileSystemTreeItemPresentationModel & { icon?: string }; +export type UmbMockStylesheetModel = StylesheetResponseModel & FileSystemTreeItemPresentationModel; export const data: Array = [ { path: 'Stylesheet File 1.css', - icon: 'style', isFolder: false, name: 'Stylesheet File 1.css', type: 'stylesheet', @@ -35,7 +34,6 @@ h1 { { path: 'Stylesheet File 2.css', isFolder: false, - icon: 'style', name: 'Stylesheet File 2.css', type: 'stylesheet', hasChildren: false, @@ -64,7 +62,6 @@ h1 { path: 'Folder 1', name: 'Folder 1', isFolder: true, - icon: 'folder', type: 'stylesheet', hasChildren: true, content: '', From 82f77ac79c63734ed7196e3c64f030d4e5493cb3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 09:21:21 +0100 Subject: [PATCH 131/786] add item helper --- .../src/mocks/data/stylesheet/stylesheet.db.ts | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index 3efcb05bc3..0aabb33bfb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -1,6 +1,7 @@ import { UmbFileSystemMockDbBase } from '../file-system/file-system-base.js'; +import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; -import { createFileItemResponseModelBaseModel, textFileItemMapper } from '../utils.js'; +import { textFileItemMapper } from '../utils.js'; import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; import { CreateTextFileViewModelBaseModel, @@ -8,23 +9,18 @@ import { ExtractRichTextStylesheetRulesResponseModel, InterpolateRichTextStylesheetRequestModel, PagedStylesheetOverviewResponseModel, - StylesheetItemResponseModel, StylesheetResponseModel, UpdateStylesheetRequestModel, } from '@umbraco-cms/backoffice/backend-api'; class UmbStylesheetData extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); + item = new UmbMockFileSystemItemManager(this); constructor(data: Array) { super(data); } - getItems(paths: Array): Array { - const items = this.data.filter((item) => paths.includes(item.path ?? '')); - return items.map((item) => createFileItemResponseModelBaseModel(item)); - } - getStylesheet(path: string): StylesheetResponseModel | undefined { return textFileItemMapper(this.data.find((item) => item.path === path)); } @@ -100,7 +96,6 @@ ${rule.selector} { isFolder: true, hasChildren: false, type: 'stylesheet', - icon: 'folder', }; this.insert(newItem); @@ -115,7 +110,6 @@ ${rule.selector} { isFolder: false, hasChildren: false, type: 'stylesheet', - icon: 'style', }; this.insert(newItem); From 057ec7892a11b5425fe0ee1bba59dcdbcd45ff68 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 09:21:44 +0100 Subject: [PATCH 132/786] call item helper method in request handler --- .../src/mocks/handlers/script.handlers.ts | 2 +- .../src/mocks/handlers/stylesheet.handlers.ts | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts index 549f7b1f03..27d0213069 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script.handlers.ts @@ -56,7 +56,7 @@ const itemHandlers: RestHandler>[] = [ rest.get(umbracoPath('/script/item'), (req, res, ctx) => { const paths = req.url.searchParams.getAll('paths'); if (!paths) return res(ctx.status(400, 'no body found')); - const response = umbScriptMockDb.getItems(paths); + const response = umbScriptMockDb.item.getItems(paths); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts index 9518f064db..27fd406f53 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts @@ -53,19 +53,17 @@ const detailHandlers = [ return res(ctx.status(200)); }), - rest.get(umbracoPath('/v1/stylesheet/all'), (req, res, ctx) => { + rest.get(umbracoPath('/stylesheet/all'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); if (!path) return; - const response = umbStylesheetData.getAllStylesheets(); return res(ctx.status(200), ctx.json(response)); }), - rest.get(umbracoPath('/v1/stylesheet/item'), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('path'); - if (!paths) return; - - const items = umbStylesheetData.getItems(paths); + rest.get(umbracoPath('/stylesheet/item'), (req, res, ctx) => { + const paths = req.url.searchParams.getAll('paths'); + if (!paths) return res(ctx.status(400, 'no body found')); + const items = umbStylesheetData.item.getItems(paths); return res(ctx.status(200), ctx.json(items)); }), ]; From 5ebab73ad42ce1156b84d48c9bd29eb91d73c801 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 09:46:25 +0100 Subject: [PATCH 133/786] add detail helper to stylesheet mocks --- .../mocks/data/stylesheet/stylesheet.db.ts | 83 +++++-------------- .../src/mocks/handlers/stylesheet.handlers.ts | 45 ++++++---- 2 files changed, 48 insertions(+), 80 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index 0aabb33bfb..a02097beeb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -1,24 +1,31 @@ import { UmbFileSystemMockDbBase } from '../file-system/file-system-base.js'; +import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; import { textFileItemMapper } from '../utils.js'; import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; import { + CreateStylesheetRequestModel, CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, ExtractRichTextStylesheetRulesResponseModel, InterpolateRichTextStylesheetRequestModel, PagedStylesheetOverviewResponseModel, StylesheetResponseModel, - UpdateStylesheetRequestModel, } from '@umbraco-cms/backoffice/backend-api'; class UmbStylesheetData extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); item = new UmbMockFileSystemItemManager(this); + file; constructor(data: Array) { super(data); + + this.file = new UmbMockFileSystemDetailManager(this, { + createMapper: this.#createStylesheetMockItem, + readMapper: this.#readStylesheetResponseMapper, + }); } getStylesheet(path: string): StylesheetResponseModel | undefined { @@ -102,72 +109,24 @@ ${rule.selector} { return newItem; } - insertStyleSheet(item: CreateTextFileViewModelBaseModel) { - const parentPath = item.parentPath ? `${item.parentPath}/` : ''; - const newItem: UmbMockStylesheetModel = { - ...item, - path: `${parentPath}${item.name}`, + #createStylesheetMockItem = (item: CreateStylesheetRequestModel): UmbMockStylesheetModel => { + return { + name: item.name, + content: item.content, + path: `${item.parentPath}` ? `${item.parentPath}/${item.name}` : item.name, isFolder: false, hasChildren: false, type: 'stylesheet', }; + }; - this.insert(newItem); - return newItem; - } - - insert(item: UmbMockStylesheetModel) { - const exits = this.data.find((i) => i.path === item.path); - - if (exits) { - throw new Error(`Item with path ${item.path} already exists`); - } - - this.data.push(item); - - return item; - } - - updateData(updateItem: UpdateStylesheetRequestModel) { - const itemIndex = this.data.findIndex((item) => item.path === updateItem.existingPath); - const item = this.data[itemIndex]; - if (!item) return; - - // TODO: revisit this code, seems like something we can solve smarter/type safer now: - const itemKeys = Object.keys(item); - const newItem = { ...item }; - - for (const [key] of Object.entries(updateItem)) { - if (itemKeys.indexOf(key) !== -1) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - newItem[key] = updateItem[key]; - } - } - // Specific to fileSystem, we need to update path based on name: - const dirName = updateItem.existingPath?.substring(0, updateItem.existingPath.lastIndexOf('/')); - newItem.path = `${dirName}${dirName ? '/' : ''}${updateItem.name}`; - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - this.data[itemIndex] = newItem; - } - - delete(paths: Array) { - const deletedPaths = this.data - .filter((item) => { - if (!item.path) throw new Error('Item has no path'); - paths.includes(item.path); - }) - .map((item) => item.path); - - this.data = this.data.filter((item) => { - if (!item.path) throw new Error('Item has no path'); - paths.indexOf(item.path) === -1; - }); - - return deletedPaths; - } + #readStylesheetResponseMapper = (item: UmbMockStylesheetModel): StylesheetResponseModel => { + return { + path: item.path, + name: item.name, + content: item.content, + }; + }; } export const umbStylesheetData = new UmbStylesheetData(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts index 27fd406f53..0711205563 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts @@ -3,7 +3,6 @@ import { umbStylesheetData } from '../data/stylesheet/stylesheet.db.js'; import { CreatePathFolderRequestModel, CreateStylesheetRequestModel, - CreateTextFileViewModelBaseModel, InterpolateRichTextStylesheetRequestModel, UpdateStylesheetRequestModel, } from '@umbraco-cms/backoffice/backend-api'; @@ -26,40 +25,34 @@ const treeHandlers = [ const detailHandlers = [ rest.get(umbracoPath('/stylesheet'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - if (!path) return; - - const response = umbStylesheetData.getStylesheet(path); + if (!path) return res(ctx.status(400)); + const response = umbStylesheetData.file.read(path); return res(ctx.status(200), ctx.json(response)); }), rest.post(umbracoPath('/stylesheet'), async (req, res, ctx) => { - const requestBody = (await req.json()) as CreateTextFileViewModelBaseModel; + const requestBody = (await req.json()) as CreateStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); - const response = umbStylesheetData.insertStyleSheet(requestBody); - return res(ctx.status(200), ctx.json(response)); + umbStylesheetData.file.create(requestBody); + return res(ctx.status(200)); }), rest.delete(umbracoPath('/stylesheet'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); if (!path) return res(ctx.status(400)); - const response = umbStylesheetData.delete([path]); - return res(ctx.status(200), ctx.json(response)); + umbStylesheetData.file.delete(path); + return res(ctx.status(200)); }), rest.put(umbracoPath('/stylesheet'), async (req, res, ctx) => { const requestBody = (await req.json()) as UpdateStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); - umbStylesheetData.updateData(requestBody); + umbStylesheetData.file.update(requestBody); return res(ctx.status(200)); }), +]; - rest.get(umbracoPath('/stylesheet/all'), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return; - const response = umbStylesheetData.getAllStylesheets(); - return res(ctx.status(200), ctx.json(response)); - }), - +const itemHandlers = [ rest.get(umbracoPath('/stylesheet/item'), (req, res, ctx) => { const paths = req.url.searchParams.getAll('paths'); if (!paths) return res(ctx.status(400, 'no body found')); @@ -68,6 +61,15 @@ const detailHandlers = [ }), ]; +const collectionHandlers = [ + rest.get(umbracoPath('/stylesheet/all'), (req, res, ctx) => { + const path = req.url.searchParams.get('path'); + if (!path) return; + const response = umbStylesheetData.getAllStylesheets(); + return res(ctx.status(200), ctx.json(response)); + }), +]; + const rulesHandlers = [ rest.post(umbracoPath('/stylesheet/rich-text/extract-rules'), async (req, res, ctx) => { const requestBody = (await req.json()) as CreateStylesheetRequestModel; @@ -118,4 +120,11 @@ const folderHandlers = [ }), ]; -export const handlers = [...treeHandlers, ...detailHandlers, ...folderHandlers, ...rulesHandlers]; +export const handlers = [ + ...treeHandlers, + ...detailHandlers, + ...itemHandlers, + ...collectionHandlers, + ...folderHandlers, + ...rulesHandlers, +]; From 3408bb581aef9914f3379ebfc8f11c333b6b1482 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 10:09:07 +0100 Subject: [PATCH 134/786] remove type and icon from folder --- .../src/mocks/data/file-system/file-system-folder.manager.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts index 4a19d52b0f..b3d6e8cd63 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts @@ -17,8 +17,6 @@ export class UmbMockFileSystemFolderManager< name: request.name, hasChildren: false, isFolder: true, - type: 'script-folder', - icon: 'icon-script', content: '', }; From 10fd61d5be774c211239c57079e9dcdec32d4713 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 10:09:19 +0100 Subject: [PATCH 135/786] use folder manager in mock data --- .../mocks/data/stylesheet/stylesheet.db.ts | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index a02097beeb..ff447fd62d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -1,12 +1,12 @@ import { UmbFileSystemMockDbBase } from '../file-system/file-system-base.js'; import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; +import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folder.manager.js'; import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; import { textFileItemMapper } from '../utils.js'; import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; import { CreateStylesheetRequestModel, - CreateTextFileViewModelBaseModel, ExtractRichTextStylesheetRulesRequestModel, ExtractRichTextStylesheetRulesResponseModel, InterpolateRichTextStylesheetRequestModel, @@ -17,6 +17,7 @@ import { class UmbStylesheetData extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); item = new UmbMockFileSystemItemManager(this); + folder = new UmbMockFileSystemFolderManager(this); file; constructor(data: Array) { @@ -39,10 +40,6 @@ class UmbStylesheetData extends UmbFileSystemMockDbBase }; } - getFolder(path: string): UmbMockStylesheetModel | undefined { - return this.data.find((item) => item.path === path && item.isFolder === true); - } - getRules(path: string): ExtractRichTextStylesheetRulesResponseModel { const regex = /\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; const item = this.data.find((item) => item.path === path); @@ -96,19 +93,6 @@ ${rule.selector} { return { content: newContent }; } - insertFolder(item: CreateTextFileViewModelBaseModel) { - const newItem: UmbMockStylesheetModel = { - ...item, - path: `${item.parentPath}/${item.name}`, - isFolder: true, - hasChildren: false, - type: 'stylesheet', - }; - - this.insert(newItem); - return newItem; - } - #createStylesheetMockItem = (item: CreateStylesheetRequestModel): UmbMockStylesheetModel => { return { name: item.name, From 07bf245e3d145520799fc58882e481f947132294 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 10:10:53 +0100 Subject: [PATCH 136/786] update handlers to call correct folder methods --- .../src/mocks/handlers/stylesheet.handlers.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts index 0711205563..9c027b4a7d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet.handlers.ts @@ -98,25 +98,25 @@ const rulesHandlers = [ ]; const folderHandlers = [ - rest.get(umbracoPath('/v1/stylesheet/all'), (req, res, ctx) => { + rest.get(umbracoPath('/stylesheet/folder'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); - if (!path) return; - - const response = umbStylesheetData.getFolder(path); + if (!path) return res(ctx.status(400)); + const response = umbStylesheetData.folder.read(path); return res(ctx.status(200), ctx.json(response)); }), rest.post(umbracoPath('/stylesheet/folder'), async (req, res, ctx) => { const requestBody = (await req.json()) as CreatePathFolderRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); + umbStylesheetData.folder.create(requestBody); return res(ctx.status(200)); }), rest.delete(umbracoPath('/stylesheet/folder'), (req, res, ctx) => { const path = req.url.searchParams.get('path'); if (!path) return res(ctx.status(400)); - const response = umbStylesheetData.delete([path]); - return res(ctx.status(200), ctx.json(response)); + umbStylesheetData.folder.delete(path); + return res(ctx.status(200)); }), ]; From 34726f577f035a9762a35357cccfc06322a008a2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 11:51:30 +0100 Subject: [PATCH 137/786] add stylesheet entity types --- .../src/packages/templating/stylesheets/entity.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity.ts index 5e5f91b596..33accd9cec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity.ts @@ -1,3 +1,7 @@ export const UMB_STYLESHEET_ENTITY_TYPE = 'stylesheet'; export const UMB_STYLESHEET_ROOT_ENTITY_TYPE = 'stylesheet-root'; export const UMB_STYLESHEET_FOLDER_ENTITY_TYPE = 'stylesheet-folder'; + +export type UmbStylesheetEntityType = typeof UMB_STYLESHEET_ENTITY_TYPE; +export type UmbStylesheetRootEntityType = typeof UMB_STYLESHEET_ROOT_ENTITY_TYPE; +export type UmbStylesheetFolderEntityType = typeof UMB_STYLESHEET_FOLDER_ENTITY_TYPE; From 3249f9afec420fc89fd3721883f3964ed4a0d56a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 13:07:45 +0100 Subject: [PATCH 138/786] update stylesheet tree to use unique --- .../sources/stylesheet.folder.server.data.ts | 32 ----- .../stylesheets/tree/folder/index.ts | 6 + .../stylesheets/tree/folder/manifests.ts | 44 +++++++ .../folder/stylesheet-folder.repository.ts | 29 +++++ .../stylesheet-folder.server.data-source.ts | 113 ++++++++++++++++++ .../templating/stylesheets/tree/index.ts | 8 ++ .../templating/stylesheets/tree/manifests.ts | 10 +- .../tree/stylesheet-tree.repository.ts | 9 +- .../stylesheet-tree.server.data-source.ts | 9 +- .../stylesheets/tree/stylesheet-tree.store.ts | 62 +++++++++- .../templating/stylesheets/tree/types.ts | 13 +- 11 files changed, 284 insertions(+), 51 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts deleted file mode 100644 index 0072ec6de6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.folder.server.data.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CreateFolderRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderDataSource } from '@umbraco-cms/backoffice/tree'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource { - #host: UmbControllerHost; - - constructor(host: UmbControllerHost) { - this.#host = host; - } - - read(unique: string) { - return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetFolder({ path: unique })); - } - - create(requestBody: CreateFolderRequestModel) { - return tryExecuteAndNotify(this.#host, StylesheetResource.postStylesheetFolder({ requestBody })); - } - - delete(path: string) { - return tryExecuteAndNotify(this.#host, StylesheetResource.deleteStylesheetFolder({ path })); - } - - update(): any { - throw new Error('Method not implemented.'); - } - - createScaffold(): any { - throw new Error('Method not implemented.'); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts new file mode 100644 index 0000000000..14e04072b6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts @@ -0,0 +1,6 @@ +export { UmbScriptFolderRepository } from './stylesheet-folder.repository.js'; +export { + UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, + UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, + UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, +} from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts new file mode 100644 index 0000000000..4e3021a19e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts @@ -0,0 +1,44 @@ +import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Folder'; + +const folderRepository: ManifestRepository = { + type: 'repository', + alias: UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, + name: 'Stylesheet Folder Repository', + api: UmbStylesheetFolderRepository, +}; + +export const UMB_DELETE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Stylesheet.Folder.Delete'; +export const UMB_CREATE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Stylesheet.Folder.Create'; + +const entityActions = [ + { + type: 'entityAction', + alias: UMB_CREATE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, + name: 'Create Stylesheet folder Entity Action', + api: UmbCreateFolderEntityAction, + meta: { + icon: 'icon-add', + label: 'Create folder...', + repositoryAlias: UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'entityAction', + alias: UMB_DELETE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, + name: 'Delete Stylesheet folder Entity Action', + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete folder...', + repositoryAlias: UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_STYLESHEET_FOLDER_ENTITY_TYPE], + }, + }, +]; + +export const manifests = [folderRepository, ...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts new file mode 100644 index 0000000000..66178bb78e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts @@ -0,0 +1,29 @@ +import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbStylesheetTreeItemModel } from '../types.js'; +import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from '../stylesheet-tree.store.js'; +import { UmbStylesheetFolderServerDataSource } from './stylesheet-folder.server.data-source.js'; +import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +export class UmbStylesheetFolderRepository extends UmbFolderRepositoryBase { + constructor(host: UmbControllerHost) { + super( + host, + UmbStylesheetFolderServerDataSource, + UMB_STYLESHEET_TREE_STORE_CONTEXT, + folderToStylesheetTreeItemFolder, + ); + } +} + +const folderToStylesheetTreeItemFolder = (folder: UmbFolderModel): UmbStylesheetTreeItemModel => { + return { + unique: folder.unique, + parentUnique: folder.parentUnique, + name: folder.name, + entityType: UMB_STYLESHEET_FOLDER_ENTITY_TYPE, + isFolder: true, + isContainer: false, + hasChildren: false, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts new file mode 100644 index 0000000000..a958d2aaf8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts @@ -0,0 +1,113 @@ +import { UmbServerPathUniqueSerializer } from '../../../utils/index.js'; +import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import { StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for Stylesheet folders that fetches data from the server + * @export + * @class UmbStylesheetFolderServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource { + #host: UmbControllerHost; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + + /** + * Creates an instance of UmbStylesheetFolderServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbStylesheetFolderServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Fetches a Stylesheet folder from the server + * @param {string} unique + * @return {UmbDataSourceResponse} + * @memberof UmbStylesheetFolderServerDataSource + */ + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + + const { data, error } = await tryExecuteAndNotify( + this.#host, + StylesheetResource.getStylesheetFolder({ + path, + }), + ); + + if (data) { + const mappedData = { + unique: this.#serverPathUniqueSerializer.toUnique(data.path), + parentUnique: this.#serverPathUniqueSerializer.toParentUnique(data.path), + name: data.name, + }; + + return { data: mappedData }; + } + + return { error }; + } + + /** + * Creates a Stylesheet folder on the server + * @param {UmbCreateFolderModel} args + * @return {UmbDataSourceResponse} + * @memberof UmbStylesheetFolderServerDataSource + */ + async create(args: UmbCreateFolderModel) { + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); + if (!args.name) throw new Error('Name is missing'); + + const parentPath = new UmbServerPathUniqueSerializer().toServerPath(args.parentUnique); + + const requestBody = { + parentPath, + name: args.name, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + StylesheetResource.postStylesheetFolder({ + requestBody, + }), + ); + + if (!error) { + /* TODO: investigate why we don't get the location header as part of data, + so we don't have to construct the path ourselves */ + const newPath = parentPath ? `${parentPath}/${args.name}` : args.name; + return this.read(newPath); + } + + return { error }; + } + + /** + * Deletes a Stylesheet folder on the server + * @param {string} unique + * @return {UmbDataSourceErrorResponse} + * @memberof UmbStylesheetServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + + return tryExecuteAndNotify( + this.#host, + StylesheetResource.deleteStylesheetFolder({ + path, + }), + ); + } + + async update(args: UmbUpdateFolderModel): Promise { + throw new Error('Updating is not supported'); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts index de16c2e3c3..e7cd001fce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/index.ts @@ -1 +1,9 @@ export { UmbStylesheetTreeRepository } from './stylesheet-tree.repository.js'; +export { + UMB_STYLESHEET_TREE_REPOSITORY_ALIAS, + UMB_STYLESHEET_TREE_STORE_ALIAS, + UMB_STYLESHEET_TREE_ALIAS, +} from './manifests.js'; +export { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.js'; +export { type UmbStylesheetTreeStore } from './stylesheet-tree.store.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts index 4707aaf2c8..b13903c13f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts @@ -1,4 +1,8 @@ -import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../entity.js'; +import { + UMB_STYLESHEET_ENTITY_TYPE, + UMB_STYLESHEET_FOLDER_ENTITY_TYPE, + UMB_STYLESHEET_ROOT_ENTITY_TYPE, +} from '../entity.js'; import { UmbStylesheetTreeRepository } from './stylesheet-tree.repository.js'; import { UmbStylesheetTreeStore } from './stylesheet-tree.store.js'; import type { @@ -38,11 +42,11 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'fileSystem', + kind: 'unique', alias: 'Umb.TreeItem.Stylesheet', name: 'Stylesheet Tree Item', meta: { - entityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_ENTITY_TYPE], + entityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts index dc3253ddc7..dc7cbc550c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts @@ -1,5 +1,6 @@ +import { UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbStylesheetTreeServerDataSource } from './stylesheet-tree.server.data-source.js'; -import { UMB_STYLESHEET_TREE_STORE_CONTEXT_TOKEN } from './stylesheet-tree.store.js'; +import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.js'; import { UmbStylesheetTreeItemModel, UmbStylesheetTreeRootModel } from './types.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -9,13 +10,13 @@ export class UmbStylesheetTreeRepository extends UmbTreeRepositoryBase< UmbStylesheetTreeRootModel > { constructor(host: UmbControllerHost) { - super(host, UmbStylesheetTreeServerDataSource, UMB_STYLESHEET_TREE_STORE_CONTEXT_TOKEN); + super(host, UmbStylesheetTreeServerDataSource, UMB_STYLESHEET_TREE_STORE_CONTEXT); } async requestTreeRoot() { const data = { - path: null, - entityType: 'stylesheet-root', + unique: null, + entityType: UMB_STYLESHEET_ROOT_ENTITY_TYPE, name: 'Stylesheets', icon: 'icon-folder', hasChildren: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts index fbf4dd3ce4..9d9f06fbe9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts @@ -1,3 +1,5 @@ +import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../entity.js'; +import { UmbServerPathUniqueSerializer } from '../../utils/server-path-unique-serializer.js'; import { UmbStylesheetTreeItemModel } from './types.js'; import { FileSystemTreeItemPresentationModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -42,10 +44,13 @@ const getChildrenOf = (parentUnique: string | null) => { }; const mapper = (item: FileSystemTreeItemPresentationModel): UmbStylesheetTreeItemModel => { + const serializer = new UmbServerPathUniqueSerializer(); + return { - path: item.path, + unique: serializer.toUnique(item.path), + parentUnique: serializer.toParentUnique(item.path), + entityType: item.isFolder ? UMB_STYLESHEET_FOLDER_ENTITY_TYPE : UMB_STYLESHEET_ENTITY_TYPE, name: item.name, - entityType: 'stylesheet', isFolder: item.isFolder, hasChildren: item.hasChildren, isContainer: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts index 932eb0588b..c7f8e9e84d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts @@ -1,6 +1,8 @@ -import { UmbFileSystemTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbStylesheetTreeRepository } from './stylesheet-tree.repository.js'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; /** * @export @@ -8,17 +10,65 @@ import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controlle * @extends {UmbEntityTreeStore} * @description - Tree Data Store for Stylesheets */ -export class UmbStylesheetTreeStore extends UmbFileSystemTreeStore { +export class UmbStylesheetTreeStore extends UmbUniqueTreeStore { + #actionEventContext?: UmbActionEventContext; + #treeRepository: UmbStylesheetTreeRepository; + /** * Creates an instance of UmbStylesheetTreeStore. * @param {UmbControllerHostElement} host * @memberof UmbStylesheetTreeStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_STYLESHEET_TREE_STORE_CONTEXT_TOKEN.toString()); + super(host, UMB_STYLESHEET_TREE_STORE_CONTEXT.toString()); + + this.#treeRepository = new UmbStylesheetTreeRepository(host); + + this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { + this.#actionEventContext = instance; + this.#listen(); + }); + } + + #listen() { + // TODO: add event class to remove the magic strings + this.#actionEventContext?.addEventListener('detail-create-success', this.#onCreated); + this.#actionEventContext?.addEventListener('detail-save-success', this.#onSaved); + this.#actionEventContext?.addEventListener('detail-delete-success', this.#onDeleted); + } + + #stopListening() { + this.#actionEventContext?.removeEventListener('detail-create-success', this.#onCreated); + this.#actionEventContext?.removeEventListener('detail-save-success', this.#onSaved); + this.#actionEventContext?.removeEventListener('detail-delete-success', this.#onDeleted); + } + + #onCreated = (event: UmbActionEvent) => { + // the item doesn't exist yet, so we reload the parent + const eventParentUnique = event.getParentUnique(); + this.#treeRepository.requestTreeItemsOf(eventParentUnique); + }; + + #onSaved = (event: UmbActionEvent) => { + // only reload the parent if the item is already in the store + const eventUnique = event.getUnique(); + const storeItem = this.getItems([eventUnique])?.[0]; + + /* we need to remove the store because the unique (path) can have changed. + and it will therefore not update the correct item but append a new. */ + if (storeItem) { + this.removeItem(eventUnique); + this.#treeRepository.requestTreeItemsOf(storeItem.parentUnique); + } + }; + + #onDeleted = (event: UmbActionEvent) => { + this.removeItem(event.getUnique()); + }; + + onDestroy() { + this.#stopListening(); } } -export const UMB_STYLESHEET_TREE_STORE_CONTEXT_TOKEN = new UmbContextToken( - 'UmbStylesheetTreeStore', -); +export const UMB_STYLESHEET_TREE_STORE_CONTEXT = new UmbContextToken('UmbStylesheetTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts index 646cb5f854..5dd271943a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts @@ -1,5 +1,10 @@ -import type { UmbFileSystemTreeItemModel, UmbFileSystemTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import { UmbStylesheetEntityType, UmbStylesheetFolderEntityType, UmbStylesheetRootEntityType } from '../entity.js'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbStylesheetTreeItemModel extends UmbFileSystemTreeItemModel {} -// TODO: TREE STORE TYPE PROBLEM: -export interface UmbStylesheetTreeRootModel extends UmbFileSystemTreeRootModel {} +export interface UmbStylesheetTreeItemModel extends UmbUniqueTreeItemModel { + entityType: UmbStylesheetEntityType | UmbStylesheetFolderEntityType; +} + +export interface UmbStylesheetTreeRootModel extends UmbUniqueTreeRootModel { + entityType: UmbStylesheetRootEntityType; +} From afab75596e503aeef0af0f18e3ec23f933e4e009 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 13:09:39 +0100 Subject: [PATCH 139/786] import folder manifests --- .../src/packages/templating/stylesheets/tree/manifests.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts index b13903c13f..9b9e9a875d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts @@ -3,6 +3,7 @@ import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE, } from '../entity.js'; +import { manifests as folderManifests } from './folder/manifests.js'; import { UmbStylesheetTreeRepository } from './stylesheet-tree.repository.js'; import { UmbStylesheetTreeStore } from './stylesheet-tree.store.js'; import type { @@ -50,4 +51,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; From b5e4bd6d126dbe99ed33a4127dc356807a8c9c86 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 13:09:48 +0100 Subject: [PATCH 140/786] import folder repository --- .../src/packages/templating/stylesheets/tree/folder/manifests.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts index 4e3021a19e..33942be4d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts @@ -1,4 +1,5 @@ import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbStylesheetFolderRepository } from './stylesheet-folder.repository.js'; import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; From 44c8bd12ce5aa87a0a33842355b79239606dc01e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 13:19:24 +0100 Subject: [PATCH 141/786] update export names --- .../packages/templating/stylesheets/tree/folder/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts index 14e04072b6..51fdfcfee3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts @@ -1,6 +1,6 @@ -export { UmbScriptFolderRepository } from './stylesheet-folder.repository.js'; +export { UmbStylesheetFolderRepository } from './stylesheet-folder.repository.js'; export { - UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, - UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, - UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, + UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, + UMB_DELETE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, + UMB_CREATE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, } from './manifests.js'; From 20c960ac8e4abb8cdc2c24cd11f35e92195a7b37 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 15:39:49 +0100 Subject: [PATCH 142/786] split stylesheet into multiple repositories --- .../stylesheets/collection/index.ts | 1 + .../stylesheets/collection/manifests.ts | 3 + .../collection/repository/index.ts | 1 + .../collection/repository/manifests.ts | 13 ++ .../stylesheet-collection.repository.ts | 34 +++++ ...tylesheet-collection.server.data-source.ts | 30 ++++ .../stylesheets/collection/types.ts | 16 ++ .../packages/templating/stylesheets/index.ts | 4 - .../templating/stylesheets/manifests.ts | 2 + .../stylesheets/repository/index.ts | 3 +- .../stylesheets/repository/manifests.ts | 2 +- .../repository/rich-text-rule/index.ts | 1 + .../stylesheet-rich-text-rule.repository.ts | 43 ++++++ ...sheet-rich-text-rule.server.data-source.ts | 64 ++++++++ .../sources/stylesheet.server.data.ts | 137 ------------------ .../stylesheet-detail.repository.ts | 20 +++ .../stylesheet-detail.server.data-source.ts | 137 ++++++++++++++++++ .../repository/stylesheet-detail.store.ts | 25 ++++ .../repository/stylesheet.repository.ts | 110 -------------- .../packages/templating/stylesheets/types.ts | 10 ++ .../workspace/stylesheet-workspace.context.ts | 4 +- 21 files changed, 405 insertions(+), 255 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts new file mode 100644 index 0000000000..3d76f338dd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts @@ -0,0 +1 @@ +export * from './repository/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts new file mode 100644 index 0000000000..4e1826b900 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts @@ -0,0 +1,3 @@ +import { manifests as repositoryManifests } from './repository/manifests.js'; + +export const manifests = [...repositoryManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts new file mode 100644 index 0000000000..0759be3e3d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts @@ -0,0 +1 @@ +export * from './stylesheet-collection.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts new file mode 100644 index 0000000000..67222a98a1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts @@ -0,0 +1,13 @@ +import { UmbStylesheetCollectionRepository } from './stylesheet-collection.repository.js'; +import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_STYLESHEET_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Collection'; + +const repository: ManifestRepository = { + type: 'repository', + alias: UMB_STYLESHEET_COLLECTION_REPOSITORY_ALIAS, + name: 'Stylesheet Collection Repository', + api: UmbStylesheetCollectionRepository, +}; + +export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts new file mode 100644 index 0000000000..66404f2c9d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts @@ -0,0 +1,34 @@ +import { UmbStylesheetCollectionFilterModel, UmbStylesheetCollectionItemModel } from '../types.js'; +import { UmbStylesheetDetailStore, UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from '../../repository/index.js'; +import { UmbStylesheetCollectionServerDataSource } from './stylesheet-collection.server.data-source.js'; +import { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; + +export class UmbStylesheetCollectionRepository extends UmbBaseController implements UmbCollectionRepository { + #init; + + #detailStore?: UmbStylesheetDetailStore; + #collectionSource: UmbCollectionDataSource; + + constructor(host: UmbControllerHost) { + super(host); + this.#collectionSource = new UmbStylesheetCollectionServerDataSource(this._host); + + this.#init = this.consumeContext(UMB_STYLESHEET_DETAIL_STORE_CONTEXT, (instance) => { + this.#detailStore = instance; + }).asPromise(); + } + + async requestCollection(filter: UmbStylesheetCollectionFilterModel = { take: 100, skip: 0 }) { + await this.#init; + + const { data, error } = await this.#collectionSource.getCollection(filter); + + if (data) { + this.#detailStore?.appendItems(data.items); + } + + return { data, error, asObservable: () => this.#detailStore!.all() }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts new file mode 100644 index 0000000000..57cda012e5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts @@ -0,0 +1,30 @@ +import { UmbStylesheetCollectionFilterModel, UmbStylesheetCollectionItemModel } from '../types.js'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import { StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; + +/** + * A data source for the Stylesheet collection that fetches data from the server + * @export + * @class UmbStylesheetCollectionServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbStylesheetCollectionServerDataSource + implements UmbCollectionDataSource +{ + #host: UmbControllerHost; + + /** + * Creates an instance of UmbStylesheetCollectionServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbStylesheetCollectionServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + getCollection(filter: UmbStylesheetCollectionFilterModel) { + return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetAll(filter)); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts new file mode 100644 index 0000000000..d04c8fb3f5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts @@ -0,0 +1,16 @@ +export interface UmbStylesheetCollectionFilterModel { + /** + * The number of items to take. + */ + take?: number; + + /** + * The number of items to skip. + */ + skip?: number; +} + +export interface UmbStylesheetCollectionItemModel { + name: string; + path: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts index dc6639fcd2..f557243b23 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts @@ -1,6 +1,2 @@ -import { StylesheetResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -export interface UmbStylesheetDetailModel extends StylesheetResponseModel {} - export * from './repository/index.js'; export { UmbStylesheetTreeRepository } from './tree/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts index 12f1863639..b34387af09 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts @@ -3,6 +3,7 @@ import { manifests as menuItemManifests } from './menu-item/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { manifests as entityActionManifests } from './entity-actions/manifests.js'; +import { manifests as collectionManifests } from './collection/manifests.js'; export const manifests = [ ...repositoryManifests, @@ -10,4 +11,5 @@ export const manifests = [ ...treeManifests, ...workspaceManifests, ...entityActionManifests, + ...collectionManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts index 3ee1d14e58..b2d2f26593 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts @@ -1,3 +1,4 @@ -export * from './stylesheet.repository.js'; +export * from './stylesheet-detail.repository.js'; export * from './item/index.js'; export { UMB_STYLESHEET_REPOSITORY_ALIAS } from './manifests.js'; +export { type UmbStylesheetDetailStore, UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts index 184a4de42b..b215262e51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetRepository } from './stylesheet.repository.js'; +import { UmbStylesheetRepository } from './stylesheet-detail.repository.js'; import { manifests as itemManifests } from './item/manifests.js'; import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts new file mode 100644 index 0000000000..58c7b8136e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts @@ -0,0 +1 @@ +export { UmbStylesheetRichTextRuleRepository } from './stylesheet-rich-text-rule.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts new file mode 100644 index 0000000000..3fa545d1f9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts @@ -0,0 +1,43 @@ +import { UmbStylesheetRichTextRuleServerDataSource } from './stylesheet-rich-text-rule.server.data-source.js'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import { + ExtractRichTextStylesheetRulesRequestModel, + InterpolateRichTextStylesheetRequestModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export class UmbStylesheetRichTextRuleRepository extends UmbRepositoryBase { + #dataSource; + + constructor(host: UmbControllerHost) { + super(host); + + this.#dataSource = new UmbStylesheetRichTextRuleServerDataSource(host); + } + + requestStylesheetRules(path: string) { + return this.#dataSource.getStylesheetRichTextRules(path); + } + + /** + * Existing content + array of rules => new content string + * + * @param {InterpolateRichTextStylesheetRequestModel} data + * @return {*} {Promise>} + * @memberof UmbStylesheetRepository + */ + interpolateStylesheetRules(data: InterpolateRichTextStylesheetRequestModel) { + return this.#dataSource.interpolateStylesheetRules(data); + } + + /** + * content string => array of rules + * + * @param {ExtractRichTextStylesheetRulesRequestModel} data + * @return {*} + * @memberof UmbStylesheetRepository + */ + extractStylesheetRules(data: ExtractRichTextStylesheetRulesRequestModel) { + return this.#dataSource.extractStylesheetRules(data); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts new file mode 100644 index 0000000000..95ddcba889 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts @@ -0,0 +1,64 @@ +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { + ExtractRichTextStylesheetRulesRequestModel, + InterpolateRichTextStylesheetRequestModel, + StylesheetResource, +} from '@umbraco-cms/backoffice/backend-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for the Stylesheet rich text rules that fetches data from the server + * @export + * @class UmbStylesheetRichTextRuleServerDataSource + */ +export class UmbStylesheetRichTextRuleServerDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbStylesheetRichTextRuleServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbStylesheetRichTextRuleServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Get's the rich text rules for a stylesheet + * + * @param {string} path + * @return {*} + * @memberof UmbStylesheetRichTextRuleServerDataSource + */ + getStylesheetRichTextRules(path: string) { + return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetRichTextRules({ path })); + } + + /** + * Extracts the rich text rules from a stylesheet string. In simple words: takes a stylesheet string and returns a array of rules. + * + * @param {ExtractRichTextStylesheetRulesRequestModel} data + * @return {*} + * @memberof UmbStylesheetRichTextRuleServerDataSource + */ + extractStylesheetRules(data: ExtractRichTextStylesheetRulesRequestModel) { + return tryExecuteAndNotify( + this.#host, + StylesheetResource.postStylesheetRichTextExtractRules({ requestBody: data }), + ); + } + + /** + * Interpolates the rich text rules from a stylesheet string. In simple words: takes a array of rules and existing content. Returns new content with the rules applied. + * + * @param {InterpolateRichTextStylesheetRequestModel} data + * @return {*} + * @memberof UmbStylesheetRichTextRuleServerDataSource + */ + interpolateStylesheetRules(data: InterpolateRichTextStylesheetRequestModel) { + return tryExecuteAndNotify( + this.#host, + StylesheetResource.postStylesheetRichTextInterpolateRules({ requestBody: data }), + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts deleted file mode 100644 index 6e2f5d6201..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/sources/stylesheet.server.data.ts +++ /dev/null @@ -1,137 +0,0 @@ -import type { UmbStylesheetDetailModel } from '../../index.js'; -import { DataSourceResponse, UmbDataSource } from '@umbraco-cms/backoffice/repository'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { - CreateStylesheetRequestModel, - ExtractRichTextStylesheetRulesRequestModel, - ExtractRichTextStylesheetRulesResponseModel, - InterpolateRichTextStylesheetRequestModel, - InterpolateRichTextStylesheetResponseModel, - RichTextStylesheetRulesResponseModel, - StylesheetResource, - UpdateStylesheetRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for the Stylesheet that fetches data from the server - * @export - * @class UmbStylesheetServerDataSource - * @implements {UmbStylesheetServerDataSource} - */ -export class UmbStylesheetServerDataSource - implements - UmbDataSource -{ - #host: UmbControllerHost; - - /** - * Creates an instance of UmbStylesheetServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbStylesheetServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - createScaffold(): any { - throw new Error('Method not implemented.'); - } - - /** - * Fetches a Stylesheet with the given path from the server - * @param {string} path - * @return {*} - * @memberof UmbStylesheetServerDataSource - */ - async read(path: string) { - if (!path) throw new Error('Path is missing'); - return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheet({ path })); - } - - /** - * Fetches all stylesheets from the server - * @return {*} - * @memberof UmbStylesheetServerDataSource - */ - async getAll(skip: number = 0, take: number = 9999) { - return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetAll({ skip, take })); - } - - /** - * Creates a new Stylesheet - * - * @param {CreateStylesheetRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetServerDataSource - */ - create(data: CreateStylesheetRequestModel) { - return tryExecuteAndNotify(this.#host, StylesheetResource.postStylesheet({ requestBody: data })); - } - /** - * Updates an existing Stylesheet - * - * @param {UmbStylesheetDetailModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetServerDataSource - */ - update(path: string, data: UpdateStylesheetRequestModel) { - return tryExecuteAndNotify( - this.#host, - StylesheetResource.putStylesheet({ - requestBody: data, - }), - ); - } - /** - * Deletes a Stylesheet. - * - * @param {string} path - * @return {*} {Promise} - * @memberof UmbStylesheetServerDataSource - */ - delete(path: string) { - return tryExecuteAndNotify(this.#host, StylesheetResource.deleteStylesheet({ path })); - } - /** - * Get's the rich text rules for a stylesheet - * - * @param {string} path - * @return {*} {(Promise>)} - * @memberof UmbStylesheetServerDataSource - */ - getStylesheetRichTextRules( - path: string, - ): Promise> { - return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetRichTextRules({ path })); - } - /** - * Extracts the rich text rules from a stylesheet string. In simple words: takes a stylesheet string and returns a array of rules. - * - * @param {ExtractRichTextStylesheetRulesRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetServerDataSource - */ - postStylesheetRichTextExtractRules( - data: ExtractRichTextStylesheetRulesRequestModel, - ): Promise> { - return tryExecuteAndNotify( - this.#host, - StylesheetResource.postStylesheetRichTextExtractRules({ requestBody: data }), - ); - } - /** - * Interpolates the rich text rules from a stylesheet string. In simple words: takes a array of rules and existing content. Returns new content with the rules applied. - * - * @param {InterpolateRichTextStylesheetRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetServerDataSource - */ - postStylesheetRichTextInterpolateRules( - data: InterpolateRichTextStylesheetRequestModel, - ): Promise> { - return tryExecuteAndNotify( - this.#host, - StylesheetResource.postStylesheetRichTextInterpolateRules({ requestBody: data }), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts new file mode 100644 index 0000000000..9f06f1dffa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts @@ -0,0 +1,20 @@ +import { UmbStylesheetDetailModel } from '../types.js'; +import { UmbStylesheetTreeRepository } from '../tree/index.js'; +import { UmbStylesheetDetailServerDataSource } from './stylesheet-detail.server.data-source.js'; +import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; +import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; + +export class UmbStylesheetRepository extends UmbDetailRepositoryBase { + #dataSource; + + // TODO: temp solution until it is automated + #treeRepository = new UmbStylesheetTreeRepository(this); + + constructor(host: UmbControllerHostElement) { + super(host, UmbStylesheetDetailServerDataSource, UMB_STYLESHEET_DETAIL_STORE_CONTEXT); + + // TODO: figure out how spin up get the correct data source + this.#dataSource = new UmbStylesheetDetailServerDataSource(this); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts new file mode 100644 index 0000000000..27c5ef74a8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts @@ -0,0 +1,137 @@ +import { UmbStylesheetDetailModel } from '../types.js'; +import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../utils/index.js'; +import { + CreateStylesheetRequestModel, + StylesheetResource, + UpdateTextFileViewModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource { + #host: UmbControllerHost; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + + constructor(host: UmbControllerHost) { + this.#host = host; + } + + async createScaffold(parentUnique: string | null) { + const data: UmbStylesheetDetailModel = { + entityType: UMB_STYLESHEET_ENTITY_TYPE, + parentUnique, + unique: '', + path: '', + name: '', + content: '', + }; + + return { data }; + } + + async create(stylesheet: UmbStylesheetDetailModel) { + if (!stylesheet) throw new Error('Data is missing'); + if (!stylesheet.parentUnique === undefined) throw new Error('Parent Unique is missing'); + if (!stylesheet.name) throw new Error('Name is missing'); + + const parentPath = this.#serverPathUniqueSerializer.toServerPath(stylesheet.parentUnique); + + // TODO: make data mapper to prevent errors + const requestBody: CreateStylesheetRequestModel = { + parentPath, + name: appendFileExtensionIfNeeded(stylesheet.name, '.js'), + content: stylesheet.content, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + StylesheetResource.postStylesheet({ + requestBody, + }), + ); + + if (error) { + return { error }; + } + + // We have to fetch the data again. The server can have modified the data after creation + // TODO: revisit when location header is added + const createdStylesheetPath = parentPath ? parentPath + '/' + requestBody.name : requestBody.name; + const createdStylesheetUnique = this.#serverPathUniqueSerializer.toUnique(createdStylesheetPath); + + return this.read(createdStylesheetUnique); + } + + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const serverPath = this.#serverPathUniqueSerializer.toServerPath(unique); + + const { data, error } = await tryExecuteAndNotify( + this.#host, + StylesheetResource.getStylesheet({ path: serverPath }), + ); + + if (error || !data) { + return { error }; + } + + // TODO: make data mapper to prevent errors + const stylesheet: UmbStylesheetDetailModel = { + entityType: UMB_STYLESHEET_ENTITY_TYPE, + unique: this.#serverPathUniqueSerializer.toUnique(data.path), + parentUnique: this.#serverPathUniqueSerializer.toParentUnique(data.path), + path: data.path, + name: data.name, + content: data.content, + }; + + return { data: stylesheet }; + } + + async update(data: UmbStylesheetDetailModel) { + if (!data.unique) throw new Error('Unique is missing'); + + const existingPath = this.#serverPathUniqueSerializer.toServerPath(data.unique); + + // TODO: make data mapper to prevent errors + const requestBody: UpdateTextFileViewModelBaseModel = { + existingPath, + name: data.name, + content: data.content, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + StylesheetResource.putStylesheet({ + requestBody, + }), + ); + + if (error) { + return { error }; + } + + // TODO: should we get this as part of the PUT response? + const parentPath = this.#serverPathUniqueSerializer.toServerPath(data.parentUnique); + const newFilePath = parentPath + '/' + requestBody.name; + const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newFilePath); + // We have to fetch the data type again. The server can have modified the data after update + return this.read(newPathUnique); + } + + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + + return tryExecuteAndNotify( + this.#host, + StylesheetResource.deleteStylesheet({ + path, + }), + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts new file mode 100644 index 0000000000..11a4b253e7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts @@ -0,0 +1,25 @@ +import { UmbStylesheetDetailModel } from '../types.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; + +/** + * @export + * @class UmbStylesheetDetailStore + * @extends {UmbStoreBase} + * @description - Data Store for stylesheet detail + */ +export class UmbStylesheetDetailStore extends UmbDetailStoreBase { + /** + * Creates an instance of UmbStylesheetDetailStore. + * @param {UmbControllerHostInterface} host + * @memberof UmbStylesheetDetailStore + */ + constructor(host: UmbControllerHostElement) { + super(host, UMB_STYLESHEET_DETAIL_STORE_CONTEXT.toString()); + } +} + +export const UMB_STYLESHEET_DETAIL_STORE_CONTEXT = new UmbContextToken( + 'UmbStylesheetDetailStore', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts deleted file mode 100644 index 37b127e334..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { UmbStylesheetDetailModel } from '../index.js'; -import { UmbStylesheetTreeRepository } from '../tree/index.js'; -import { UmbStylesheetServerDataSource } from './sources/stylesheet.server.data.js'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { - DataSourceResponse, - UmbDataSourceErrorResponse, - UmbDetailRepository, -} from '@umbraco-cms/backoffice/repository'; -import { - CreateStylesheetRequestModel, - ExtractRichTextStylesheetRulesRequestModel, - ExtractRichTextStylesheetRulesResponseModel, - InterpolateRichTextStylesheetRequestModel, - InterpolateRichTextStylesheetResponseModel, - PagedStylesheetOverviewResponseModel, - RichTextStylesheetRulesResponseModel, - UpdateStylesheetRequestModel, - UpdateTextFileViewModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; - -export class UmbStylesheetRepository - extends UmbBaseController - implements - UmbDetailRepository, - UmbApi -{ - #dataSource; - - // TODO: temp solution until it is automated - #treeRepository = new UmbStylesheetTreeRepository(this); - - constructor(host: UmbControllerHostElement) { - super(host); - - // TODO: figure out how spin up get the correct data source - this.#dataSource = new UmbStylesheetServerDataSource(this); - } - - //#region DETAIL: - - createScaffold(): any { - throw new Error('Method not implemented.'); - } - - async requestById(id: string) { - if (!id) throw new Error('id is missing'); - return this.#dataSource.read(id); - } - - byId(id: string): any { - throw new Error('Method not implemented.'); - } - - async create(data: CreateStylesheetRequestModel) { - const promise = this.#dataSource.create(data); - await promise; - this.#treeRepository.requestTreeItemsOf(data.parentPath ? data.parentPath : null); - return promise; - } - - save(id: string, data: UpdateTextFileViewModelBaseModel) { - return this.#dataSource.update(id, data); - } - - delete(id: string): Promise { - const promise = this.#dataSource.delete(id); - const parentPath = id.substring(0, id.lastIndexOf('/')); - this.#treeRepository.requestTreeItemsOf(parentPath ? parentPath : null); - return promise; - } - - async getAll(skip?: number, take?: number): Promise> { - return this.#dataSource.getAll(skip, take); - } - - getStylesheetRules( - path: string, - ): Promise> { - return this.#dataSource.getStylesheetRichTextRules(path); - } - /** - * Existing content + array of rules => new content string - * - * @param {InterpolateRichTextStylesheetRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetRepository - */ - interpolateStylesheetRules( - data: InterpolateRichTextStylesheetRequestModel, - ): Promise> { - return this.#dataSource.postStylesheetRichTextInterpolateRules(data); - } - /** - * content string => array of rules - * - * @param {ExtractRichTextStylesheetRulesRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetRepository - */ - extractStylesheetRules( - data: ExtractRichTextStylesheetRulesRequestModel, - ): Promise> { - return this.#dataSource.postStylesheetRichTextExtractRules(data); - } - - //#endregion -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts new file mode 100644 index 0000000000..93c50018d2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts @@ -0,0 +1,10 @@ +import { UmbStylesheetEntityType } from './entity.js'; + +export interface UmbStylesheetDetailModel { + entityType: UmbStylesheetEntityType; + unique: string; + parentUnique: string | null; + path: string; + name: string; + content: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index ee6d895de2..d03dc39c10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -1,5 +1,5 @@ -import { UmbStylesheetRepository } from '../repository/stylesheet.repository.js'; -import type { UmbStylesheetDetailModel } from '../index.js'; +import { UmbStylesheetRepository } from '../repository/stylesheet-detail.repository.js'; +import type { UmbStylesheetDetailModel } from '../types.js'; import { type UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, From 8b69f508556f03d07ada6a21edd2e15651d8ce01 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 15:55:01 +0100 Subject: [PATCH 143/786] use unique in workspace set up --- .../workspace/script-workspace.element.ts | 2 +- .../workspace/stylesheet-workspace.element.ts | 34 ++++++------------- 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts index 2aced0f4a5..52788ddf4b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts @@ -16,7 +16,7 @@ export class UmbScriptWorkspaceElement extends UmbLitElement { { path: 'create/:parentUnique', component: this.#createElement, - setup: async (_component: PageComponent, info: IRoutingInfo) => { + setup: async (component: PageComponent, info: IRoutingInfo) => { const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; this.#workspaceContext.create(parentUnique); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts index f325ae84d5..e9d2276152 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.element.ts @@ -2,10 +2,9 @@ import { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js import { UmbStylesheetWorkspaceEditorElement } from './stylesheet-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; +import type { IRoutingInfo, PageComponent, UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import { decodeFilePath } from '@umbraco-cms/backoffice/utils'; @customElement('umb-stylesheet-workspace') export class UmbStylesheetWorkspaceElement extends UmbLitElement { @@ -15,13 +14,11 @@ export class UmbStylesheetWorkspaceElement extends UmbLitElement { @state() _routes: UmbRoute[] = [ { - path: 'create/:path', + path: 'create/:parentUnique', component: this.#createElement, - setup: async (_component, info) => { - const path = info.match.params.path === 'null' ? null : info.match.params.path; - const serverPath = path === null ? null : decodeFilePath(path); - await this.#workspaceContext.create(serverPath); - await this.#workspaceContext.setRules([]); + setup: async (component: PageComponent, info: IRoutingInfo) => { + const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; + await this.#workspaceContext.create(parentUnique); new UmbWorkspaceIsNewRedirectController( this, @@ -31,13 +28,11 @@ export class UmbStylesheetWorkspaceElement extends UmbLitElement { }, }, { - path: 'edit/:path', + path: 'edit/:unique', component: this.#createElement, - setup: (_component, info) => { - this.removeControllerByAlias('_observeIsNew'); - const path = info.match.params.path; - const serverPath = decodeFilePath(path); - this.#workspaceContext.load(serverPath); + setup: (component: PageComponent, info: IRoutingInfo) => { + const unique = info.match.params.unique; + this.#workspaceContext.load(unique); }, }, ]; @@ -46,16 +41,7 @@ export class UmbStylesheetWorkspaceElement extends UmbLitElement { return html` `; } - static styles = [ - UmbTextStyles, - css` - :host { - display: block; - width: 100%; - height: 100%; - } - `, - ]; + static styles = [UmbTextStyles, css``]; } export default UmbStylesheetWorkspaceElement; From 4b817ee21dc305d46ded244239d95e19fb351dfd Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 15:56:29 +0100 Subject: [PATCH 144/786] add detail to repository name --- .../components/input-tiny-mce/input-tiny-mce.element.ts | 6 +++--- ...-editor-ui-tiny-mce-stylesheets-configuration.element.ts | 4 ++-- .../packages/templating/stylesheets/repository/manifests.ts | 4 ++-- .../stylesheets/repository/stylesheet-detail.repository.ts | 2 +- .../stylesheets/workspace/stylesheet-workspace.context.ts | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index d43c6320db..80405bb631 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -27,7 +27,7 @@ import { UmbMediaHelper } from '@umbraco-cms/backoffice/utils'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; -import { UmbStylesheetRepository } from '@umbraco-cms/backoffice/stylesheet'; +import { UmbStylesheetDetailRepository } from '@umbraco-cms/backoffice/stylesheet'; // TODO => integrate macro picker, update stylesheet fetch when backend CLI exists (ref tinymce.service.js in existing backoffice) @customElement('umb-input-tiny-mce') @@ -43,7 +43,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { #currentUserContext?: typeof UMB_CURRENT_USER_CONTEXT.TYPE; #plugins: Array UmbTinyMcePluginBase> = []; #editorRef?: Editor | null = null; - #stylesheetRepository?: UmbStylesheetRepository; + #stylesheetRepository?: UmbStylesheetDetailRepository; #serverUrl?: string; protected getFormElement() { @@ -60,7 +60,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { this.#serverUrl = instance.getServerUrl(); }); - this.#stylesheetRepository = new UmbStylesheetRepository(this); + this.#stylesheetRepository = new UmbStylesheetDetailRepository(this); // TODO => this breaks tests, removing for now will ignore user language // and fall back to tinymce default language diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts index b40d99490e..931c3074d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts @@ -1,7 +1,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbStylesheetRepository } from '@umbraco-cms/backoffice/stylesheet'; +import { UmbStylesheetDetailRepository } from '@umbraco-cms/backoffice/stylesheet'; import { StylesheetOverviewResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -27,7 +27,7 @@ export class UmbPropertyEditorUITinyMceStylesheetsConfigurationElement constructor() { super(); - this.#repository = new UmbStylesheetRepository(this); + this.#repository = new UmbStylesheetDetailRepository(this); this.#getAllStylesheets(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts index b215262e51..30b573d5d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetRepository } from './stylesheet-detail.repository.js'; +import { UmbStylesheetDetailRepository } from './stylesheet-detail.repository.js'; import { manifests as itemManifests } from './item/manifests.js'; import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; @@ -8,7 +8,7 @@ const repository: ManifestRepository = { type: 'repository', alias: UMB_STYLESHEET_REPOSITORY_ALIAS, name: 'Stylesheet Repository', - api: UmbStylesheetRepository, + api: UmbStylesheetDetailRepository, }; export const manifests = [repository, ...itemManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts index 9f06f1dffa..df2a6bd219 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts @@ -5,7 +5,7 @@ import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.j import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; -export class UmbStylesheetRepository extends UmbDetailRepositoryBase { +export class UmbStylesheetDetailRepository extends UmbDetailRepositoryBase { #dataSource; // TODO: temp solution until it is automated diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index d03dc39c10..7a5941d0fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetRepository } from '../repository/stylesheet-detail.repository.js'; +import { UmbStylesheetDetailRepository } from '../repository/stylesheet-detail.repository.js'; import type { UmbStylesheetDetailModel } from '../types.js'; import { type UmbSaveableWorkspaceContextInterface, @@ -13,7 +13,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export type RichTextRuleModelSortable = RichTextRuleModel & { sortOrder?: number }; export class UmbStylesheetWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { #data = new UmbObjectState(undefined); From 67eb232fd225d619a9f69b2e9a2d0658c51afee3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 15:57:12 +0100 Subject: [PATCH 145/786] remove unused --- .../repository/stylesheet-detail.repository.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts index df2a6bd219..09ed2417b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts @@ -1,20 +1,11 @@ import { UmbStylesheetDetailModel } from '../types.js'; -import { UmbStylesheetTreeRepository } from '../tree/index.js'; import { UmbStylesheetDetailServerDataSource } from './stylesheet-detail.server.data-source.js'; import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbStylesheetDetailRepository extends UmbDetailRepositoryBase { - #dataSource; - - // TODO: temp solution until it is automated - #treeRepository = new UmbStylesheetTreeRepository(this); - constructor(host: UmbControllerHostElement) { super(host, UmbStylesheetDetailServerDataSource, UMB_STYLESHEET_DETAIL_STORE_CONTEXT); - - // TODO: figure out how spin up get the correct data source - this.#dataSource = new UmbStylesheetDetailServerDataSource(this); } } From 1a47e76070698a75f36146b0d20110c3bcc12339 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:10:14 +0100 Subject: [PATCH 146/786] update stylesheet workspace to match repository changes --- .../workspace/script-workspace.context.ts | 35 ++--- .../stylesheets/workspace/manifests.ts | 4 +- .../workspace/stylesheet-workspace.context.ts | 135 +++++++++--------- 3 files changed, 87 insertions(+), 87 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 24a907ffcd..8e9d337e1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -5,19 +5,20 @@ import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observa import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; +import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< UmbScriptDetailRepository, UmbScriptDetailModel > { #data = new UmbObjectState(undefined); - data = this.#data.asObservable(); - name = this.#data.asObservablePart((data) => data?.name); - content = this.#data.asObservablePart((data) => data?.content); - path = this.#data.asObservablePart((data) => data?.path); + readonly data = this.#data.asObservable(); + readonly name = this.#data.asObservablePart((data) => data?.name); + readonly content = this.#data.asObservablePart((data) => data?.content); + readonly path = this.#data.asObservablePart((data) => data?.path); #isCodeEditorReady = new UmbBooleanState(false); - isCodeEditorReady = this.#isCodeEditorReady.asObservable(); + readonly isCodeEditorReady = this.#isCodeEditorReady.asObservable(); constructor(host: UmbControllerHostElement) { super(host, UMB_SCRIPT_WORKSPACE_ALIAS, new UmbScriptDetailRepository(host)); @@ -33,6 +34,18 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } } + getEntityType(): string { + const data = this.getData(); + if (!data) throw new Error('Data is missing'); + return data.entityType; + } + + getEntityId() { + const data = this.getData(); + if (!data) throw new Error('Data is missing'); + return data.unique; + } + getData() { return this.#data.getValue(); } @@ -62,12 +75,6 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } } - getEntityId() { - const data = this.getData(); - if (!data) throw new Error('Data is missing'); - return data.unique; - } - async save() { if (!this.#data.value) throw new Error('Data is missing'); @@ -90,10 +97,4 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< destroy(): void { throw new Error('Method not implemented.'); } - - getEntityType(): string { - const data = this.getData(); - if (!data) throw new Error('Data is missing'); - return data.entityType; - } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts index 8595261447..bf752fd29f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts @@ -6,9 +6,11 @@ import type { } from '@umbraco-cms/backoffice/extension-registry'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; +export const UMB_STYLESHEET_WORKSPACE_ALIAS = 'Umb.Workspace.StyleSheet'; + const workspace: ManifestWorkspace = { type: 'workspace', - alias: 'Umb.Workspace.StyleSheet', + alias: UMB_STYLESHEET_WORKSPACE_ALIAS, name: 'Stylesheet Workspace', js: () => import('./stylesheet-workspace.element.js'), meta: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index 7a5941d0fd..3f73f18711 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -1,5 +1,7 @@ import { UmbStylesheetDetailRepository } from '../repository/stylesheet-detail.repository.js'; import type { UmbStylesheetDetailModel } from '../types.js'; +import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; +import { UMB_STYLESHEET_WORKSPACE_ALIAS } from './manifests.js'; import { type UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, @@ -7,7 +9,7 @@ import { import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; -import type { RichTextRuleModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { RichTextRuleModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export type RichTextRuleModelSortable = RichTextRuleModel & { sortOrder?: number }; @@ -17,18 +19,20 @@ export class UmbStylesheetWorkspaceContext implements UmbSaveableWorkspaceContextInterface { #data = new UmbObjectState(undefined); - #rules = new UmbArrayState([], (rule) => rule.name); readonly data = this.#data.asObservable(); - readonly rules = this.#rules.asObservable(); readonly name = this.#data.asObservablePart((data) => data?.name); readonly content = this.#data.asObservablePart((data) => data?.content); readonly path = this.#data.asObservablePart((data) => data?.path); + #rules = new UmbArrayState([], (rule) => rule.name); + readonly rules = this.#rules.asObservable(); + #isCodeEditorReady = new UmbBooleanState(false); readonly isCodeEditorReady = this.#isCodeEditorReady.asObservable(); constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.StyleSheet', new UmbStylesheetRepository(host)); + super(host, UMB_STYLESHEET_WORKSPACE_ALIAS, new UmbStylesheetDetailRepository(host)); + // TODO: sort close to the server this.#rules.sortBy((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)); this.#loadCodeEditor(); } @@ -43,36 +47,21 @@ export class UmbStylesheetWorkspaceContext } getEntityType(): string { - return 'stylesheet'; + const data = this.getData(); + if (!data) throw new Error('Data is missing'); + return data.entityType; } getEntityId() { - const path = this.getData()?.path?.replace(/\//g, '%2F'); - const name = this.getData()?.name; - - // Note: %2F is a slash (/) - return path && name ? `${path}%2F${name}` : name || ''; + const data = this.getData(); + if (!data) throw new Error('Data is missing'); + return data.unique; } getData() { return this.#data.getValue(); } - getRules() { - return this.#rules.getValue(); - } - - updateRule(unique: string, rule: RichTextRuleModelSortable) { - this.#rules.updateOne(unique, rule); - this.sendRulesGetContent(); - } - - setRules(rules: RichTextRuleModelSortable[]) { - const newRules = rules.map((r, i) => ({ ...r, sortOrder: i })); - this.#rules.next(newRules); - this.sendRulesGetContent(); - } - setName(value: string) { this.#data.update({ name: value }); } @@ -81,7 +70,15 @@ export class UmbStylesheetWorkspaceContext this.#data.update({ content: value }); } - async load(path: string) { + async load(unique: string) { + const { data } = await this.repository.requestByUnique(unique); + + if (data) { + this.setIsNew(false); + this.#data.next(data); + } + + /* const [{ data }, rules] = await Promise.all([ this.repository.requestById(path), this.repository.getStylesheetRules(path), @@ -100,8 +97,38 @@ export class UmbStylesheetWorkspaceContext } else { this.#rules.next([]); } + */ } + async create(parentUnique: string | null) { + const { data } = await this.repository.createScaffold(parentUnique); + + if (data) { + this.setIsNew(true); + this.#data.next(data); + } + } + + public async save() { + if (!this.#data.value) throw new Error('Data is missing'); + + let newData = undefined; + + if (this.getIsNew()) { + const { data } = await this.repository.create(this.#data.value); + newData = data; + } else { + const { data } = await this.repository.save(this.#data.value); + newData = data; + } + + if (newData) { + this.#data.next(newData); + this.saveComplete(newData); + } + } + + /* async sendRulesGetContent() { const requestBody = { content: this.getData()?.content, @@ -130,52 +157,22 @@ export class UmbStylesheetWorkspaceContext return true; } - public async save() { - const stylesheet = this.getData(); - - if (!stylesheet) { - return Promise.reject('Something went wrong, there is no data for partial view you want to save...'); - } - - if (this.getIsNew()) { - const createRequestBody = { - name: stylesheet.name, - content: stylesheet.content, - parentPath: stylesheet.path ?? '', - }; - - const { error } = await this.repository.create(createRequestBody); - if (!error) { - this.setIsNew(false); - } - return Promise.resolve(); - } else { - if (!stylesheet.path) return Promise.reject('There is no path'); - const updateRequestBody: UpdateStylesheetRequestModel = { - name: stylesheet.name, - existingPath: stylesheet.path, - content: stylesheet.content, - }; - - const { error } = await this.repository.save(stylesheet.path, updateRequestBody); - if (!error) { - //TODO Update the URL to the new name - } - return Promise.resolve(); - } + getRules() { + return this.#rules.getValue(); } - async create(parentKey: string | null) { - const newStylesheet = { - name: '', - path: parentKey ?? '', - content: '', - }; - - this.#data.next(newStylesheet); - this.setIsNew(true); + updateRule(unique: string, rule: RichTextRuleModelSortable) { + this.#rules.updateOne(unique, rule); + this.sendRulesGetContent(); } + setRules(rules: RichTextRuleModelSortable[]) { + const newRules = rules.map((r, i) => ({ ...r, sortOrder: i })); + this.#rules.next(newRules); + this.sendRulesGetContent(); + } + */ + public destroy(): void { this.#data.destroy(); } @@ -187,5 +184,5 @@ export const UMB_STYLESHEET_WORKSPACE_CONTEXT = new UmbContextToken< >( 'UmbWorkspaceContext', undefined, - (context): context is UmbStylesheetWorkspaceContext => context.getEntityType?.() === 'stylesheet', + (context): context is UmbStylesheetWorkspaceContext => context.getEntityType?.() === UMB_STYLESHEET_ENTITY_TYPE, ); From 9a2008924941d14b9370df8f105d7177d9303cfc Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:17:24 +0100 Subject: [PATCH 147/786] register stylesheet detail store --- .../repository/detail/detail-repository-base.ts | 2 +- .../stylesheets/repository/manifests.ts | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 94c82ef7d6..1dae49d5eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -62,7 +62,7 @@ export abstract class UmbDetailRepositoryBase< * @memberof UmbDetailRepositoryBase */ async requestByUnique(unique: string) { - if (!unique) throw new Error('Key is missing'); + if (!unique) throw new Error('Unique is missing'); await this.#init; const { data, error } = await this.#detailSource.read(unique); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts index 30b573d5d4..7a7e8368e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts @@ -1,14 +1,23 @@ import { UmbStylesheetDetailRepository } from './stylesheet-detail.repository.js'; import { manifests as itemManifests } from './item/manifests.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbStylesheetDetailStore } from './stylesheet-detail.store.js'; +import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; -export const UMB_STYLESHEET_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet'; +export const UMB_STYLESHEET_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Detail'; +export const UMB_STYLESHEET_DETAIL_STORE_ALIAS = 'Umb.Store.Stylesheet.Detail'; const repository: ManifestRepository = { type: 'repository', alias: UMB_STYLESHEET_REPOSITORY_ALIAS, - name: 'Stylesheet Repository', + name: 'Stylesheet Detail Repository', api: UmbStylesheetDetailRepository, }; -export const manifests = [repository, ...itemManifests]; +const store: ManifestStore = { + type: 'store', + alias: UMB_STYLESHEET_DETAIL_STORE_ALIAS, + name: 'Stylesheet Detail Store', + api: UmbStylesheetDetailStore, +}; + +export const manifests = [repository, store, ...itemManifests]; From 52d499ca0df276c7b0b9ba7d78da3b975f891d73 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:20:53 +0100 Subject: [PATCH 148/786] align view naming --- .../stylesheet-workspace-view-code-editor.element.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-workspace-view-code-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-workspace-view-code-editor.element.ts index 7232637388..59e6a37464 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-workspace-view-code-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-workspace-view-code-editor.element.ts @@ -4,8 +4,8 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -@customElement('umb-stylesheet-workspace-view-code-editor') -export class UmbStylesheetWorkspaceViewCodeEditorElement extends UmbLitElement { +@customElement('umb-stylesheet-code-editor-workspace-view') +export class UmbStylesheetCodeEditorWorkspaceViewElement extends UmbLitElement { @state() private _content?: string | null = ''; @@ -93,10 +93,10 @@ export class UmbStylesheetWorkspaceViewCodeEditorElement extends UmbLitElement { ]; } -export default UmbStylesheetWorkspaceViewCodeEditorElement; +export default UmbStylesheetCodeEditorWorkspaceViewElement; declare global { interface HTMLElementTagNameMap { - 'umb-stylesheet-workspace-view-code-editor': UmbStylesheetWorkspaceViewCodeEditorElement; + 'umb-stylesheet-code-editor-workspace-view': UmbStylesheetCodeEditorWorkspaceViewElement; } } From 12f8e5904d25ae8928ad895d2b98611fd3923747 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:21:53 +0100 Subject: [PATCH 149/786] update file name --- .../src/packages/templating/stylesheets/workspace/manifests.ts | 2 +- ...ment.ts => stylesheet-code-editor-workspace-view.element.ts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/{stylesheet-workspace-view-code-editor.element.ts => stylesheet-code-editor-workspace-view.element.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts index bf752fd29f..c7103a5622 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts @@ -23,7 +23,7 @@ const workspaceViews: Array = [ type: 'workspaceView', alias: 'Umb.WorkspaceView.Stylesheet.CodeEditor', name: 'Stylesheet Workspace Code Editor View', - js: () => import('./views/code-editor/stylesheet-workspace-view-code-editor.element.js'), + js: () => import('./views/code-editor/stylesheet-code-editor-workspace-view.element.js'), weight: 700, meta: { label: 'Code', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-workspace-view-code-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-workspace-view-code-editor.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts From 145544671a12951000439d6f84cdd05ee245e272 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:23:35 +0100 Subject: [PATCH 150/786] update file name --- ...ent.ts => stylesheet-rich-text-rule-workspace-view.element.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/{stylesheet-workspace-view-rich-text-editor.element.ts => stylesheet-rich-text-rule-workspace-view.element.ts} (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts From 09e380f11674d5567c7acccd1bbf1b5744b910f7 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:28:45 +0100 Subject: [PATCH 151/786] rename element --- .../stylesheet-rich-text-rule-workspace-view.element.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts index 005410cbcb..995ea9137d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts @@ -34,8 +34,8 @@ const SORTER_CONFIG: UmbSorterConfig = { containerSelector: '#rules-container', }; -@customElement('umb-stylesheet-workspace-view-rich-text-editor') -export class UmbStylesheetWorkspaceViewRichTextEditorElement extends UmbLitElement { +@customElement('umb-stylesheet-rich-text-rule-workspace-view') +export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement { @state() _rules: RichTextRuleModelSortable[] = []; @@ -140,10 +140,10 @@ export class UmbStylesheetWorkspaceViewRichTextEditorElement extends UmbLitEleme ]; } -export default UmbStylesheetWorkspaceViewRichTextEditorElement; +export default UmbStylesheetRichTextRuleWorkspaceViewElement; declare global { interface HTMLElementTagNameMap { - 'umb-stylesheet-workspace-view-rich-text-editor': UmbStylesheetWorkspaceViewRichTextEditorElement; + 'umb-stylesheet-workspace-view-rich-text-editor': UmbStylesheetRichTextRuleWorkspaceViewElement; } } From 439ef1c439c19d375b28dc5ef436bf7c5a275f59 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:29:02 +0100 Subject: [PATCH 152/786] update imports --- .../src/packages/templating/stylesheets/workspace/manifests.ts | 2 +- .../stylesheet-workspace-view-rich-text-editor-rule.element.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts index c7103a5622..6814d36df8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts @@ -41,7 +41,7 @@ const workspaceViews: Array = [ type: 'workspaceView', alias: 'Umb.WorkspaceView.Stylesheet.RichTextEditor', name: 'Stylesheet Workspace Rich Text Editor View', - js: () => import('./views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.js'), + js: () => import('./views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.js'), weight: 800, meta: { label: 'Rich Text Editor', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-rule.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-rule.element.ts index 6893cbbbe2..607dd0d60a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-rule.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-rule.element.ts @@ -1,5 +1,5 @@ import { UMB_STYLESHEET_WORKSPACE_CONTEXT, UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; -import { UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL } from './stylesheet-workspace-view-rich-text-editor.element.js'; +import { UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL } from './stylesheet-rich-text-rule-workspace-view.element.js'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { RichTextRuleModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; From 89897aa3004171ae1f5922116b3181e0f531200b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 16:31:57 +0100 Subject: [PATCH 153/786] rename folder --- .../packages/templating/stylesheets/workspace/manifests.ts | 4 ++-- .../stylesheet-rich-text-rule-workspace-view.element.ts | 0 ...stylesheet-workspace-view-rich-text-editor-rule.element.ts | 0 ...t-workspace-view-rich-text-editor-style-sidebar.element.ts | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/{rich-text-editor => rich-text-rule}/stylesheet-rich-text-rule-workspace-view.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/{rich-text-editor => rich-text-rule}/stylesheet-workspace-view-rich-text-editor-rule.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/{rich-text-editor => rich-text-rule}/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts index 6814d36df8..0f642014dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts @@ -41,7 +41,7 @@ const workspaceViews: Array = [ type: 'workspaceView', alias: 'Umb.WorkspaceView.Stylesheet.RichTextEditor', name: 'Stylesheet Workspace Rich Text Editor View', - js: () => import('./views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.js'), + js: () => import('./views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.js'), weight: 800, meta: { label: 'Rich Text Editor', @@ -84,7 +84,7 @@ const modals: Array = [ type: 'modal', alias: UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR, name: 'Rich text editor style modal', - js: () => import('./views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.js'), + js: () => import('./views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-rich-text-rule-workspace-view.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-rule.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-rule.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-rule.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-rule.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts From 2f195579b0794c5da4cf6bb4dfebfd2a25e6e9ba Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 19:47:03 +0100 Subject: [PATCH 154/786] load rules from new repo --- .../stylesheets/repository/index.ts | 4 +++- .../stylesheet-rich-text-rule.repository.ts | 4 ++-- ...sheet-rich-text-rule.server.data-source.ts | 7 +++++-- .../workspace/stylesheet-workspace.context.ts | 21 ------------------- ...t-rich-text-rule-workspace-view.element.ts | 19 ++++++++++++----- 5 files changed, 24 insertions(+), 31 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts index b2d2f26593..1f4b2e2311 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts @@ -1,4 +1,6 @@ -export * from './stylesheet-detail.repository.js'; +export * from './rich-text-rule/index.js'; export * from './item/index.js'; + +export * from './stylesheet-detail.repository.js'; export { UMB_STYLESHEET_REPOSITORY_ALIAS } from './manifests.js'; export { type UmbStylesheetDetailStore, UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts index 3fa545d1f9..fa06755407 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts @@ -15,8 +15,8 @@ export class UmbStylesheetRichTextRuleRepository extends UmbRepositoryBase { this.#dataSource = new UmbStylesheetRichTextRuleServerDataSource(host); } - requestStylesheetRules(path: string) { - return this.#dataSource.getStylesheetRichTextRules(path); + requestStylesheetRules(unique: string) { + return this.#dataSource.getStylesheetRichTextRules(unique); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts index 95ddcba889..01f4408f6c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts @@ -1,3 +1,4 @@ +import { UmbServerPathUniqueSerializer } from '../../../utils/index.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { ExtractRichTextStylesheetRulesRequestModel, @@ -13,6 +14,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; */ export class UmbStylesheetRichTextRuleServerDataSource { #host: UmbControllerHost; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); /** * Creates an instance of UmbStylesheetRichTextRuleServerDataSource. @@ -26,11 +28,12 @@ export class UmbStylesheetRichTextRuleServerDataSource { /** * Get's the rich text rules for a stylesheet * - * @param {string} path + * @param {string} unique * @return {*} * @memberof UmbStylesheetRichTextRuleServerDataSource */ - getStylesheetRichTextRules(path: string) { + getStylesheetRichTextRules(unique: string) { + const path = this.#serverPathUniqueSerializer.toServerPath(unique); return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetRichTextRules({ path })); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index 3f73f18711..982b3c88aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -77,27 +77,6 @@ export class UmbStylesheetWorkspaceContext this.setIsNew(false); this.#data.next(data); } - - /* - const [{ data }, rules] = await Promise.all([ - this.repository.requestById(path), - this.repository.getStylesheetRules(path), - ]); - - if (data) { - this.setIsNew(false); - this.#data.update(data); - } else { - this.#data.update(undefined); - } - - if (rules.data) { - const x = rules.data.rules?.map((r, i) => ({ ...r, sortOrder: i })) ?? []; - this.#rules.next(x); - } else { - this.#rules.next([]); - } - */ } async create(parentUnique: string | null) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts index 995ea9137d..d60e08bc68 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts @@ -1,5 +1,6 @@ import { RichTextRuleModelSortable, UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; import { UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR } from '../../manifests.js'; +import { UmbStylesheetRichTextRuleRepository } from '../../../repository/rich-text-rule/index.js'; import { StylesheetRichTextEditorStyleModalValue } from './stylesheet-workspace-view-rich-text-editor-style-sidebar.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -42,6 +43,8 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement #context?: UmbStylesheetWorkspaceContext; private _modalContext?: UmbModalManagerContext; + #stylesheetRichTextRuleRepository = new UmbStylesheetRichTextRuleRepository(this); + #sorter = new UmbSorterController(this, { ...SORTER_CONFIG, performItemInsert: ({ item, newIndex }) => { @@ -58,11 +61,8 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { this.#context = workspaceContext as UmbStylesheetWorkspaceContext; - - this.observe(this.#context.rules, (rules) => { - this._rules = rules; - this.#sorter.setModel(this._rules); - }); + const unique = this.#context?.getEntityId(); + this.#setRules(unique); }); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { @@ -70,6 +70,15 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement }); } + async #setRules(unique: string) { + const { data } = await this.#stylesheetRichTextRuleRepository.requestStylesheetRules(unique); + + if (data) { + this._rules = data.rules ?? []; + this.#sorter.setModel(this._rules); + } + } + openModal = (rule: RichTextRuleModelSortable | null = null) => { if (!this._modalContext) throw new Error('Modal context not found'); const modal = this._modalContext.open(UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL, { From 72cbbd462aa4f6ef4d4be87884cbe2c6eaae83be Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Dec 2023 21:58:13 +0100 Subject: [PATCH 155/786] wip add stylesheet-rule-input element + stylesheet-rule-ref element --- .../stylesheets/components/index.ts | 5 + .../stylesheets/components/manifests.ts | 3 + .../stylesheet-rule-input/manifests.ts | 12 ++ .../stylesheet-rule-input.element.ts | 145 ++++++++++++++++++ ...stylesheet-rule-settings-modal.element.ts} | 14 +- .../stylesheet-rule-settings-modal.token.ts | 18 +++ .../stylesheet-rule-ref.element.ts | 21 +++ .../packages/templating/stylesheets/index.ts | 3 + .../templating/stylesheets/manifests.ts | 2 + .../packages/templating/stylesheets/types.ts | 7 + .../stylesheets/workspace/manifests.ts | 15 +- .../workspace/stylesheet-workspace.context.ts | 27 +--- ...heet-code-editor-workspace-view.element.ts | 5 - ...t-rich-text-rule-workspace-view.element.ts | 121 +++------------ 14 files changed, 243 insertions(+), 155 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts rename src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/{workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts => components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts} (88%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts new file mode 100644 index 0000000000..d10ea30039 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts @@ -0,0 +1,5 @@ +import './stylesheet-rule-input/stylesheet-rule-input.element.js'; +import './stylesheet-rule-ref/stylesheet-rule-ref.element.js'; + +export * from './stylesheet-rule-input/stylesheet-rule-input.element.js'; +export * from './stylesheet-rule-ref/stylesheet-rule-ref.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts new file mode 100644 index 0000000000..fc795a1da1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts @@ -0,0 +1,3 @@ +import { manifests as stylesheetRuleInputManifests } from './stylesheet-rule-input/manifests.js'; + +export const manifests = [...stylesheetRuleInputManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts new file mode 100644 index 0000000000..d222693b22 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts @@ -0,0 +1,12 @@ +import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_STYLESHEET_RULE_SETTINGS_MODAL_ALIAS = 'Umb.Modal.StylesheetRuleSettings'; + +const modal: ManifestModal = { + type: 'modal', + alias: UMB_STYLESHEET_RULE_SETTINGS_MODAL_ALIAS, + name: 'Stylesheet Rule Settings Modal', + js: () => import('./stylesheet-rule-settings-modal.element.js'), +}; + +export const manifests = [modal]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts new file mode 100644 index 0000000000..e026a0aa23 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -0,0 +1,145 @@ +import { UmbSortableStylesheetRule } from '../../types.js'; +import { UMB_STYLESHEET_RULE_SETTINGS_MODAL } from './stylesheet-rule-settings-modal.token.js'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { css, html, customElement, ifDefined, repeat, property } from '@umbraco-cms/backoffice/external/lit'; +import { FormControlMixin, UUIComboboxElement, UUIComboboxEvent } from '@umbraco-cms/backoffice/external/uui'; +import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; + +@customElement('umb-stylesheet-rule-input') +export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElement) { + @property({ type: Array, attribute: false }) + rules: UmbSortableStylesheetRule[] = []; + + #modalManager: UmbModalManagerContext | undefined; + + /* + #sorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + performItemInsert: ({ item, newIndex }) => { + return this.#findNewSortOrder(item, newIndex) ?? false; + }, + performItemRemove: () => { + //defined so the default does not run + return true; + }, + }); + */ + + constructor() { + super(); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { + this.#modalManager = modalContext; + }); + + //this.#sorter.setModel(this._rules); + } + + protected getFormElement() { + return undefined; + } + + #findNewSortOrder(rule: UmbSortableStylesheetRule, newIndex: number) { + const rules = [...this.getRules()].sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)); + const oldIndex = rules.findIndex((r) => r.name === rule.name); + + if (oldIndex === -1) return false; + rules.splice(oldIndex, 1); + rules.splice(newIndex, 0, rule); + this.setRules(rules.map((r, i) => ({ ...r, sortOrder: i }))); + return true; + } + + setRules(rules: UmbSortableStylesheetRule[]) { + /* + const newRules = rules.map((r, i) => ({ ...r, sortOrder: i })); + this.#rules.next(newRules); + this.sendRulesGetContent(); + */ + } + + #onChange(event: UUIComboboxEvent) { + event.stopPropagation(); + const target = event.target as UUIComboboxElement; + + if (typeof target?.value === 'string') { + this.value = target.value; + this.dispatchEvent(new UmbChangeEvent()); + } + } + + addRule = (rule: UmbSortableStylesheetRule | null = null) => { + if (!this.#modalManager) throw new Error('Modal context not found'); + const modalContext = this.#modalManager.open(UMB_STYLESHEET_RULE_SETTINGS_MODAL, { + value: { + rule, + }, + }); + + modalContext?.onSubmit().then((value) => { + console.log(value); + /* + if (result.rule) { + console.log(result.rule); + //this.#context?.setRules([...this._rules, { ...result.rule, sortOrder: this._rules.length }]); + } + */ + }); + }; + + removeRule = (rule: UmbSortableStylesheetRule) => { + //const rules = this._rules?.filter((r) => r.name !== rule.name); + }; + + render() { + return html` + + ${repeat( + this.rules, + (rule) => rule.name + rule.sortOrder, + (rule) => html` + + `, + )} + + this.addRule(null)}>Add + `; + } + + static styles = [ + css` + :host { + display: block; + } + + uui-button { + display: block; + } + `, + ]; +} + +export default UmbStylesheetRuleInputElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-stylesheet-rule-input': UmbStylesheetRuleInputElement; + } +} + +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element: HTMLElement, model: UmbSortableStylesheetRule) => { + return element.getAttribute('data-umb-rule-name') === model.name; + }, + querySelectModelToElement: (container: HTMLElement, modelEntry: UmbSortableStylesheetRule) => { + return container.querySelector('data-umb-rule-name[' + modelEntry.name + ']'); + }, + identifier: 'stylesheet-rules-sorter', + itemSelector: 'umb-stylesheet-rich-text-editor-rule', + containerSelector: '#rules-container', +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts index 5aa76b7693..ffd608f2f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.element.ts @@ -1,14 +1,10 @@ -import { RichTextRuleModelSortable } from '../../stylesheet-workspace.context.js'; +import { RichTextRuleModelSortable } from '../../workspace/stylesheet-workspace.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, ifDefined, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -export interface StylesheetRichTextEditorStyleModalValue { - rule: RichTextRuleModelSortable | null; -} - -@customElement('umb-stylesheet-rich-text-editor-style-modal') -export default class UmbStylesheetRichTextEditorStyleModalElement extends UmbModalBaseElement< +@customElement('umb-stylesheet-rule-settings-modal') +export default class UmbStylesheetRuleSettingsModalElement extends UmbModalBaseElement< never, StylesheetRichTextEditorStyleModalValue > { @@ -162,6 +158,6 @@ export default class UmbStylesheetRichTextEditorStyleModalElement extends UmbMod declare global { interface HTMLElementTagNameMap { - 'umb-stylesheet-rich-text-editor-style-modal': UmbStylesheetRichTextEditorStyleModalElement; + 'umb-stylesheet-rule-settings-modal': UmbStylesheetRuleSettingsModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts new file mode 100644 index 0000000000..3c22e3d1cc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts @@ -0,0 +1,18 @@ +import { UmbSortableStylesheetRule } from '../../types.js'; +import { UMB_STYLESHEET_RULE_SETTINGS_MODAL_ALIAS } from './manifests.js'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbStylesheetRuleSettingsModalValue { + rule: UmbSortableStylesheetRule | null; +} + +export const UMB_STYLESHEET_RULE_SETTINGS_MODAL = new UmbModalToken( + UMB_STYLESHEET_RULE_SETTINGS_MODAL_ALIAS, + { + modal: { + type: 'sidebar', + size: 'medium', + }, + value: { rule: null }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts new file mode 100644 index 0000000000..829530fd5b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-ref/stylesheet-rule-ref.element.ts @@ -0,0 +1,21 @@ +import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; +import { customElement, css } from '@umbraco-cms/backoffice/external/lit'; + +/** + * @element umb-stylesheet-rule-ref + * @description - Component for displaying a reference to a stylesheet rule + * @extends UUIRefNodeElement + */ +@customElement('umb-stylesheet-rule-ref') +export class UmbStylesheetRuleRefElement extends UUIRefNodeElement { + protected fallbackIcon = + ''; + + static styles = [...UUIRefNodeElement.styles, css``]; +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-stylesheet-rule-ref': UmbStylesheetRuleRefElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts index f557243b23..c342f87b9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts @@ -1,2 +1,5 @@ export * from './repository/index.js'; export { UmbStylesheetTreeRepository } from './tree/index.js'; + +// Components +export { UmbStylesheetRuleInputElement } from './components/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts index b34387af09..9338615157 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts @@ -4,6 +4,7 @@ import { manifests as treeManifests } from './tree/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { manifests as entityActionManifests } from './entity-actions/manifests.js'; import { manifests as collectionManifests } from './collection/manifests.js'; +import { manifests as componentManifests } from './components/manifests.js'; export const manifests = [ ...repositoryManifests, @@ -12,4 +13,5 @@ export const manifests = [ ...workspaceManifests, ...entityActionManifests, ...collectionManifests, + ...componentManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts index 93c50018d2..2ec5cef7a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts @@ -8,3 +8,10 @@ export interface UmbStylesheetDetailModel { name: string; content: string; } + +export interface UmbSortableStylesheetRule { + name: string; + selector: string; + styles: string; + sortOrder: number; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts index 0f642014dd..11c1c6c820 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/manifests.ts @@ -1,5 +1,4 @@ import type { - ManifestModal, ManifestWorkspace, ManifestWorkspaceAction, ManifestWorkspaceView, @@ -76,16 +75,4 @@ const workspaceActions: Array = [ }, ]; -export const UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR = - 'Umb.Modal.Templating.Stylesheet.RichTextEditorStyle.Sidebar'; - -const modals: Array = [ - { - type: 'modal', - alias: UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR, - name: 'Rich text editor style modal', - js: () => import('./views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-style-sidebar.element.js'), - }, -]; - -export const manifests = [workspace, ...workspaceViews, ...workspaceActions, ...modals]; +export const manifests = [workspace, ...workspaceViews, ...workspaceActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index 982b3c88aa..6c8743bb33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -7,13 +7,10 @@ import { UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbArrayState, UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; -import type { RichTextRuleModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -export type RichTextRuleModelSortable = RichTextRuleModel & { sortOrder?: number }; - export class UmbStylesheetWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface @@ -24,16 +21,11 @@ export class UmbStylesheetWorkspaceContext readonly content = this.#data.asObservablePart((data) => data?.content); readonly path = this.#data.asObservablePart((data) => data?.path); - #rules = new UmbArrayState([], (rule) => rule.name); - readonly rules = this.#rules.asObservable(); - #isCodeEditorReady = new UmbBooleanState(false); readonly isCodeEditorReady = this.#isCodeEditorReady.asObservable(); constructor(host: UmbControllerHostElement) { super(host, UMB_STYLESHEET_WORKSPACE_ALIAS, new UmbStylesheetDetailRepository(host)); - // TODO: sort close to the server - this.#rules.sortBy((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)); this.#loadCodeEditor(); } @@ -125,17 +117,6 @@ export class UmbStylesheetWorkspaceContext this.setRules(data?.rules ?? []); } - findNewSortOrder(rule: RichTextRuleModel, newIndex: number) { - const rules = [...this.getRules()].sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)); - const oldIndex = rules.findIndex((r) => r.name === rule.name); - - if (oldIndex === -1) return false; - rules.splice(oldIndex, 1); - rules.splice(newIndex, 0, rule); - this.setRules(rules.map((r, i) => ({ ...r, sortOrder: i }))); - return true; - } - getRules() { return this.#rules.getValue(); } @@ -144,12 +125,6 @@ export class UmbStylesheetWorkspaceContext this.#rules.updateOne(unique, rule); this.sendRulesGetContent(); } - - setRules(rules: RichTextRuleModelSortable[]) { - const newRules = rules.map((r, i) => ({ ...r, sortOrder: i })); - this.#rules.next(newRules); - this.sendRulesGetContent(); - } */ public destroy(): void { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts index 59e6a37464..6e7c340495 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts @@ -30,11 +30,6 @@ export class UmbStylesheetCodeEditorWorkspaceViewElement extends UmbLitElement { }); } - disconnectedCallback(): void { - super.disconnectedCallback(); - this.#stylesheetWorkspaceContext?.sendContentGetRules(); - } - #onCodeEditorInput(event: Event) { const target = event.target as UmbCodeEditorElement; const value = target.code as string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts index d60e08bc68..402f6b004d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts @@ -1,61 +1,20 @@ -import { RichTextRuleModelSortable, UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; -import { UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR } from '../../manifests.js'; -import { UmbStylesheetRichTextRuleRepository } from '../../../repository/rich-text-rule/index.js'; -import { StylesheetRichTextEditorStyleModalValue } from './stylesheet-workspace-view-rich-text-editor-style-sidebar.element.js'; +import { UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; +import { UmbStylesheetRichTextRuleRepository } from '../../../repository/index.js'; +import { UmbSortableStylesheetRule } from '../../../types.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext, UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { RichTextRuleModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; -import { css, html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; - -import './stylesheet-workspace-view-rich-text-editor-rule.element.js'; - -export const UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL = new UmbModalToken< - never, - StylesheetRichTextEditorStyleModalValue ->(UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR, { - modal: { - type: 'sidebar', - size: 'medium', - }, - value: { rule: null }, -}); - -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: RichTextRuleModel) => { - return element.getAttribute('data-umb-rule-name') === model.name; - }, - querySelectModelToElement: (container: HTMLElement, modelEntry: RichTextRuleModel) => { - return container.querySelector('data-umb-rule-name[' + modelEntry.name + ']'); - }, - identifier: 'stylesheet-rules-sorter', - itemSelector: 'umb-stylesheet-rich-text-editor-rule', - containerSelector: '#rules-container', -}; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-stylesheet-rich-text-rule-workspace-view') export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement { @state() - _rules: RichTextRuleModelSortable[] = []; + _rules: UmbSortableStylesheetRule[] = []; #context?: UmbStylesheetWorkspaceContext; - private _modalContext?: UmbModalManagerContext; #stylesheetRichTextRuleRepository = new UmbStylesheetRichTextRuleRepository(this); - #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, - performItemInsert: ({ item, newIndex }) => { - return this.#context?.findNewSortOrder(item, newIndex) ?? false; - }, - performItemRemove: () => { - //defined so the default does not run - return true; - }, - }); - constructor() { super(); @@ -64,10 +23,6 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement const unique = this.#context?.getEntityId(); this.#setRules(unique); }); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this._modalContext = instance; - }); } async #setRules(unique: string) { @@ -75,47 +30,26 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement if (data) { this._rules = data.rules ?? []; - this.#sorter.setModel(this._rules); } } - openModal = (rule: RichTextRuleModelSortable | null = null) => { - if (!this._modalContext) throw new Error('Modal context not found'); - const modal = this._modalContext.open(UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL, { - value: { - rule, - }, - }); - modal?.onSubmit().then((result) => { - if (result.rule) { - this.#context?.setRules([...this._rules, { ...result.rule, sortOrder: this._rules.length }]); - } - }); - }; - - removeRule = (rule: RichTextRuleModelSortable) => { - const rules = this._rules?.filter((r) => r.name !== rule.name); - this.#context?.setRules(rules); - }; + #onRuleChange(event: UmbChangeEvent) { + event.stopPropagation(); + const target = event.target as UmbStylesheetRuleInputElement; + const rules = target.rules; + console.log(rules); + console.log(event); + debugger; + } render() { - return html` -
-

Define the styles that should be available in the rich text editor for this stylesheet.

-
-
- ${repeat( - this._rules, - (rule) => rule?.name ?? '' + rule?.sortOrder ?? '', - (rule) => - html``, - )} -
- this.openModal(null)}>Add + return html` + +
+
-
+ `; } @@ -127,21 +61,6 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement width: 100%; } - #box-row { - display: flex; - gap: var(--uui-size-layout-1); - } - - #description { - margin-top: 0; - flex: 0 0 250px; - } - - #rules { - flex: 1 1 auto; - max-width: 600px; - } - uui-box { margin: var(--uui-size-layout-1); } @@ -153,6 +72,6 @@ export default UmbStylesheetRichTextRuleWorkspaceViewElement; declare global { interface HTMLElementTagNameMap { - 'umb-stylesheet-workspace-view-rich-text-editor': UmbStylesheetRichTextRuleWorkspaceViewElement; + 'umb-stylesheet-rich-text-rule-workspace-view': UmbStylesheetRichTextRuleWorkspaceViewElement; } } From a2f30c27ac4b8dde78ab4d25969ef4b91741e2f1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 08:58:02 +0100 Subject: [PATCH 156/786] remove non implemented keyboard shortcuts overview --- .../stylesheet-workspace-editor.element.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts index 0885a18713..3f60945b37 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts @@ -68,20 +68,6 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { /css/${this._path}
- -
- - - Keyboard Shortcuts - - ALT - + - shift - + - k - - -
`; } From e46072ba2791c726a479e4a168f59e4bf6da7b86 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 12:51:25 +0100 Subject: [PATCH 157/786] handle rich text rules on the client --- .../stylesheet-rule-input.element.ts | 43 +++------ .../stylesheets/repository/index.ts | 1 - .../repository/rich-text-rule/index.ts | 1 - .../stylesheet-rich-text-rule.repository.ts | 43 --------- ...sheet-rich-text-rule.server.data-source.ts | 67 -------------- .../templating/stylesheets/utils/index.ts | 1 + .../utils/stylesheet-rule-manager.ts | 47 ++++++++++ .../workspace/stylesheet-workspace.context.ts | 28 ------ ...t-rich-text-rule-workspace-view.element.ts | 37 +++++--- ...pace-view-rich-text-editor-rule.element.ts | 88 ------------------- 10 files changed, 86 insertions(+), 270 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-rule.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts index e026a0aa23..122b9886f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -52,25 +52,7 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen return true; } - setRules(rules: UmbSortableStylesheetRule[]) { - /* - const newRules = rules.map((r, i) => ({ ...r, sortOrder: i })); - this.#rules.next(newRules); - this.sendRulesGetContent(); - */ - } - - #onChange(event: UUIComboboxEvent) { - event.stopPropagation(); - const target = event.target as UUIComboboxElement; - - if (typeof target?.value === 'string') { - this.value = target.value; - this.dispatchEvent(new UmbChangeEvent()); - } - } - - addRule = (rule: UmbSortableStylesheetRule | null = null) => { + #openRuleSettings = (rule: UmbSortableStylesheetRule | null = null) => { if (!this.#modalManager) throw new Error('Modal context not found'); const modalContext = this.#modalManager.open(UMB_STYLESHEET_RULE_SETTINGS_MODAL, { value: { @@ -79,18 +61,15 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen }); modalContext?.onSubmit().then((value) => { - console.log(value); - /* - if (result.rule) { - console.log(result.rule); - //this.#context?.setRules([...this._rules, { ...result.rule, sortOrder: this._rules.length }]); - } - */ + const newRule: UmbSortableStylesheetRule = { ...value.rule, sortOrder: this.rules.length }; + this.rules = [...this.rules, newRule]; + this.dispatchEvent(new UmbChangeEvent()); }); }; - removeRule = (rule: UmbSortableStylesheetRule) => { - //const rules = this._rules?.filter((r) => r.name !== rule.name); + #removeRule = (rule: UmbSortableStylesheetRule) => { + this.rules = this.rules.filter((r) => r.name !== rule.name); + this.dispatchEvent(new UmbChangeEvent()); }; render() { @@ -103,11 +82,15 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen + data-umb-rule-name="${ifDefined(rule?.name)}"> + + this.#removeRule(rule)} label="Remove ${rule.name}">Remove + + `, )} - this.addRule(null)}>Add + this.#openRuleSettings(null)}>Add `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts index 1f4b2e2311..1a3663f608 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts @@ -1,4 +1,3 @@ -export * from './rich-text-rule/index.js'; export * from './item/index.js'; export * from './stylesheet-detail.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts deleted file mode 100644 index 58c7b8136e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { UmbStylesheetRichTextRuleRepository } from './stylesheet-rich-text-rule.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts deleted file mode 100644 index fa06755407..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.repository.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { UmbStylesheetRichTextRuleServerDataSource } from './stylesheet-rich-text-rule.server.data-source.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { - ExtractRichTextStylesheetRulesRequestModel, - InterpolateRichTextStylesheetRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; - -export class UmbStylesheetRichTextRuleRepository extends UmbRepositoryBase { - #dataSource; - - constructor(host: UmbControllerHost) { - super(host); - - this.#dataSource = new UmbStylesheetRichTextRuleServerDataSource(host); - } - - requestStylesheetRules(unique: string) { - return this.#dataSource.getStylesheetRichTextRules(unique); - } - - /** - * Existing content + array of rules => new content string - * - * @param {InterpolateRichTextStylesheetRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetRepository - */ - interpolateStylesheetRules(data: InterpolateRichTextStylesheetRequestModel) { - return this.#dataSource.interpolateStylesheetRules(data); - } - - /** - * content string => array of rules - * - * @param {ExtractRichTextStylesheetRulesRequestModel} data - * @return {*} - * @memberof UmbStylesheetRepository - */ - extractStylesheetRules(data: ExtractRichTextStylesheetRulesRequestModel) { - return this.#dataSource.extractStylesheetRules(data); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts deleted file mode 100644 index 01f4408f6c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/rich-text-rule/stylesheet-rich-text-rule.server.data-source.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { UmbServerPathUniqueSerializer } from '../../../utils/index.js'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { - ExtractRichTextStylesheetRulesRequestModel, - InterpolateRichTextStylesheetRequestModel, - StylesheetResource, -} from '@umbraco-cms/backoffice/backend-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for the Stylesheet rich text rules that fetches data from the server - * @export - * @class UmbStylesheetRichTextRuleServerDataSource - */ -export class UmbStylesheetRichTextRuleServerDataSource { - #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); - - /** - * Creates an instance of UmbStylesheetRichTextRuleServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbStylesheetRichTextRuleServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Get's the rich text rules for a stylesheet - * - * @param {string} unique - * @return {*} - * @memberof UmbStylesheetRichTextRuleServerDataSource - */ - getStylesheetRichTextRules(unique: string) { - const path = this.#serverPathUniqueSerializer.toServerPath(unique); - return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetRichTextRules({ path })); - } - - /** - * Extracts the rich text rules from a stylesheet string. In simple words: takes a stylesheet string and returns a array of rules. - * - * @param {ExtractRichTextStylesheetRulesRequestModel} data - * @return {*} - * @memberof UmbStylesheetRichTextRuleServerDataSource - */ - extractStylesheetRules(data: ExtractRichTextStylesheetRulesRequestModel) { - return tryExecuteAndNotify( - this.#host, - StylesheetResource.postStylesheetRichTextExtractRules({ requestBody: data }), - ); - } - - /** - * Interpolates the rich text rules from a stylesheet string. In simple words: takes a array of rules and existing content. Returns new content with the rules applied. - * - * @param {InterpolateRichTextStylesheetRequestModel} data - * @return {*} - * @memberof UmbStylesheetRichTextRuleServerDataSource - */ - interpolateStylesheetRules(data: InterpolateRichTextStylesheetRequestModel) { - return tryExecuteAndNotify( - this.#host, - StylesheetResource.postStylesheetRichTextInterpolateRules({ requestBody: data }), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/index.ts new file mode 100644 index 0000000000..eafc8c469d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/index.ts @@ -0,0 +1 @@ +export { UmbStylesheetRuleManager } from './stylesheet-rule-manager.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts new file mode 100644 index 0000000000..8c70d2f996 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts @@ -0,0 +1,47 @@ +import { RichTextRuleModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbStylesheetRuleManager { + #umbRuleRegex = /\/\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; + + /** + * Extracts umbraco rules from a stylesheet content + * @param {string} stylesheetContent + * @return {*} + * @memberof UmbStylesheetRuleManager + */ + extractRules(stylesheetContent: string) { + const regex = this.#umbRuleRegex; + if (!stylesheetContent) throw Error('No Stylesheet content'); + return [...stylesheetContent.matchAll(regex)].map((match) => match.groups); + } + + /** + * Inserts umbraco rules into stylesheet content + * @param {string} stylesheetContent + * @param {UmbStylesheetRule[]} rules + * @return {*} + * @memberof UmbStylesheetRuleManager + */ + insertRules(stylesheetContent: string, rules: Array) { + const regex = this.#umbRuleRegex; + if (!stylesheetContent) throw Error('No Stylesheet content'); + if (!stylesheetContent && !rules) return { content: '' }; + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + const cleanedContent = stylesheetContent?.replaceAll(regex, ''); + const newContent = ` + ${cleanedContent.replace(/[\r\n]+$/, '')} + ${rules + ?.map( + (rule) => ` +/**umb_name:${rule.name}*/ + ${rule.selector} { + ${rule.styles} +} +`, + ) + .join('')}`; + return newContent; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index 6c8743bb33..1183ab61d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -99,34 +99,6 @@ export class UmbStylesheetWorkspaceContext } } - /* - async sendRulesGetContent() { - const requestBody = { - content: this.getData()?.content, - rules: this.getRules(), - }; - const { data } = await this.repository.interpolateStylesheetRules(requestBody); - this.setContent(data?.content ?? ''); - } - - async sendContentGetRules() { - const content = this.getData()?.content; - if (!content) throw Error('No content'); - - const { data } = await this.repository.extractStylesheetRules({ content }); - this.setRules(data?.rules ?? []); - } - - getRules() { - return this.#rules.getValue(); - } - - updateRule(unique: string, rule: RichTextRuleModelSortable) { - this.#rules.updateOne(unique, rule); - this.sendRulesGetContent(); - } - */ - public destroy(): void { this.#data.destroy(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts index 402f6b004d..0963d77475 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts @@ -1,10 +1,12 @@ import { UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; -import { UmbStylesheetRichTextRuleRepository } from '../../../repository/index.js'; import { UmbSortableStylesheetRule } from '../../../types.js'; +import { UmbStylesheetRuleInputElement } from '../../../components/index.js'; +import { UmbStylesheetRuleManager } from '../../../utils/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-stylesheet-rich-text-rule-workspace-view') export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement { @@ -12,24 +14,36 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement _rules: UmbSortableStylesheetRule[] = []; #context?: UmbStylesheetWorkspaceContext; - - #stylesheetRichTextRuleRepository = new UmbStylesheetRichTextRuleRepository(this); + #stylesheetRuleManager = new UmbStylesheetRuleManager(); + #stylesheetContent = ''; constructor() { super(); this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { this.#context = workspaceContext as UmbStylesheetWorkspaceContext; - const unique = this.#context?.getEntityId(); - this.#setRules(unique); + this.#observeContent(); }); } - async #setRules(unique: string) { - const { data } = await this.#stylesheetRichTextRuleRepository.requestStylesheetRules(unique); + #observeContent() { + if (!this.#context?.content) return; + this.observe( + this.#context.content, + (content) => { + this.#stylesheetContent = content; + this.#extractRules(content); + }, + 'umbStylesheetContentObserver', + ); + } - if (data) { - this._rules = data.rules ?? []; + #extractRules(content: string | undefined) { + if (content) { + const rules = this.#stylesheetRuleManager.extractRules(content); + this._rules = [...rules]; + } else { + this._rules = []; } } @@ -37,9 +51,8 @@ export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement event.stopPropagation(); const target = event.target as UmbStylesheetRuleInputElement; const rules = target.rules; - console.log(rules); - console.log(event); - debugger; + const newContent = this.#stylesheetRuleManager.insertRules(this.#stylesheetContent, rules); + this.#context?.setContent(newContent); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-rule.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-rule.element.ts deleted file mode 100644 index 607dd0d60a..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-workspace-view-rich-text-editor-rule.element.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { UMB_STYLESHEET_WORKSPACE_CONTEXT, UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; -import { UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL } from './stylesheet-rich-text-rule-workspace-view.element.js'; -import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { RichTextRuleModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; - -@customElement('umb-stylesheet-rich-text-editor-rule') -export default class UmbStylesheetRichTextEditorRuleElement extends UmbLitElement { - @property({ attribute: false }) - private rule: RichTextRuleModel | null = null; - - #context?: UmbStylesheetWorkspaceContext; - private _modalContext?: UmbModalManagerContext; - - constructor() { - super(); - - this.consumeContext(UMB_STYLESHEET_WORKSPACE_CONTEXT, (workspaceContext) => { - this.#context = workspaceContext; - }); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this._modalContext = instance; - }); - } - - #openModal() { - if (!this._modalContext) throw new Error('Modal context not found'); - const modal = this._modalContext.open(UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL, { - value: { - rule: this.rule, - }, - }); - modal?.onSubmit().then((value) => { - if (value.rule && this.rule?.name) { - this.#context?.updateRule(this.rule?.name, value.rule); - } - }); - } - - #removeRule() { - //TODO: SPORTER BREAKS THAT - rules are removed from the data but not from the DOM - if (!this.#context) throw new Error('Context not found'); - this.#context.setRules(this.#context.getRules().filter((r) => r.name !== this.rule?.name)); - } - - render() { - return html` -
${this.rule?.name}
-
- EditRemove -
- `; - } - - static styles = [ - UmbTextStyles, - css` - :host { - display: flex; - width: 100%; - justify-content: space-between; - padding: var(--uui-size-2); - align-items: center; - border-radius: var(--uui-border-radius); - background-color: var(--uui-color-surface-alt); - margin-bottom: var(--uui-size-space-4); - } - - .rule-name { - display: flex; - align-items: center; - gap: var(--uui-size-2); - padding-left: var(--uui-size-2); - font-weight: bold; - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-stylesheet-rich-text-editor-rule': UmbStylesheetRichTextEditorRuleElement; - } -} From 29e9c939884fd989ba1db9ad4cdd4efdb95472ce Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 12:53:46 +0100 Subject: [PATCH 158/786] better formatting --- .../templating/stylesheets/utils/stylesheet-rule-manager.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts index 8c70d2f996..72dd909bfb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts @@ -36,8 +36,8 @@ export class UmbStylesheetRuleManager { ?.map( (rule) => ` /**umb_name:${rule.name}*/ - ${rule.selector} { - ${rule.styles} +${rule.selector} { + ${rule.styles} } `, ) From 54b9f444cb78de321e88be08ae76a28746f293f2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 12:58:25 +0100 Subject: [PATCH 159/786] temp remove sortOrder from stylesheet rule --- .../stylesheet-rule-input.element.ts | 23 ++++++++++--------- .../stylesheet-rule-settings-modal.token.ts | 4 ++-- .../packages/templating/stylesheets/types.ts | 3 +-- ...t-rich-text-rule-workspace-view.element.ts | 4 ++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts index 122b9886f6..fed9bc60b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -1,8 +1,8 @@ -import { UmbSortableStylesheetRule } from '../../types.js'; +import { UmbStylesheetRule } from '../../types.js'; import { UMB_STYLESHEET_RULE_SETTINGS_MODAL } from './stylesheet-rule-settings-modal.token.js'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { css, html, customElement, ifDefined, repeat, property } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIComboboxElement, UUIComboboxEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -10,7 +10,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-stylesheet-rule-input') export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElement) { @property({ type: Array, attribute: false }) - rules: UmbSortableStylesheetRule[] = []; + rules: UmbStylesheetRule[] = []; #modalManager: UmbModalManagerContext | undefined; @@ -41,7 +41,7 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen return undefined; } - #findNewSortOrder(rule: UmbSortableStylesheetRule, newIndex: number) { + #findNewSortOrder(rule: UmbStylesheetRule, newIndex: number) { const rules = [...this.getRules()].sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)); const oldIndex = rules.findIndex((r) => r.name === rule.name); @@ -52,7 +52,7 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen return true; } - #openRuleSettings = (rule: UmbSortableStylesheetRule | null = null) => { + #openRuleSettings = (rule: UmbStylesheetRule | null = null) => { if (!this.#modalManager) throw new Error('Modal context not found'); const modalContext = this.#modalManager.open(UMB_STYLESHEET_RULE_SETTINGS_MODAL, { value: { @@ -61,13 +61,13 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen }); modalContext?.onSubmit().then((value) => { - const newRule: UmbSortableStylesheetRule = { ...value.rule, sortOrder: this.rules.length }; + const newRule: UmbStylesheetRule = { ...value.rule }; this.rules = [...this.rules, newRule]; this.dispatchEvent(new UmbChangeEvent()); }); }; - #removeRule = (rule: UmbSortableStylesheetRule) => { + #removeRule = (rule: UmbStylesheetRule) => { this.rules = this.rules.filter((r) => r.name !== rule.name); this.dispatchEvent(new UmbChangeEvent()); }; @@ -77,13 +77,14 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen ${repeat( this.rules, - (rule) => rule.name + rule.sortOrder, + (rule, index) => rule.name + index, (rule) => html` + this.#openRuleSettings(rule)} label="Edit ${rule.name}">Edit this.#removeRule(rule)} label="Remove ${rule.name}">Remove @@ -115,11 +116,11 @@ declare global { } } -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: UmbSortableStylesheetRule) => { +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element: HTMLElement, model: UmbStylesheetRule) => { return element.getAttribute('data-umb-rule-name') === model.name; }, - querySelectModelToElement: (container: HTMLElement, modelEntry: UmbSortableStylesheetRule) => { + querySelectModelToElement: (container: HTMLElement, modelEntry: UmbStylesheetRule) => { return container.querySelector('data-umb-rule-name[' + modelEntry.name + ']'); }, identifier: 'stylesheet-rules-sorter', diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts index 3c22e3d1cc..6ee8d13d1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts @@ -1,9 +1,9 @@ -import { UmbSortableStylesheetRule } from '../../types.js'; +import { UmbStylesheetRule } from '../../types.js'; import { UMB_STYLESHEET_RULE_SETTINGS_MODAL_ALIAS } from './manifests.js'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbStylesheetRuleSettingsModalValue { - rule: UmbSortableStylesheetRule | null; + rule: UmbStylesheetRule | null; } export const UMB_STYLESHEET_RULE_SETTINGS_MODAL = new UmbModalToken( diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts index 2ec5cef7a6..3e78f68010 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts @@ -9,9 +9,8 @@ export interface UmbStylesheetDetailModel { content: string; } -export interface UmbSortableStylesheetRule { +export interface UmbStylesheetRule { name: string; selector: string; styles: string; - sortOrder: number; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts index 0963d77475..9f423520e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts @@ -1,5 +1,5 @@ import { UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; -import { UmbSortableStylesheetRule } from '../../../types.js'; +import { UmbStylesheetRule } from '../../../types.js'; import { UmbStylesheetRuleInputElement } from '../../../components/index.js'; import { UmbStylesheetRuleManager } from '../../../utils/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -11,7 +11,7 @@ import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-stylesheet-rich-text-rule-workspace-view') export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement { @state() - _rules: UmbSortableStylesheetRule[] = []; + _rules: UmbStylesheetRule[] = []; #context?: UmbStylesheetWorkspaceContext; #stylesheetRuleManager = new UmbStylesheetRuleManager(); From f1b522db3668b5a8584ab7aacf58b15454cee1ed Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 13:18:29 +0100 Subject: [PATCH 160/786] fix append and edit rules --- .../stylesheet-rule-input.element.ts | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts index fed9bc60b1..709ae35a31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -54,17 +54,31 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen #openRuleSettings = (rule: UmbStylesheetRule | null = null) => { if (!this.#modalManager) throw new Error('Modal context not found'); + + const value = { + rule: rule ? { name: rule.name, selector: rule.selector, styles: rule.styles } : null, + }; + const modalContext = this.#modalManager.open(UMB_STYLESHEET_RULE_SETTINGS_MODAL, { - value: { - rule, - }, + value, }); - modalContext?.onSubmit().then((value) => { - const newRule: UmbStylesheetRule = { ...value.rule }; - this.rules = [...this.rules, newRule]; - this.dispatchEvent(new UmbChangeEvent()); - }); + return modalContext?.onSubmit(); + }; + + #appendRule = async () => { + const { rule: newRule } = await this.#openRuleSettings(null); + if (!newRule) return; + this.rules = [...this.rules, newRule]; + this.dispatchEvent(new UmbChangeEvent()); + }; + + #editRule = async (rule: UmbStylesheetRule, index: number) => { + const { rule: updatedRule } = await this.#openRuleSettings(rule); + if (!updatedRule) return; + this.rules[index] = updatedRule; + this.dispatchEvent(new UmbChangeEvent()); + this.requestUpdate(); }; #removeRule = (rule: UmbStylesheetRule) => { @@ -78,20 +92,20 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen ${repeat( this.rules, (rule, index) => rule.name + index, - (rule) => html` + (rule, index) => html` - this.#openRuleSettings(rule)} label="Edit ${rule.name}">Edit + this.#editRule(rule, index)} label="Edit ${rule.name}">Edit this.#removeRule(rule)} label="Remove ${rule.name}">Remove `, )} - this.#openRuleSettings(null)}>Add + this.#appendRule()}>Add `; } From d99d34db3d616d94d3776340891ebb311cecb962 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 14:21:17 +0100 Subject: [PATCH 161/786] temp remove sorting --- .../stylesheet-rule-input.element.ts | 48 ++----------------- 1 file changed, 4 insertions(+), 44 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts index 709ae35a31..910db339e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -1,12 +1,13 @@ import { UmbStylesheetRule } from '../../types.js'; import { UMB_STYLESHEET_RULE_SETTINGS_MODAL } from './stylesheet-rule-settings-modal.token.js'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { css, html, customElement, ifDefined, repeat, property } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, repeat, property } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +// TODO: add sorting when we have a generic sorting component/functionality for ref lists + @customElement('umb-stylesheet-rule-input') export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElement) { @property({ type: Array, attribute: false }) @@ -14,44 +15,18 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen #modalManager: UmbModalManagerContext | undefined; - /* - #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, - performItemInsert: ({ item, newIndex }) => { - return this.#findNewSortOrder(item, newIndex) ?? false; - }, - performItemRemove: () => { - //defined so the default does not run - return true; - }, - }); - */ - constructor() { super(); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { this.#modalManager = modalContext; }); - - //this.#sorter.setModel(this._rules); } protected getFormElement() { return undefined; } - #findNewSortOrder(rule: UmbStylesheetRule, newIndex: number) { - const rules = [...this.getRules()].sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)); - const oldIndex = rules.findIndex((r) => r.name === rule.name); - - if (oldIndex === -1) return false; - rules.splice(oldIndex, 1); - rules.splice(newIndex, 0, rule); - this.setRules(rules.map((r, i) => ({ ...r, sortOrder: i }))); - return true; - } - #openRuleSettings = (rule: UmbStylesheetRule | null = null) => { if (!this.#modalManager) throw new Error('Modal context not found'); @@ -93,10 +68,7 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen this.rules, (rule, index) => rule.name + index, (rule, index) => html` - + this.#editRule(rule, index)} label="Edit ${rule.name}">Edit this.#removeRule(rule)} label="Remove ${rule.name}">Remove @@ -129,15 +101,3 @@ declare global { 'umb-stylesheet-rule-input': UmbStylesheetRuleInputElement; } } - -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: UmbStylesheetRule) => { - return element.getAttribute('data-umb-rule-name') === model.name; - }, - querySelectModelToElement: (container: HTMLElement, modelEntry: UmbStylesheetRule) => { - return container.querySelector('data-umb-rule-name[' + modelEntry.name + ']'); - }, - identifier: 'stylesheet-rules-sorter', - itemSelector: 'umb-stylesheet-rich-text-editor-rule', - containerSelector: '#rules-container', -}; From fd05b1c5aeeeb824b57aa9f8c655ad171b3e07bc Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 14:25:18 +0100 Subject: [PATCH 162/786] remove functionality that has been moved to the client --- .../mocks/data/stylesheet/stylesheet.db.ts | 56 ------------------- 1 file changed, 56 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index ff447fd62d..baf4dea648 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -7,9 +7,6 @@ import { textFileItemMapper } from '../utils.js'; import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; import { CreateStylesheetRequestModel, - ExtractRichTextStylesheetRulesRequestModel, - ExtractRichTextStylesheetRulesResponseModel, - InterpolateRichTextStylesheetRequestModel, PagedStylesheetOverviewResponseModel, StylesheetResponseModel, } from '@umbraco-cms/backoffice/backend-api'; @@ -40,59 +37,6 @@ class UmbStylesheetData extends UmbFileSystemMockDbBase }; } - getRules(path: string): ExtractRichTextStylesheetRulesResponseModel { - const regex = /\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; - const item = this.data.find((item) => item.path === path); - if (!item) throw Error('item not found'); - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - //@ts-ignore - // eslint-disable-next-line no-unsafe-optional-chaining - const rules = [...item.content?.matchAll(regex)].map((match) => match.groups) as Array; - return { rules }; - } - - async extractRules({ requestBody }: { requestBody?: ExtractRichTextStylesheetRulesRequestModel }) { - const regex = /\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; - - if (!requestBody) { - throw Error('No request body'); - } - const { content } = await requestBody; - if (!content) return { rules: [] }; - const rules = [...content.matchAll(regex)].map((match) => match.groups); - return { rules }; - } - - interpolateRules({ requestBody }: { requestBody?: InterpolateRichTextStylesheetRequestModel }) { - const regex = /\/\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; - if (!requestBody) { - throw Error('No request body'); - } - const { content, rules } = requestBody; - if (!content && !rules) return { content: '' }; - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - //@ts-ignore - const cleanedContent = content?.replaceAll(regex, ''); - - const newContent = `${cleanedContent.replace(/[\r\n]+$/, '')} - -${rules - ?.map( - (rule) => - `/**umb_name:${rule.name}*/ -${rule.selector} { - ${rule.styles} -} - -`, - ) - .join('')}`; - - return { content: newContent }; - } - #createStylesheetMockItem = (item: CreateStylesheetRequestModel): UmbMockStylesheetModel => { return { name: item.name, From cc721ccb4e98f666bca4eb5a0e2f71ce08d8bc9d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 14:27:09 +0100 Subject: [PATCH 163/786] Update stylesheet.db.ts --- .../src/mocks/data/stylesheet/stylesheet.db.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index baf4dea648..6318bc463f 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -21,7 +21,7 @@ class UmbStylesheetData extends UmbFileSystemMockDbBase super(data); this.file = new UmbMockFileSystemDetailManager(this, { - createMapper: this.#createStylesheetMockItem, + createMapper: this.#createStylesheetMockItemMapper, readMapper: this.#readStylesheetResponseMapper, }); } @@ -37,7 +37,7 @@ class UmbStylesheetData extends UmbFileSystemMockDbBase }; } - #createStylesheetMockItem = (item: CreateStylesheetRequestModel): UmbMockStylesheetModel => { + #createStylesheetMockItemMapper = (item: CreateStylesheetRequestModel): UmbMockStylesheetModel => { return { name: item.name, content: item.content, From e25300887fd924f146f6e101a0fdd70e2b7cc642 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 14:30:14 +0100 Subject: [PATCH 164/786] deserialize --- .../stylesheets/tree/stylesheet-tree.server.data-source.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts index 9d9f06fbe9..6851f2075c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts @@ -33,12 +33,14 @@ export class UmbStylesheetTreeServerDataSource extends UmbTreeServerDataSourceBa const getRootItems = () => StylesheetResource.getTreeStylesheetRoot({}); const getChildrenOf = (parentUnique: string | null) => { + const serializer = new UmbServerPathUniqueSerializer(); + if (parentUnique === null) { return getRootItems(); } else { // eslint-disable-next-line local-rules/no-direct-api-import return StylesheetResource.getTreeStylesheetChildren({ - path: parentUnique, + path: serializer.toServerPath(parentUnique), }); } }; From 2563c5ddf12a96096e1d2f7f24f9885af90f6502 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 14:37:14 +0100 Subject: [PATCH 165/786] don't allow to edit stylesheet / script name when editing --- .../workspace/script-workspace-editor.element.ts | 10 +++++++++- .../workspace/stylesheet-workspace-editor.element.ts | 11 +++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index 8398a4d27c..7973028bda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -19,6 +19,9 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { @state() private _ready?: boolean = false; + @state() + private _isNew?: boolean = false; + #scriptsWorkspaceContext?: UmbScriptWorkspaceContext; constructor() { @@ -42,6 +45,10 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { this.observe(this.#scriptsWorkspaceContext.isCodeEditorReady, (isReady) => { this._ready = isReady; }); + + this.observe(this.#scriptsWorkspaceContext.isNew, (isNew) => { + this._isNew = isNew; + }); }); } @@ -72,7 +79,8 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { placeholder="Enter name..." .value=${this._name} @input=${this.#onNameInput} - label="Script name"> + label="Script name" + ?readonly=${this._isNew === false}> /scripts/${this._path} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts index 3f60945b37..b24c4982a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts @@ -14,12 +14,14 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { private get _name() { return this.#name; } - private set _name(value) { this.#name = value?.replace('.css', ''); this.requestUpdate(); } + @state() + private _isNew?: boolean = false; + @state() private _path?: string; @@ -36,6 +38,10 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue: string) => { this.#workspaceContext?.setName(`${nameInputValue}.css`); }); + + this.observe(this.#workspaceContext.isNew, (isNew) => { + this._isNew = isNew; + }); }); } @@ -64,7 +70,8 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { label="stylesheet name" id="name" .value=${this._name} - @input="${this.#onNameChange}"> + @input="${this.#onNameChange}" + ?readonly=${this._isNew === false}> /css/${this._path} From c86a61fe6fd647a7b29010d6885de84cad0e94c6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 14:42:37 +0100 Subject: [PATCH 166/786] show the path as the server returns it --- .../workspace/stylesheet-workspace-editor.element.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts index b24c4982a8..090edc759a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts @@ -47,11 +47,7 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { #observeNameAndPath() { if (!this.#workspaceContext) return; - this.observe( - this.#workspaceContext.path, - (path) => (this._path = path?.replace(/\\/g, '/')), - '_observeStylesheetPath', - ); + this.observe(this.#workspaceContext.path, (path) => (this._path = path), '_observeStylesheetPath'); this.observe(this.#workspaceContext.name, (name) => (this._name = name), '_observeStylesheetName'); } From 796939bd6cc31f2617f9b05f2817ee64d3c05545 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 19 Dec 2023 14:46:36 +0100 Subject: [PATCH 167/786] don't append css to name in the workspace - it happens in the data source --- .../stylesheet-workspace-editor.element.ts | 34 +++++-------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts index 090edc759a..8cbee1d617 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts @@ -3,29 +3,19 @@ import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/back import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; @customElement('umb-stylesheet-workspace-editor') export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { - #workspaceContext?: UmbStylesheetWorkspaceContext; - - #name: string | undefined = ''; - @state() - private get _name() { - return this.#name; - } - private set _name(value) { - this.#name = value?.replace('.css', ''); - this.requestUpdate(); - } - @state() private _isNew?: boolean = false; @state() private _path?: string; - private inputQuery$ = new Subject(); + @state() + private _name?: string; + + #workspaceContext?: UmbStylesheetWorkspaceContext; constructor() { super(); @@ -33,11 +23,9 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { this.consumeContext(UMB_WORKSPACE_CONTEXT, (instance) => { this.#workspaceContext = instance as UmbStylesheetWorkspaceContext; - this.#observeNameAndPath(); + this.observe(this.#workspaceContext.path, (path) => (this._path = path), '_observeStylesheetPath'); - this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue: string) => { - this.#workspaceContext?.setName(`${nameInputValue}.css`); - }); + this.observe(this.#workspaceContext.name, (name) => (this._name = name), '_observeStylesheetName'); this.observe(this.#workspaceContext.isNew, (isNew) => { this._isNew = isNew; @@ -45,16 +33,10 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { }); } - #observeNameAndPath() { - if (!this.#workspaceContext) return; - this.observe(this.#workspaceContext.path, (path) => (this._path = path), '_observeStylesheetPath'); - this.observe(this.#workspaceContext.name, (name) => (this._name = name), '_observeStylesheetName'); - } - #onNameChange(event: UUIInputEvent) { const target = event.target as UUIInputElement; const value = target.value as string; - this.inputQuery$.next(value); + this.#workspaceContext?.setName(value); } render() { @@ -63,7 +45,7 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement {
@@ -197,10 +197,10 @@ export class UmbPartialViewWorkspaceEditElement extends UmbLitElement { ]; } -export default UmbPartialViewWorkspaceEditElement; +export default UmbPartialViewWorkspaceEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-partial-view-workspace-edit': UmbPartialViewWorkspaceEditElement; + 'umb-partial-view-workspace-editor': UmbPartialViewWorkspaceEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index d54877e72e..c27fb89fe6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -1,5 +1,5 @@ import { UmbPartialViewWorkspaceContext } from './partial-view-workspace.context.js'; -import { UmbPartialViewWorkspaceEditElement } from './partial-view-workspace-edit.element.js'; +import { UmbPartialViewWorkspaceEditorElement } from './partial-view-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -12,7 +12,7 @@ import '../../components/insert-menu/templating-insert-menu.element.js'; export class UmbPartialViewWorkspaceElement extends UmbLitElement { #workspaceContext = new UmbPartialViewWorkspaceContext(this); - #createElement = () => new UmbPartialViewWorkspaceEditElement(); + #createElement = () => new UmbPartialViewWorkspaceEditorElement(); @state() _routes: UmbRoute[] = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index 7973028bda..22208d2bd6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -81,7 +81,7 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { @input=${this.#onNameInput} label="Script name" ?readonly=${this._isNew === false}> - /scripts/${this._path} + /scripts${this._path}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts index 8cbee1d617..f926fb833c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts @@ -51,7 +51,7 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { @input="${this.#onNameChange}" ?readonly=${this._isNew === false}> - /css/${this._path} + /css${this._path} `; From 77b73e32775c1de3724615824184b1f5291d9dae Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Jan 2024 20:12:21 +0100 Subject: [PATCH 227/786] hardcode entity type value --- .../partial-views/workspace/partial-view-workspace.context.ts | 4 +--- .../templating/scripts/workspace/script-workspace.context.ts | 4 +--- .../stylesheets/workspace/stylesheet-workspace.context.ts | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index 81bcc2f015..19379b405e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -44,9 +44,7 @@ export class UmbPartialViewWorkspaceContext } getEntityType(): string { - const data = this.getData(); - if (!data) throw new Error('Data is missing'); - return data.entityType; + return UMB_PARTIAL_VIEW_ENTITY_TYPE; } getData() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 8e9d337e1b..3201c8e612 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -35,9 +35,7 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< } getEntityType(): string { - const data = this.getData(); - if (!data) throw new Error('Data is missing'); - return data.entityType; + return UMB_SCRIPT_ENTITY_TYPE; } getEntityId() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index 1183ab61d2..d2d6538b80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -39,9 +39,7 @@ export class UmbStylesheetWorkspaceContext } getEntityType(): string { - const data = this.getData(); - if (!data) throw new Error('Data is missing'); - return data.entityType; + return UMB_STYLESHEET_ENTITY_TYPE; } getEntityId() { From 64765302cfdca88dd3cd116df0be7e33c2c80943 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Jan 2024 20:12:44 +0100 Subject: [PATCH 228/786] update mock detail manager to use new parent path model --- .../file-system/file-system-detail.manager.ts | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts index 3a902df500..e33dd0f8f6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts @@ -13,9 +13,12 @@ export class UmbMockFileSystemDetailManager { + #defaultCreateMockItemMapper = (path: string, request: FileSystemFileCreateRequestModelBaseModel): MockItemType => { return { - name: item.name, - content: item.content, + name: request.name, + content: request.content, path: path, - parentPath: item.parentPath || null, + parent: request.parent || null, isFolder: false, hasChildren: false, } as unknown as MockItemType; @@ -77,6 +78,7 @@ export class UmbMockFileSystemDetailManager { return { path: item.path, + parent: item.parent, name: item.name, content: item.content, }; From 4d2cef0c03982956ace2621c24f979f168b35ee2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Jan 2024 20:13:04 +0100 Subject: [PATCH 229/786] align partial view workspace editor --- .../partial-view-workspace-editor.element.ts | 37 ++++++------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts index f513ba946c..e6580814ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts @@ -7,20 +7,11 @@ import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; -import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; @customElement('umb-partial-view-workspace-editor') export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { - #name: string | undefined = ''; @state() - private get _name() { - return this.#name; - } - - private set _name(value) { - this.#name = value?.replace('.cshtml', ''); - this.requestUpdate(); - } + private _name?: string = ''; @state() private _content?: string | null = ''; @@ -29,16 +20,14 @@ export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { private _path?: string | null = ''; @state() - private _ready?: boolean = false; + private _ready: boolean = false; @query('umb-code-editor') private _codeEditor?: UmbCodeEditorElement; - #partialViewWorkspaceContext?: typeof UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT.TYPE; + #workspaceContext?: typeof UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT.TYPE; private _modalContext?: UmbModalManagerContext; - private inputQuery$ = new Subject(); - constructor() { super(); @@ -47,39 +36,35 @@ export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { }); this.consumeContext(UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT, (workspaceContext) => { - this.#partialViewWorkspaceContext = workspaceContext; - this.observe(this.#partialViewWorkspaceContext.name, (name) => { + this.#workspaceContext = workspaceContext; + this.observe(this.#workspaceContext.name, (name) => { this._name = name; }); - this.observe(this.#partialViewWorkspaceContext.content, (content) => { + this.observe(this.#workspaceContext.content, (content) => { this._content = content; }); - this.observe(this.#partialViewWorkspaceContext.path, (path) => { + this.observe(this.#workspaceContext.path, (path) => { this._path = path; }); - this.observe(this.#partialViewWorkspaceContext.isCodeEditorReady, (isReady) => { + this.observe(this.#workspaceContext.isCodeEditorReady, (isReady) => { this._ready = isReady; }); - - this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue: string) => { - this.#partialViewWorkspaceContext?.setName(`${nameInputValue}.cshtml`); - }); }); } #onNameInput(event: Event) { const target = event.target as UUIInputElement; const value = target.value as string; - this.inputQuery$.next(value); + this.#workspaceContext?.setName(value); } #onCodeEditorInput(event: Event) { const target = event.target as UmbCodeEditorElement; const value = target.code as string; - this.#partialViewWorkspaceContext?.setContent(value); + this.#workspaceContext?.setContent(value); } #insertSnippet(event: Event) { @@ -105,7 +90,7 @@ export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { } render() { - return html` + return html`
Date: Tue, 9 Jan 2024 20:13:26 +0100 Subject: [PATCH 230/786] remove unneeded name path clean up --- .../scripts/workspace/script-workspace-editor.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index 22208d2bd6..1a580cf4fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -39,7 +39,7 @@ export class UmbScriptWorkspaceEditorElement extends UmbLitElement { }); this.observe(this.#scriptsWorkspaceContext.path, (path) => { - this._path = path?.replace(/\\/g, '/'); + this._path = path; }); this.observe(this.#scriptsWorkspaceContext.isCodeEditorReady, (isReady) => { From 8f6016d5384c59c92151bcd4c28ee27ba5e1c9c6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Jan 2024 20:15:26 +0100 Subject: [PATCH 231/786] lock name when saved --- .../workspace/partial-view-workspace-editor.element.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts index e6580814ee..8d6cf6223f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts @@ -22,6 +22,9 @@ export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { @state() private _ready: boolean = false; + @state() + private _isNew?: boolean = false; + @query('umb-code-editor') private _codeEditor?: UmbCodeEditorElement; @@ -52,6 +55,10 @@ export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { this.observe(this.#workspaceContext.isCodeEditorReady, (isReady) => { this._ready = isReady; }); + + this.observe(this.#workspaceContext.isNew, (isNew) => { + this._isNew = isNew; + }); }); } @@ -96,7 +103,8 @@ export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { placeholder="Enter name..." .value=${this._name} @input=${this.#onNameInput} - label="template name"> + label="Partial view name" + ?readonly=${this._isNew === false}> Views/Partials${this._path}
From d2715ffcf7e7fc535f01417c8d61592f0e1c61b6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Jan 2024 20:24:41 +0100 Subject: [PATCH 232/786] decode location header --- .../partial-view-detail.server.data-source.ts | 15 ++++++--------- .../script-detail.server.data-source.ts | 5 +++-- .../stylesheet-detail.server.data-source.ts | 15 ++++++--------- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts index df1a900838..542370513b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts @@ -45,23 +45,20 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource content: partialView.content, }; - const { error } = await tryExecuteAndNotify( + const { data, error } = await tryExecuteAndNotify( this.#host, PartialViewResource.postPartialView({ requestBody, }), ); - if (error) { - return { error }; + if (data) { + const newPath = decodeURIComponent(data); + const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + return this.read(newPathUnique); } - // We have to fetch the data again. The server can have modified the data after creation - // TODO: revisit when location header is added - const createdPartialViewPath = parentPath ? parentPath + '/' + requestBody.name : requestBody.name; - const createdPartialViewUnique = this.#serverPathUniqueSerializer.toUnique(createdPartialViewPath); - - return this.read(createdPartialViewUnique); + return { error }; } async read(unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 5ba5e212b1..d9cc26ceed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -53,8 +53,9 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource Date: Tue, 9 Jan 2024 20:29:22 +0100 Subject: [PATCH 233/786] update after new model names --- .../data/file-system/file-system-item.manager.ts | 4 ++-- src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts index fe1ece640b..e4607a2af6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts @@ -1,8 +1,8 @@ import { UmbData } from '../data.js'; import { createFileItemResponseModelBaseModel } from '../utils.js'; -import { FileItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { FileSystemItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbMockFileSystemItemManager { +export class UmbMockFileSystemItemManager { #db: UmbData; constructor(db: UmbData) { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index a790d08929..b1e479d1e9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -5,8 +5,8 @@ import type { FolderTreeItemResponseModel, FileSystemTreeItemPresentationModel, DocumentResponseModel, - TextFileResponseModelBaseModel, - FileItemResponseModelBaseModel, + FileSystemFileResponseModelBaseModel, + FileSystemItemResponseModelBaseModel, MediaTypeResponseModel, MediaTypeTreeItemResponseModel, MediaTreeItemResponseModel, @@ -86,16 +86,18 @@ export const createFileSystemTreeItem = (item: any): FileSystemTreeItemPresentat }; }; -export const textFileItemMapper = (item: any): TextFileResponseModelBaseModel => ({ +export const textFileItemMapper = (item: any): FileSystemFileResponseModelBaseModel => ({ path: item.path, name: item.name, + parent: item.parent, content: item.content, }); -export const createFileItemResponseModelBaseModel = (item: any): FileItemResponseModelBaseModel => ({ +export const createFileItemResponseModelBaseModel = (item: any): FileSystemItemResponseModelBaseModel => ({ path: item.path, name: item.name, - icon: item.icon, + parent: item.parent, + isFolder: item.isFolder, }); export const arrayFilter = (filterBy: Array, value?: Array): boolean => { From 6d08f4c36e11a972ef4a701774bf1449f16ba8a1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Jan 2024 20:32:50 +0100 Subject: [PATCH 234/786] use new server models for server information --- .../src/mocks/handlers/server.handlers.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts index b62fb9112a..b465a940bd 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts @@ -2,7 +2,8 @@ const { rest } = window.MockServiceWorker; import { RuntimeLevelModel, ServerStatusResponseModel, - VersionResponseModel, + ServerInformationResponseModel, + RuntimeModeModel, } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -40,8 +41,11 @@ export const serverVersionHandler = rest.get(umbracoPath('/server/version'), (_r return res( // Respond with a 200 status code ctx.status(200), - ctx.json({ + ctx.json({ version: '13.0.0', + assemblyVersion: '', + baseUtcOffset: '', + runtimeMode: RuntimeModeModel.BACKOFFICE_DEVELOPMENT, }), ); }); From 27f08d12a6543109733504a80bed9e08620333a1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Jan 2024 20:34:45 +0100 Subject: [PATCH 235/786] remove code that has been refactored --- .../mocks/handlers/partial-views.handlers.ts | 88 ------------------- 1 file changed, 88 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-views.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-views.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-views.handlers.ts deleted file mode 100644 index e75718b632..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-views.handlers.ts +++ /dev/null @@ -1,88 +0,0 @@ -const { rest } = window.MockServiceWorker; -import { RestHandler, MockedRequest, DefaultBodyType } from 'msw'; -import { umbPartialViewMockDB } from '../data/partial-view/partial-view.db.js'; -import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { CreatePartialViewRequestModel, UpdatePartialViewRequestModel } from '@umbraco-cms/backoffice/backend-api'; - -const treeHandlers = [ - rest.get(umbracoPath('/tree/partial-view/root'), (req, res, ctx) => { - const response = umbPartialViewMockDB.tree.getRoot(); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get(umbracoPath('/tree/partial-view/children'), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return res(ctx.status(400)); - const response = umbPartialViewMockDB.tree.getChildrenOf(path); - return res(ctx.status(200), ctx.json(response)); - }), -]; - -const detailHandlers: RestHandler>[] = [ - rest.get(umbracoPath('/script'), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return res(ctx.status(400)); - const response = umbPartialViewMockDB.file.read(path); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.post(umbracoPath('/script'), async (req, res, ctx) => { - const requestBody = (await req.json()) as CreatePartialViewRequestModel; - if (!requestBody) return res(ctx.status(400, 'no body found')); - const path = umbPartialViewMockDB.file.create(requestBody); - return res( - ctx.status(201), - ctx.set({ - Location: path, - }), - ); - }), - - rest.delete(umbracoPath('/script'), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return res(ctx.status(400)); - umbPartialViewMockDB.file.delete(path); - return res(ctx.status(200)); - }), - - rest.put(umbracoPath('/script'), async (req, res, ctx) => { - const requestBody = (await req.json()) as UpdatePartialViewRequestModel; - if (!requestBody) return res(ctx.status(400, 'no body found')); - umbPartialViewMockDB.file.update(requestBody); - return res(ctx.status(200)); - }), -]; - -const itemHandlers: RestHandler>[] = [ - rest.get(umbracoPath('/script/item'), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); - if (!paths) return res(ctx.status(400, 'no body found')); - const response = umbPartialViewMockDB.item.getItems(paths); - return res(ctx.status(200), ctx.json(response)); - }), -]; - -const folderHandlers: RestHandler>[] = [ - rest.get(umbracoPath('/script/folder'), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return res(ctx.status(400)); - const response = umbPartialViewMockDB.folder.read(path); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.post(umbracoPath('/script/folder'), async (req, res, ctx) => { - const requestBody = (await req.json()) as CreatePartialViewRequestModel; - if (!requestBody) return res(ctx.status(400, 'no body found')); - umbPartialViewMockDB.folder.create(requestBody); - return res(ctx.status(200)); - }), - - rest.delete(umbracoPath('/script/folder'), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return res(ctx.status(400)); - umbPartialViewMockDB.folder.delete(path); - return res(ctx.status(200)); - }), -]; - -export const handlers = [...treeHandlers, ...detailHandlers, ...itemHandlers, ...folderHandlers]; From 2fbfb72fd4ecef65970d04e5181ffd91061bf298 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 09:40:13 +0100 Subject: [PATCH 236/786] add detail to repository alias --- .../src/packages/templating/partial-views/repository/index.ts | 2 +- .../packages/templating/partial-views/repository/manifests.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts index 4983dde6ec..836284940f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/index.ts @@ -1,2 +1,2 @@ export { UmbPartialViewDetailRepository } from './partial-view-detail.repository.js'; -export { UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from './manifests.js'; +export { UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS as UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts index 6eab61a7e6..03917c98eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts @@ -2,12 +2,12 @@ import { UmbPartialViewDetailRepository } from './partial-view-detail.repository import { UmbPartialViewDetailStore } from './partial-view-detail.store.js'; import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; -export const UMB_PARTIAL_VIEW_REPOSITORY_ALIAS = 'Umb.Repository.PartialView.Detail'; +export const UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.PartialView.Detail'; export const UMB_PARTIAL_VIEW_DETAIL_STORE_ALIAS = 'Umb.Store.PartialView.Detail'; const repository: ManifestRepository = { type: 'repository', - alias: UMB_PARTIAL_VIEW_REPOSITORY_ALIAS, + alias: UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS, name: 'Partial View Detail Repository', api: UmbPartialViewDetailRepository, }; From 8ff527b5c21441120a94910920f26de87b75eee4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 13:38:12 +0100 Subject: [PATCH 237/786] align partial view creation flow with current backoffice --- .../data/partial-view/partial-view.db.ts | 26 ++++- .../src/mocks/handlers/partial-view/index.ts | 3 +- .../handlers/partial-view/snippet.handlers.ts | 19 ++++ .../create/create-empty.action.ts | 12 -- .../create/create-from-snippet.action.ts | 52 --------- .../create/create-from-snippet.modal.ts | 80 ------------- .../entity-actions/create/create.action.ts | 27 +++++ .../entity-actions/create/manifests.ts | 32 ++++++ .../create/options-modal/index.ts | 15 +++ ...rtial-view-create-options-modal.element.ts | 105 ++++++++++++++++++ .../create-from-snippet-modal.token.ts | 14 +++ .../create-from-snippet-modal.ts | 96 ++++++++++++++++ .../partial-views/entity-actions/manifests.ts | 47 +------- .../partial-views/tree/folder/index.ts | 1 - .../partial-views/tree/folder/manifests.ts | 17 +-- 15 files changed, 340 insertions(+), 206 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-empty.action.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts index eff354dca6..3e8a011206 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts @@ -3,7 +3,12 @@ import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folde import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; -import { UmbMockPartialViewModel, data } from './partial-view.data.js'; +import { UmbMockPartialViewModel, data, snippets } from './partial-view.data.js'; +import { + PagedPartialViewSnippetItemResponseModel, + PartialViewSnippetItemResponseModel, + PartialViewSnippetResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; class UmbPartialViewMockDB extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); @@ -14,6 +19,25 @@ class UmbPartialViewMockDB extends UmbFileSystemMockDbBase) { super(data); } + + getSnippets(): PagedPartialViewSnippetItemResponseModel { + const snippetItems = snippets.map((item) => createSnippetItem(item)); + const total = snippetItems.length; + return { items: snippetItems, total }; + } + + getSnippet(fileName: string): PartialViewSnippetResponseModel | undefined { + const snippet = snippets.find((item) => item.fileName === fileName); + debugger; + return snippet; + } } +const createSnippetItem = (item: PartialViewSnippetResponseModel): PartialViewSnippetItemResponseModel => { + return { + name: item.name, + fileName: item.fileName, + }; +}; + export const umbPartialViewMockDB = new UmbPartialViewMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts index d2877a2ff7..a987b82248 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts @@ -2,5 +2,6 @@ import { folderHandlers } from './folder.handlers.js'; import { treeHandlers } from './tree.handlers.js'; import { detailHandlers } from './detail.handlers.js'; import { itemHandlers } from './item.handlers.js'; +import { snippetHandlers } from './snippet.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...detailHandlers]; +export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...snippetHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts new file mode 100644 index 0000000000..59aeb01ced --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts @@ -0,0 +1,19 @@ +const { rest } = window.MockServiceWorker; +import { umbPartialViewMockDB } from '../../data/partial-view/partial-view.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const snippetHandlers = [ + rest.get(umbracoPath(`${UMB_SLUG}/snippet`), (req, res, ctx) => { + const response = umbPartialViewMockDB.getSnippets(); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`${UMB_SLUG}/snippet/:fileName`), (req, res, ctx) => { + debugger; + const fileName = req.params.path as string; + if (!fileName) return res(ctx.status(400)); + const response = umbPartialViewMockDB.file.read(fileName); + return res(ctx.status(200), ctx.json(response)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-empty.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-empty.action.ts deleted file mode 100644 index 2479e0cb80..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-empty.action.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; - -export class UmbCreateEmptyPartialViewAction }> extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); - } - - async execute() { - history.pushState(null, '', `section/settings/workspace/partial-view/create/${this.unique ?? 'null'}/Empty`); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.ts deleted file mode 100644 index 30deca1f78..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.action.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { UmbPartialViewRepository } from '../../repository/index.js'; -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext, UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { SnippetItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -export interface UmbCreateFromSnippetPartialViewModalData { - snippets: SnippetItemResponseModel[]; -} - -export type UmbConfirmModalValue = undefined; - -export const UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL = new UmbModalToken( - 'Umb.Modal.CreateFromSnippetPartialView', - { - modal: { - type: 'sidebar', - }, - }, -); - -export class UmbCreateFromSnippetPartialViewAction< - T extends { copy(): Promise }, -> extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this.#modalContext = instance; - }); - } - - #modalContext?: UmbModalManagerContext; - - async execute() { - const snippets = (await this.repository?.getSnippets({}))?.data?.items ?? []; - - const modalContext = this.#modalContext?.open(UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL, { - data: { - snippets, - }, - }); - - await modalContext?.onSubmit().then((snippetName) => { - history.pushState( - null, - '', - `section/settings/workspace/partial-view/create/${this.unique ?? 'null'}/${snippetName}`, - ); - }); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.ts deleted file mode 100644 index 850cbd7492..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create-from-snippet.modal.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { UmbCreateFromSnippetPartialViewModalData } from './create-from-snippet.action.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { SnippetItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -@customElement('umb-partial-view-create-from-snippet-modal') -export default class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseElement< - UmbCreateFromSnippetPartialViewModalData, - string -> { - @state() - _snippets: Array = []; - - connectedCallback() { - super.connectedCallback(); - this._snippets = this.data?.snippets ?? []; - } - - private _submit(snippetName: string) { - this.value = snippetName; - this.modalContext?.submit(); - } - - private _close() { - this.modalContext?.reject(); - } - - render() { - return html` - -
- - ${this._snippets.map( - (snippet) => - html` this._submit(snippet.name ?? '')} - >`, - )} - -
-
- Close -
-
- `; - } - - static styles = [ - UmbTextStyles, - css` - :host { - display: block; - color: var(--uui-color-text); - --umb-header-layout-height: 70px; - } - #main { - box-sizing: border-box; - height: calc( - 100dvh - var(--umb-header-layout-height) - var(--umb-footer-layout-height) - 2 * var(--uui-size-layout-1) - ); - } - - #main uui-button { - width: 100%; - } - - h3, - p { - text-align: left; - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-partial-view-create-from-snippet-modal': UmbPartialViewCreateFromSnippetModalElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts new file mode 100644 index 0000000000..095d522ee6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts @@ -0,0 +1,27 @@ +import { UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; +import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; + +export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase { + #modalManagerContext?: UmbModalManagerContext; + + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { + super(host, repositoryAlias, unique); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.#modalManagerContext = instance; + }); + } + + async execute() { + if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); + if (!this.repository) throw new Error('Repository is not available'); + + this.#modalManagerContext?.open(UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL, { + data: { + parentUnique: this.unique, + }, + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts new file mode 100644 index 0000000000..5938ff9911 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts @@ -0,0 +1,32 @@ +import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbPartialViewCreateOptionsEntityAction } from './create.action.js'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.PartialView.CreateOptions', + name: 'Partial View Create Options Entity Action', + weight: 1000, + api: UmbPartialViewCreateOptionsEntityAction, + meta: { + icon: 'icon-add', + label: 'Create...', + repositoryAlias: UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS, + entityTypes: [UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'modal', + alias: 'Umb.Modal.PartialView.CreateOptions', + name: 'Partial View Create Options Modal', + js: () => import('./options-modal/partial-view-create-options-modal.element.js'), + }, + { + type: 'modal', + alias: 'Umb.Modal.PartialView.CreateFromSnippet', + name: 'Create Partial View From Snippet Modal', + js: () => import('./snippet-modal/create-from-snippet-modal.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts new file mode 100644 index 0000000000..eb6016ae1a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts @@ -0,0 +1,15 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbPartialViewCreateOptionsModalData { + parentUnique: string | null; +} + +export const UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL = new UmbModalToken( + 'Umb.Modal.PartialView.CreateOptions', + { + modal: { + type: 'sidebar', + size: 'small', + }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts new file mode 100644 index 0000000000..e70177a19e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -0,0 +1,105 @@ +import { UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; +import { UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL } from '../snippet-modal/create-from-snippet-modal.token.js'; +import { UmbPartialViewCreateOptionsModalData } from './index.js'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { + UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UmbModalManagerContext, + UmbModalBaseElement, +} from '@umbraco-cms/backoffice/modal'; +import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; + +@customElement('umb-partial-view-create-options-modal') +export class UmbPartialViewCreateOptionsModalElement extends UmbModalBaseElement< + UmbPartialViewCreateOptionsModalData, + string +> { + #modalManager?: UmbModalManagerContext; + #createFolderAction?: UmbCreateFolderEntityAction; + + constructor() { + super(); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.#modalManager = instance; + }); + } + + connectedCallback(): void { + super.connectedCallback(); + + if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create a folder'); + + this.#createFolderAction = new UmbCreateFolderEntityAction( + this, + UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS, + this.data.parentUnique, + ); + } + + async #onCreateFolderClick(event: PointerEvent) { + event.stopPropagation(); + + try { + await this.#createFolderAction?.execute(); + this._submitModal(); + } catch (error) { + console.error(error); + } + } + + async #onCreateFromSnippetClick(event: PointerEvent) { + event.stopPropagation(); + if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create a folder'); + + const modalContext = this.#modalManager?.open(UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL, { + data: { + parentUnique: this.data.parentUnique, + }, + }); + + modalContext?.onSubmit().then(() => this._submitModal()); + } + + // close the modal when navigating to data type + #onNavigate(event: Event) { + this._submitModal(); + } + + render() { + return html` + + + + + } + + + + } + + + + } + + + + Cancel + + `; + } + + static styles = [UmbTextStyles]; +} + +export default UmbPartialViewCreateOptionsModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-partial-view-create-options-modal': UmbPartialViewCreateOptionsModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.token.ts new file mode 100644 index 0000000000..412cb9990e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.token.ts @@ -0,0 +1,14 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbCreatePartialViewFromSnippetModalData { + parentUnique: string | null; +} + +export const UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL = new UmbModalToken( + 'Umb.Modal.PartialView.CreateFromSnippet', + { + modal: { + type: 'sidebar', + }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts new file mode 100644 index 0000000000..dfb28ee0a1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts @@ -0,0 +1,96 @@ +import { UmbCreatePartialViewFromSnippetModalData } from './create-from-snippet-modal.token.js'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import { PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; + +interface UmbSnippetLinkModel { + name: string; + path: string; +} + +@customElement('umb-partial-view-create-from-snippet-modal') +export class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseElement< + UmbCreatePartialViewFromSnippetModalData, + string +> { + @state() + _snippets: Array = []; + + protected async firstUpdated() { + const { data } = await tryExecuteAndNotify(this, PartialViewResource.getPartialViewSnippet({ take: 10000 })); + + if (data) { + this._snippets = data.items.map((snippet) => { + return { + name: snippet.name, + path: `section/settings/workspace/partial-view/create/${this.data?.parentUnique || 'null'}/${ + snippet.fileName + }`, + }; + }); + } + } + + // close the modal when navigating to data type + #onNavigate() { + this._submitModal(); + } + + render() { + return html` + +
+ + ${this._snippets.map( + (snippet) => + html` + `, + )} + +
+
+ Close +
+
+ `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + color: var(--uui-color-text); + --umb-header-layout-height: 70px; + } + #main { + box-sizing: border-box; + height: calc( + 100dvh - var(--umb-header-layout-height) - var(--umb-footer-layout-height) - 2 * var(--uui-size-layout-1) + ); + } + + #main uui-button { + width: 100%; + } + + h3, + p { + text-align: left; + } + `, + ]; +} + +export default UmbPartialViewCreateFromSnippetModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-partial-view-create-from-snippet-modal': UmbPartialViewCreateFromSnippetModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts index 6a3ab0749c..6811f425e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts @@ -1,16 +1,9 @@ -import { - UMB_PARTIAL_VIEW_ENTITY_TYPE, - UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, - UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, -} from '../entity.js'; +import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from '../repository/index.js'; - -import { UmbCreateFromSnippetPartialViewAction } from './create/create-from-snippet.action.js'; -import { UmbCreateEmptyPartialViewAction } from './create/create-empty.action.js'; +import { manifests as createManifests } from './create/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; -//Actions for partial view files const partialViewActions: Array = [ { type: 'entityAction', @@ -26,38 +19,4 @@ const partialViewActions: Array = [ }, ]; -const partialViewFolderActions: Array = [ - { - type: 'entityAction', - alias: 'Umb.EntityAction.PartialViewFolder.Create.New', - name: 'Create PartialView Entity Under Directory Action', - api: UmbCreateEmptyPartialViewAction, - meta: { - icon: 'icon-article', - label: 'New empty partial view', - repositoryAlias: UMB_PARTIAL_VIEW_REPOSITORY_ALIAS, - entityTypes: [UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE], - }, - }, - { - type: 'entityAction', - alias: 'Umb.EntityAction.PartialViewFolder.Create.From.Snippet', - name: 'Create PartialView Entity From Snippet Under Directory Action', - api: UmbCreateFromSnippetPartialViewAction, - meta: { - icon: 'icon-article', - label: 'New partial view from snippet...', - repositoryAlias: UMB_PARTIAL_VIEW_REPOSITORY_ALIAS, - entityTypes: [UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE], - }, - }, -]; - -const createFromSnippetActionModal = { - type: 'modal', - alias: 'Umb.Modal.CreateFromSnippetPartialView', - name: 'Choose insert type sidebar', - js: () => import('./create/create-from-snippet.modal.js'), -}; - -export const manifests = [...partialViewActions, ...partialViewFolderActions, createFromSnippetActionModal]; +export const manifests = [...partialViewActions, ...createManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/index.ts index 561cd27103..c8314ac30b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/index.ts @@ -2,5 +2,4 @@ export { UmbPartialViewFolderRepository } from './partial-view-folder.repository export { UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS, UMB_DELETE_PARTIAL_VIEW_FOLDER_ENTITY_ACTION_ALIAS, - UMB_CREATE_PARTIAL_VIEW_FOLDER_ENTITY_ACTION_ALIAS, } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts index 4614377bb3..fb00e9a40c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/manifests.ts @@ -1,6 +1,6 @@ -import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UmbPartialViewFolderRepository } from './partial-view-folder.repository.js'; -import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; +import { UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.PartialView.Folder'; @@ -13,21 +13,8 @@ const folderRepository: ManifestRepository = { }; export const UMB_DELETE_PARTIAL_VIEW_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.PartialView.Folder.Delete'; -export const UMB_CREATE_PARTIAL_VIEW_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.PartialView.Folder.Create'; const entityActions = [ - { - type: 'entityAction', - alias: UMB_CREATE_PARTIAL_VIEW_FOLDER_ENTITY_ACTION_ALIAS, - name: 'Create Partial View folder Entity Action', - api: UmbCreateFolderEntityAction, - meta: { - icon: 'icon-add', - label: 'Create folder...', - repositoryAlias: UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: UMB_DELETE_PARTIAL_VIEW_FOLDER_ENTITY_ACTION_ALIAS, From 6dc249ecdbe545585f8bcef505159581d92587ff Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 13:39:37 +0100 Subject: [PATCH 238/786] remove unused css --- .../create-from-snippet-modal.ts | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts index dfb28ee0a1..10e3b773d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts @@ -60,31 +60,7 @@ export class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseEle `; } - static styles = [ - UmbTextStyles, - css` - :host { - display: block; - color: var(--uui-color-text); - --umb-header-layout-height: 70px; - } - #main { - box-sizing: border-box; - height: calc( - 100dvh - var(--umb-header-layout-height) - var(--umb-footer-layout-height) - 2 * var(--uui-size-layout-1) - ); - } - - #main uui-button { - width: 100%; - } - - h3, - p { - text-align: left; - } - `, - ]; + static styles = [UmbTextStyles, css``]; } export default UmbPartialViewCreateFromSnippetModalElement; From a8bb065ec67790d0cc6606965be89e6ca1f31ecc Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 13:40:49 +0100 Subject: [PATCH 239/786] remove unused markup --- .../create-from-snippet-modal.ts | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts index 10e3b773d4..98c736ada6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts @@ -41,21 +41,15 @@ export class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseEle render() { return html` -
- - ${this._snippets.map( - (snippet) => - html` - `, - )} - -
-
- Close -
+ + ${this._snippets.map( + (snippet) => + html` + `, + )} + + Close
`; } From 2e4538402575f3f05378bb4a2b47de835d7f592c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 14:28:51 +0100 Subject: [PATCH 240/786] initialise partial view with snippet data --- .../mocks/data/partial-view/partial-view.db.ts | 4 +--- .../handlers/partial-view/snippet.handlers.ts | 5 ++--- .../repository/detail/detail-repository-base.ts | 4 ++-- .../partial-view-detail.server.data-source.ts | 3 ++- .../workspace/partial-view-workspace.context.ts | 16 +++++++++++++++- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts index 3e8a011206..8ef9315b19 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts @@ -27,9 +27,7 @@ class UmbPartialViewMockDB extends UmbFileSystemMockDbBase item.fileName === fileName); - debugger; - return snippet; + return snippets.find((item) => item.fileName === fileName); } } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts index 59aeb01ced..035570ad3e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/snippet.handlers.ts @@ -10,10 +10,9 @@ export const snippetHandlers = [ }), rest.get(umbracoPath(`${UMB_SLUG}/snippet/:fileName`), (req, res, ctx) => { - debugger; - const fileName = req.params.path as string; + const fileName = req.params.fileName as string; if (!fileName) return res(ctx.status(400)); - const response = umbPartialViewMockDB.file.read(fileName); + const response = umbPartialViewMockDB.getSnippet(fileName); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 1dae49d5eb..5ea9474d4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -50,9 +50,9 @@ export abstract class UmbDetailRepositoryBase< * @return {*} * @memberof UmbDetailRepositoryBase */ - async createScaffold(parentUnique: string | null) { + async createScaffold(parentUnique: string | null, preset?: Partial) { if (parentUnique === undefined) throw new Error('Parent unique is missing'); - return this.#detailSource.createScaffold(parentUnique); + return this.#detailSource.createScaffold(parentUnique, preset); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts index 542370513b..f5d2a590e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts @@ -18,7 +18,7 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource this.#host = host; } - async createScaffold(parentUnique: string | null) { + async createScaffold(parentUnique: string | null, preset?: Partial) { const data: UmbPartialViewDetailModel = { entityType: UMB_PARTIAL_VIEW_ENTITY_TYPE, parentUnique, @@ -26,6 +26,7 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource path: '', name: '', content: '', + ...preset, }; return { data }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index 19379b405e..ab0efaaa5b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -9,6 +9,8 @@ import { } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import { PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; export class UmbPartialViewWorkspaceContext extends UmbEditableWorkspaceContextBase @@ -68,7 +70,10 @@ export class UmbPartialViewWorkspaceContext } async create(parentUnique: string | null, snippetName = 'Empty') { - const { data } = await this.repository.createScaffold(parentUnique); + const { data: snippet } = await this.#getSnippet(snippetName); + const snippetContent = snippet?.content ?? ''; + + const { data } = await this.repository.createScaffold(parentUnique, { content: snippetContent }); if (data) { this.setIsNew(true); @@ -98,6 +103,15 @@ export class UmbPartialViewWorkspaceContext public destroy(): void { this.#data.destroy(); } + + #getSnippet(snippetFileName: string) { + return tryExecuteAndNotify( + this, + PartialViewResource.getPartialViewSnippetByFileName({ + fileName: snippetFileName, + }), + ); + } } export const UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT = new UmbContextToken< From 7d591768589e21de8fda1a81fbb2085c08bb31ad Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 14:29:43 +0100 Subject: [PATCH 241/786] use correct generic type --- .../packages/core/repository/detail/detail-repository-base.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 5ea9474d4c..ef60b07835 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -50,7 +50,7 @@ export abstract class UmbDetailRepositoryBase< * @return {*} * @memberof UmbDetailRepositoryBase */ - async createScaffold(parentUnique: string | null, preset?: Partial) { + async createScaffold(parentUnique: string | null, preset?: Partial) { if (parentUnique === undefined) throw new Error('Parent unique is missing'); return this.#detailSource.createScaffold(parentUnique, preset); } From b604c0ae290c9cf8e05e384101d61c755e103e83 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 15:12:43 +0100 Subject: [PATCH 242/786] align stylesheet create options with current backoffice --- ...rtial-view-create-options-modal.element.ts | 2 +- .../create/create-rtf.action.ts | 21 ---- .../entity-actions/create/create.action.ts | 22 +++-- .../entity-actions/create/manifests.ts | 26 +++++ .../create/options-modal/index.ts | 15 +++ ...stylesheet-create-options-modal.element.ts | 96 +++++++++++++++++++ .../stylesheets/entity-actions/manifests.ts | 65 +------------ .../stylesheets/repository/index.ts | 2 +- .../stylesheets/repository/manifests.ts | 4 +- .../stylesheets/tree/folder/index.ts | 1 - .../stylesheets/tree/folder/manifests.ts | 17 +--- 11 files changed, 162 insertions(+), 109 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create-rtf.action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts index e70177a19e..8d0f5f3cf2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -63,7 +63,7 @@ export class UmbPartialViewCreateOptionsModalElement extends UmbModalBaseElement } // close the modal when navigating to data type - #onNavigate(event: Event) { + #onNavigate() { this._submitModal(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create-rtf.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create-rtf.action.ts deleted file mode 100644 index de93d19cc1..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create-rtf.action.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; - -export class UmbCreateRTFStylesheetAction }> extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); - } - - async execute() { - if (this.unique !== null) { - // Note: %2F is a slash (/) - this.unique = this.unique.replace(/\//g, '%2F'); - } - - history.pushState( - null, - '', - `section/settings/workspace/stylesheet/create/${this.unique ?? 'null'}/view/rich-text-editor`, - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts index a8ed2d1327..d6017d256b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts @@ -1,17 +1,27 @@ +import { UMB_STYLESHEET_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; + +export class UmbStylesheetCreateOptionsEntityAction extends UmbEntityActionBase { + #modalManagerContext?: UmbModalManagerContext; -export class UmbCreateStylesheetAction }> extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.#modalManagerContext = instance; + }); } async execute() { - if (this.unique !== null) { - // Note: %2F is a slash (/) - this.unique = this.unique.replace(/\//g, '%2F'); - } + if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); + if (!this.repository) throw new Error('Repository is not available'); - history.pushState(null, '', `section/settings/workspace/stylesheet/create/${this.unique ?? 'null'}/view/code`); + this.#modalManagerContext?.open(UMB_STYLESHEET_CREATE_OPTIONS_MODAL, { + data: { + parentUnique: this.unique, + }, + }); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts new file mode 100644 index 0000000000..f29815ad7f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts @@ -0,0 +1,26 @@ +import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbStylesheetCreateOptionsEntityAction } from './create.action.js'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Stylesheet.CreateOptions', + name: 'Stylesheet Create Options Entity Action', + weight: 1000, + api: UmbStylesheetCreateOptionsEntityAction, + meta: { + icon: 'icon-add', + label: 'Create...', + repositoryAlias: UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS, + entityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'modal', + alias: 'Umb.Modal.Stylesheet.CreateOptions', + name: 'Stylesheet Create Options Modal', + js: () => import('./options-modal/stylesheet-create-options-modal.element.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/index.ts new file mode 100644 index 0000000000..96dacf0a6e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/index.ts @@ -0,0 +1,15 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbStylesheetCreateOptionsModalData { + parentUnique: string | null; +} + +export const UMB_STYLESHEET_CREATE_OPTIONS_MODAL = new UmbModalToken( + 'Umb.Modal.Stylesheet.CreateOptions', + { + modal: { + type: 'sidebar', + size: 'small', + }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts new file mode 100644 index 0000000000..d89020d26a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts @@ -0,0 +1,96 @@ +import { UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; +import { UmbStylesheetCreateOptionsModalData } from './index.js'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { + UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UmbModalManagerContext, + UmbModalBaseElement, +} from '@umbraco-cms/backoffice/modal'; +import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; + +@customElement('umb-stylesheet-create-options-modal') +export class UmbStylesheetCreateOptionsModalElement extends UmbModalBaseElement< + UmbStylesheetCreateOptionsModalData, + string +> { + #modalManager?: UmbModalManagerContext; + #createFolderAction?: UmbCreateFolderEntityAction; + + constructor() { + super(); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.#modalManager = instance; + }); + } + + connectedCallback(): void { + super.connectedCallback(); + + if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create a folder'); + + this.#createFolderAction = new UmbCreateFolderEntityAction( + this, + UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, + this.data.parentUnique, + ); + } + + async #onCreateFolderClick(event: PointerEvent) { + event.stopPropagation(); + + try { + await this.#createFolderAction?.execute(); + this._submitModal(); + } catch (error) { + console.error(error); + } + } + + // close the modal when navigating to data type + #onNavigate() { + this._submitModal(); + } + + render() { + return html` + + + + + } + + + + } + + + + } + + + + Cancel + + `; + } + + static styles = [UmbTextStyles]; +} + +export default UmbStylesheetCreateOptionsModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-stylesheet-create-options-modal': UmbStylesheetCreateOptionsModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts index ea775fc4b0..92143026f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts @@ -1,14 +1,7 @@ -import { - UMB_STYLESHEET_ENTITY_TYPE, - UMB_STYLESHEET_FOLDER_ENTITY_TYPE, - UMB_STYLESHEET_ROOT_ENTITY_TYPE, -} from '../entity.js'; - +import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; import { UMB_STYLESHEET_REPOSITORY_ALIAS } from '../repository/index.js'; -import { UmbCreateRTFStylesheetAction } from './create/create-rtf.action.js'; -import { UmbCreateStylesheetAction } from './create/create.action.js'; +import { manifests as createManifests } from './create/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const stylesheetActions: Array = [ @@ -26,56 +19,4 @@ const stylesheetActions: Array = [ }, ]; -//Actions for directories -const stylesheetFolderActions: Array = [ - { - type: 'entityAction', - alias: 'Umb.EntityAction.Stylesheet.Folder.Create', - name: 'Create Stylesheet Entity Under Directory Action', - api: UmbCreateStylesheetAction, - meta: { - icon: 'icon-script', - label: 'New stylesheet file', - repositoryAlias: UMB_STYLESHEET_REPOSITORY_ALIAS, - entityTypes: [UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE], - }, - }, - { - type: 'entityAction', - alias: 'Umb.EntityAction.Stylesheet.Folder.Create.RTF', - name: 'Create RTF Stylesheet Entity Under Directory Action', - api: UmbCreateRTFStylesheetAction, - meta: { - icon: 'icon-script', - label: 'New Rich Text Editor style sheet file', - repositoryAlias: UMB_STYLESHEET_REPOSITORY_ALIAS, - entityTypes: [UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE], - }, - }, - { - type: 'entityAction', - alias: 'Umb.EntityAction.Stylesheet.Folder.Delete', - name: 'Delete Stylesheet folder', - api: UmbDeleteFolderEntityAction, - meta: { - icon: 'icon-trash', - label: 'Delete folder....', - repositoryAlias: UMB_STYLESHEET_REPOSITORY_ALIAS, - entityTypes: [UMB_STYLESHEET_FOLDER_ENTITY_TYPE], - }, - }, - { - type: 'entityAction', - alias: 'Umb.EntityAction.Stylesheet.Folder.Create', - name: 'Create Stylesheet folder', - api: UmbCreateFolderEntityAction, - meta: { - icon: 'icon-add', - label: 'Create folder...', - repositoryAlias: UMB_STYLESHEET_REPOSITORY_ALIAS, - entityTypes: [UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE], - }, - }, -]; - -export const manifests = [...stylesheetActions, ...stylesheetFolderActions]; +export const manifests = [...stylesheetActions, ...createManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts index 1a3663f608..c34089a36b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts @@ -1,5 +1,5 @@ export * from './item/index.js'; export * from './stylesheet-detail.repository.js'; -export { UMB_STYLESHEET_REPOSITORY_ALIAS } from './manifests.js'; +export { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS as UMB_STYLESHEET_REPOSITORY_ALIAS } from './manifests.js'; export { type UmbStylesheetDetailStore, UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts index 7a7e8368e1..5c199b1d1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts @@ -3,12 +3,12 @@ import { manifests as itemManifests } from './item/manifests.js'; import { UmbStylesheetDetailStore } from './stylesheet-detail.store.js'; import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; -export const UMB_STYLESHEET_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Detail'; +export const UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Detail'; export const UMB_STYLESHEET_DETAIL_STORE_ALIAS = 'Umb.Store.Stylesheet.Detail'; const repository: ManifestRepository = { type: 'repository', - alias: UMB_STYLESHEET_REPOSITORY_ALIAS, + alias: UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS, name: 'Stylesheet Detail Repository', api: UmbStylesheetDetailRepository, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts index 51fdfcfee3..191e002803 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/index.ts @@ -2,5 +2,4 @@ export { UmbStylesheetFolderRepository } from './stylesheet-folder.repository.js export { UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, UMB_DELETE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, - UMB_CREATE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts index 33942be4d4..7f97dac1c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/manifests.ts @@ -1,6 +1,6 @@ -import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UmbStylesheetFolderRepository } from './stylesheet-folder.repository.js'; -import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; +import { UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Folder'; @@ -13,21 +13,8 @@ const folderRepository: ManifestRepository = { }; export const UMB_DELETE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Stylesheet.Folder.Delete'; -export const UMB_CREATE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Stylesheet.Folder.Create'; const entityActions = [ - { - type: 'entityAction', - alias: UMB_CREATE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, - name: 'Create Stylesheet folder Entity Action', - api: UmbCreateFolderEntityAction, - meta: { - icon: 'icon-add', - label: 'Create folder...', - repositoryAlias: UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: UMB_DELETE_STYLESHEET_FOLDER_ENTITY_ACTION_ALIAS, From 9c943ac4593276906593abce8da8f8bb88b0caa0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 15:44:30 +0100 Subject: [PATCH 243/786] align script create options with current backoffice --- .../create/create-empty.action.ts | 17 ---- .../entity-actions/create/create.action.ts | 27 ++++++ .../entity-actions/create/manifests.ts | 26 ++++++ .../create/options-modal/index.ts | 15 ++++ .../script-create-options-modal.element.ts | 84 +++++++++++++++++++ .../scripts/entity-actions/manifests.ts | 22 +---- .../templating/scripts/tree/folder/index.ts | 6 +- .../scripts/tree/folder/manifests.ts | 17 +--- 8 files changed, 158 insertions(+), 56 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create-empty.action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create-empty.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create-empty.action.ts deleted file mode 100644 index f6103963d6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create-empty.action.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; - -export class UmbCreateScriptAction }> extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); - } - - async execute() { - if (this.unique !== null) { - // Note: %2F is a slash (/) - this.unique = this.unique.replace(/\//g, '%2F'); - } - - history.pushState(null, '', `section/settings/workspace/script/create/${this.unique ?? 'null'}`); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts new file mode 100644 index 0000000000..67e3de6dba --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts @@ -0,0 +1,27 @@ +import { UMB_SCRIPT_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; +import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; + +export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase { + #modalManagerContext?: UmbModalManagerContext; + + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { + super(host, repositoryAlias, unique); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.#modalManagerContext = instance; + }); + } + + async execute() { + if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); + if (!this.repository) throw new Error('Repository is not available'); + + this.#modalManagerContext?.open(UMB_SCRIPT_CREATE_OPTIONS_MODAL, { + data: { + parentUnique: this.unique, + }, + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts new file mode 100644 index 0000000000..1d2209278e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts @@ -0,0 +1,26 @@ +import { UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbScriptCreateOptionsEntityAction } from './create.action.js'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Script.CreateOptions', + name: 'Script Create Options Entity Action', + weight: 1000, + api: UmbScriptCreateOptionsEntityAction, + meta: { + icon: 'icon-add', + label: 'Create...', + repositoryAlias: UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS, + entityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'modal', + alias: 'Umb.Modal.Script.CreateOptions', + name: 'Script Create Options Modal', + js: () => import('./options-modal/script-create-options-modal.element.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/index.ts new file mode 100644 index 0000000000..f3b3126bb7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/index.ts @@ -0,0 +1,15 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbScriptCreateOptionsModalData { + parentUnique: string | null; +} + +export const UMB_SCRIPT_CREATE_OPTIONS_MODAL = new UmbModalToken( + 'Umb.Modal.Script.CreateOptions', + { + modal: { + type: 'sidebar', + size: 'small', + }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts new file mode 100644 index 0000000000..ebf1dde004 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts @@ -0,0 +1,84 @@ +import { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; +import { UmbScriptCreateOptionsModalData } from './index.js'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { + UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UmbModalManagerContext, + UmbModalBaseElement, +} from '@umbraco-cms/backoffice/modal'; +import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; + +@customElement('umb-script-create-options-modal') +export class UmbScriptCreateOptionsModalElement extends UmbModalBaseElement { + #modalManager?: UmbModalManagerContext; + #createFolderAction?: UmbCreateFolderEntityAction; + + constructor() { + super(); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.#modalManager = instance; + }); + } + + connectedCallback(): void { + super.connectedCallback(); + + if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create a folder'); + + this.#createFolderAction = new UmbCreateFolderEntityAction( + this, + UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, + this.data.parentUnique, + ); + } + + async #onCreateFolderClick(event: PointerEvent) { + event.stopPropagation(); + + try { + await this.#createFolderAction?.execute(); + this._submitModal(); + } catch (error) { + console.error(error); + } + } + + // close the modal when navigating to data type + #onNavigate() { + this._submitModal(); + } + + render() { + return html` + + + + + } + + + + } + + + + Cancel + + `; + } + + static styles = [UmbTextStyles]; +} + +export default UmbScriptCreateOptionsModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-script-create-options-modal': UmbScriptCreateOptionsModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts index 28bd08fd8f..a8f9b9afb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts @@ -1,11 +1,10 @@ import { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; -import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; -import { UmbCreateScriptAction } from './create/create-empty.action.js'; +import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; +import { manifests as createManifests } from './create/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DELETE_SCRIPT_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Delete'; -export const UMB_CREATE_SCRIPT_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Create'; const scriptViewActions: Array = [ { @@ -22,19 +21,4 @@ const scriptViewActions: Array = [ }, ]; -const scriptFolderActions: Array = [ - { - type: 'entityAction', - alias: UMB_CREATE_SCRIPT_ENTITY_ACTION_ALIAS, - name: 'Create Script Under Directory Entity Action', - api: UmbCreateScriptAction, - meta: { - icon: 'icon-article', - label: 'New empty script', - repositoryAlias: UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS, - entityTypes: [UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE], - }, - }, -]; - -export const manifests = [...scriptViewActions, ...scriptFolderActions]; +export const manifests = [...scriptViewActions, ...createManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts index ae1d18208a..83ac344c66 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/index.ts @@ -1,6 +1,2 @@ export { UmbScriptFolderRepository } from './script-folder.repository.js'; -export { - UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, - UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, - UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, -} from './manifests.js'; +export { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts index 017ab70edb..1288d808b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/manifests.ts @@ -1,6 +1,6 @@ -import { UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UmbScriptFolderRepository } from './script-folder.repository.js'; -import { UmbCreateFolderEntityAction, UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; +import { UmbDeleteFolderEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.Script.Folder'; @@ -13,21 +13,8 @@ const folderRepository: ManifestRepository = { }; export const UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Folder.Delete'; -export const UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Folder.Create'; const entityActions = [ - { - type: 'entityAction', - alias: UMB_CREATE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, - name: 'Create Script folder', - api: UmbCreateFolderEntityAction, - meta: { - icon: 'icon-add', - label: 'Create folder...', - repositoryAlias: UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: UMB_DELETE_SCRIPT_FOLDER_ENTITY_ACTION_ALIAS, From 7ee34905f001f826c4c8c3ec335ab1a5462de06f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 10 Jan 2024 15:46:24 +0100 Subject: [PATCH 244/786] revert openapi url --- src/Umbraco.Web.UI.Client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 087f235373..42d368ce7c 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -110,7 +110,7 @@ "format:fix": "npm run format -- --write", "format": "prettier 'src/**/*.ts' -- check", "generate:api-dev": "openapi --input http://localhost:11000/umbraco/swagger/management/swagger.json --output src/external/backend-api/src --postfixServices Resource --useOptions", - "generate:api": "openapi --input https://raw.githubusercontent.com/umbraco/Umbraco-CMS/v14/fix/file-system-endpoints-remake/src/Umbraco.Cms.Api.Management/OpenApi.json --output src/external/backend-api/src --postfixServices Resource --useOptions", + "generate:api": "openapi --input https://raw.githubusercontent.com/umbraco/Umbraco-CMS/v14/dev/src/Umbraco.Cms.Api.Management/OpenApi.json --output src/external/backend-api/src --postfixServices Resource --useOptions", "generate:icons": "node ./devops/icons/index.js", "generate:jsonschema:dist": "typescript-json-schema --required --include \"./src/packages/core/extension-registry/umbraco-package.ts\" --out dist-cms/umbraco-package-schema.json tsconfig.json UmbracoPackage", "generate:jsonschema": "typescript-json-schema --required --include \"./src/packages/core/extension-registry/*.ts\"", From 3926a941e19eaeba3cd6b449b9b93e5046cf74ec Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 11 Jan 2024 11:40:17 +0100 Subject: [PATCH 245/786] add mock entity managers --- .../src/mocks/data/entity/entity-base.ts | 24 ++++++ .../data/entity/entity-detail.manager.ts | 46 +++++++++++ .../data/entity/entity-folder.manager.ts | 61 ++++++++++++++ .../mocks/data/entity/entity-item.manager.ts | 16 ++++ .../mocks/data/entity/entity-tree.manager.ts | 82 +++++++++++++++++++ 5 files changed, 229 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-base.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-base.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-base.ts new file mode 100644 index 0000000000..42dee34374 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-base.ts @@ -0,0 +1,24 @@ +import { UmbData } from '../data.js'; + +export abstract class UmbEntityMockDbBase extends UmbData { + constructor(data: Array) { + super(data); + } + + create(item: MockItemType) { + this.data.push(item); + } + + read(id: string) { + return this.data.find((item) => item.id === id); + } + + update(id: string, updatedItem: MockItemType) { + const itemIndex = this.data.findIndex((item) => item.id === id); + this.data[itemIndex] = updatedItem; + } + + delete(id: string) { + this.data = this.data.filter((item) => item.id !== id); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts new file mode 100644 index 0000000000..9bcca3d802 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts @@ -0,0 +1,46 @@ +import { UmbEntityMockDbBase } from './entity-base.js'; + +export class UmbMockEntityDetailManager { + #db: UmbEntityMockDbBase; + #createMockItemMapper: (request: any) => MockType; + #readResponseMapper: (mockItem: MockType) => any; + + constructor( + db: UmbEntityMockDbBase, + createMockItemMapper: (request: any) => MockType, + readResponseMapper: (mockItem: MockType) => any, + ) { + this.#db = db; + this.#createMockItemMapper = createMockItemMapper; + this.#readResponseMapper = readResponseMapper; + } + + create(request: any) { + const mockItem = this.#createMockItemMapper(request); + // create mock item in mock db + this.#db.create(mockItem); + return mockItem.id; + } + + read(id: string) { + const item = this.#db.read(id); + if (!item) throw new Error('Item not found'); + const mappedItem = this.#readResponseMapper(item); + return mappedItem; + } + + update(id: string, item: any) { + const mockItem = this.#db.read(id); + + const updatedMockItem = { + ...mockItem, + ...item, + } as unknown as MockType; + + this.#db.update(id, updatedMockItem); + } + + delete(path: string) { + this.#db.delete(path); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts new file mode 100644 index 0000000000..dd11be95a2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts @@ -0,0 +1,61 @@ +import { UmbEntityMockDbBase } from './entity-base.js'; +import { + CreateFolderRequestModel, + FolderResponseModel, + FolderTreeItemResponseModel, + UpdateFolderResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export class UmbMockEntityFolderManager> { + #db: UmbEntityMockDbBase; + #createMockFolderMapper: (request: CreateFolderRequestModel) => MockItemType; + + constructor( + db: UmbEntityMockDbBase, + createMockFolderMapper: (request: CreateFolderRequestModel) => MockItemType, + ) { + this.#db = db; + this.#createMockFolderMapper = createMockFolderMapper; + } + + create(request: CreateFolderRequestModel) { + const newFolder = this.#createMockFolderMapper(request); + this.#db.create(newFolder); + return newFolder.id; + } + + read(id: string) { + const mockItem = this.#db.read(id); + if (mockItem?.isFolder) { + return this.#defaultReadMapper(mockItem); + } else { + return undefined; + } + } + + update(id: string, request: UpdateFolderResponseModel) { + const mockItem = this.#db.read(id); + + const updatedMockItem = { + ...mockItem, + name: request.name, + } as unknown as MockItemType; + + this.#db.update(id, updatedMockItem); + } + + delete(id: string) { + const dbItem = this.#db.read(id); + if (dbItem?.isFolder) { + this.#db.delete(id); + } + } + + #defaultReadMapper = (item: MockItemType): FolderResponseModel => { + return { + name: item.name, + id: item.id, + parentId: item.parentId, + }; + }; +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts new file mode 100644 index 0000000000..7d3219e7b5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts @@ -0,0 +1,16 @@ +import { UmbData } from '../data.js'; + +export class UmbMockEntityItemManager { + #db: UmbData; + #itemReadMapper: (item: T) => any; + + constructor(db: UmbData, itemReadMapper: (item: T) => any) { + this.#db = db; + this.#itemReadMapper = itemReadMapper; + } + + getItems(ids: Array) { + const items = this.#db.getData().filter((item) => ids.includes(item.id)); + return items.map((item) => this.#itemReadMapper(item)); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts new file mode 100644 index 0000000000..724d3e62ce --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts @@ -0,0 +1,82 @@ +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbEntityMockDbBase } from './entity-base.js'; +import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbMockEntityTreeManager> { + #db: UmbEntityMockDbBase; + #treeItemMapper: (item: T) => any; + + constructor(mockDb: UmbEntityMockDbBase, treeItemMapper: (item: T) => any) { + this.#db = mockDb; + this.#treeItemMapper = treeItemMapper; + } + + getRoot() { + const items = this.#db.getData().filter((item) => item.parentId === null); + const treeItems = items.map((item) => this.#treeItemMapper(item)); + const total = items.length; + return { items: treeItems, total }; + } + + getChildrenOf(parentId: string) { + const items = this.#db.getData().filter((item) => item.parentId === parentId); + const treeItems = items.map((item) => this.#treeItemMapper(item)); + const total = items.length; + return { items: treeItems, total }; + } + + move(ids: Array, destinationId: string) { + const destinationItem = this.#db.read(destinationId); + if (!destinationItem) throw new Error(`Destination item with id ${destinationId} not found`); + + const items: Array = []; + + ids.forEach((id) => { + const item = this.#db.read(id); + if (!item) throw new Error(`Item with id ${id} not found`); + items.push(item); + }); + + const movedItems = items.map((item) => { + return { + ...item, + parentId: destinationId, + }; + }); + + movedItems.forEach((movedItem: any) => this.#db.update(movedItem.id, movedItem)); + destinationItem.hasChildren = true; + this.#db.update(destinationItem.id, destinationItem); + } + + copy(ids: Array, destinationId: string) { + const destinationItem = this.#db.read(destinationId); + if (!destinationItem) throw new Error(`Destination item with id ${destinationId} not found`); + + // TODO: Notice we don't add numbers to the 'copy' name. + const items: Array = []; + + ids.forEach((id) => { + const item = this.#db.read(id); + if (!item) throw new Error(`Item with id ${id} not found`); + items.push(item); + }); + + const copyItems = items.map((item) => { + return { + ...item, + name: item.name + ' Copy', + id: UmbId.new(), + parentId: destinationId, + }; + }); + + copyItems.forEach((copyItem) => this.#db.create(copyItem)); + const newIds = copyItems.map((item) => item.id); + + destinationItem.hasChildren = true; + this.#db.update(destinationItem.id, destinationItem); + + return newIds; + } +} From 93c876b6bb7f29cfc7e755c6dd8c54f7cf3e07b5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 11 Jan 2024 11:40:36 +0100 Subject: [PATCH 246/786] use new managers for data type mock data --- .../data/{ => data-type}/data-type.data.ts | 238 +++++++++--------- .../src/mocks/data/data-type/data-type.db.ts | 72 ++++++ .../src/mocks/data/utils.ts | 2 +- .../mocks/handlers/data-type/copy.handlers.ts | 14 +- .../handlers/data-type/detail.handlers.ts | 42 ++-- .../handlers/data-type/folder.handlers.ts | 54 ++-- .../mocks/handlers/data-type/item.handlers.ts | 4 +- .../mocks/handlers/data-type/move.handlers.ts | 13 +- .../mocks/handlers/data-type/tree.handlers.ts | 17 +- 9 files changed, 260 insertions(+), 196 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/data/{ => data-type}/data-type.data.ts (81%) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index b91e455185..9c2268d4de 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -1,50 +1,56 @@ -import { UmbEntityTreeData } from './entity-tree.data.js'; -import { UmbEntityData } from './entity.data.js'; -import { createFolderTreeItem } from './utils.js'; -import { UmbId } from '@umbraco-cms/backoffice/id'; -import type { - FolderTreeItemResponseModel, - DataTypeResponseModel, - CreateFolderRequestModel, +import { DataTypeItemResponseModel, + DataTypeResponseModel, + DataTypeTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -// TODO: investigate why we don't get an type as part of the DataTypeModel -export const data: Array = [ +export type UmbMockDataTypeModelHack = DataTypeResponseModel & + DataTypeTreeItemResponseModel & + DataTypeItemResponseModel; + +export interface UmbMockDataTypeModel extends Omit {} + +export const data: Array = [ { - type: 'data-type', name: 'Folder 1', id: 'dt-folder1', parentId: null, isFolder: true, hasChildren: false, isContainer: false, + editorAlias: '', + values: [], }, { - type: 'data-type', name: 'Folder 2', id: 'dt-folder2', parentId: null, isFolder: true, hasChildren: true, isContainer: false, + editorAlias: '', + values: [], }, { - type: 'data-type', id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', parentId: null, name: 'Textstring', editorAlias: 'Umbraco.TextBox', editorUiAlias: 'Umb.PropertyEditorUi.TextBox', values: [], + hasChildren: false, + isContainer: false, + isFolder: false, }, { - type: 'data-type', name: 'Text', id: 'dt-textBox', parentId: null, editorAlias: 'Umbraco.TextBox', editorUiAlias: 'Umb.PropertyEditorUi.TextBox', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'maxChars', @@ -53,30 +59,36 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Text Area', id: 'dt-textArea', parentId: null, editorAlias: 'Umbraco.TextArea', editorUiAlias: 'Umb.PropertyEditorUi.TextArea', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'My JS Property Editor', id: 'dt-custom', parentId: null, editorAlias: 'Umbraco.Label', editorUiAlias: 'My.PropertyEditorUI.Custom', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Color Picker', id: 'dt-colorPicker', parentId: null, editorAlias: 'Umbraco.ColorPicker', editorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'useLabel', @@ -126,12 +138,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Content Picker', id: 'dt-contentPicker', parentId: null, editorAlias: 'Umbraco.ContentPicker', editorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'validationLimit', @@ -140,12 +154,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Eye Dropper', id: 'dt-eyeDropper', parentId: null, editorAlias: 'Umbraco.ColorPicker.EyeDropper', editorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { //showPalette @@ -176,12 +192,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Multi URL Picker', id: 'dt-multiUrlPicker', parentId: null, editorAlias: 'Umbraco.MultiUrlPicker', editorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'overlaySize', @@ -206,12 +224,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Multi Node Tree Picker', id: 'dt-multiNodeTreePicker', parentId: null, editorAlias: 'Umbraco.MultiNodeTreePicker', editorUiAlias: 'Umb.PropertyEditorUi.TreePicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'startNode', @@ -243,12 +263,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Date Picker', id: 'dt-datePicker', parentId: null, editorAlias: 'Umbraco.DateTime', editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'format', @@ -265,11 +287,13 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Date Picker With Time', id: 'dt-datePicker-time', parentId: null, editorAlias: 'Umbraco.DateTime', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'format', @@ -282,12 +306,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Time', id: 'dt-time', parentId: null, editorAlias: 'Umbraco.DateTime', editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'format', @@ -300,12 +326,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Email', id: 'dt-email', parentId: null, editorAlias: 'Umbraco.EmailAddress', editorUiAlias: 'Umb.PropertyEditorUi.Email', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'inputMode', @@ -314,12 +342,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Multiple Text String', id: 'dt-multipleTextString', parentId: null, editorAlias: 'Umbraco.MultipleTextString', editorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'minNumber', @@ -332,12 +362,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Dropdown', id: 'dt-dropdown', parentId: null, editorAlias: 'Umbraco.DropDown.Flexible', editorUiAlias: 'Umb.PropertyEditorUi.Dropdown', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'multiple', @@ -354,12 +386,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Slider', id: 'dt-slider', parentId: null, editorAlias: 'Umbraco.Slider', editorUiAlias: 'Umb.PropertyEditorUi.Slider', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'enableRange', @@ -388,12 +422,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Toggle', id: 'dt-toggle', parentId: null, editorAlias: 'Umbraco.TrueFalse', editorUiAlias: 'Umb.PropertyEditorUi.Toggle', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'default', @@ -414,12 +450,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Tags', id: 'dt-tags', parentId: null, editorAlias: 'Umbraco.Tags', editorUiAlias: 'Umb.PropertyEditorUi.Tags', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'group', @@ -432,21 +470,25 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Markdown Editor', id: 'dt-markdownEditor', parentId: null, editorAlias: 'Umbraco.MarkdownEditor', editorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Radio Button List', id: 'dt-radioButtonList', parentId: null, editorAlias: 'Umbraco.RadioButtonList', editorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'items', @@ -459,12 +501,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Checkbox List', id: 'dt-checkboxList', parentId: null, editorAlias: 'Umbraco.CheckboxList', editorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'items', @@ -477,30 +521,36 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Block List', id: 'dt-blockList', parentId: null, editorAlias: 'Umbraco.BlockList', editorUiAlias: 'Umb.PropertyEditorUi.BlockList', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Media Picker', id: 'dt-mediaPicker', parentId: null, editorAlias: 'Umbraco.MediaPicker3', editorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Image Cropper', id: 'dt-imageCropper', parentId: null, editorAlias: 'Umbraco.ImageCropper', editorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'crops', @@ -525,12 +575,14 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Upload Field', id: 'dt-uploadField', parentId: null, editorAlias: 'Umbraco.UploadField', editorUiAlias: 'Umb.PropertyEditorUi.UploadField', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'fileExtensions', @@ -543,39 +595,47 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Block Grid', id: 'dt-blockGrid', parentId: null, editorAlias: 'Umbraco.BlockGrid', editorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Collection View', id: 'dt-collectionView', parentId: null, editorAlias: 'Umbraco.ListView', editorUiAlias: 'Umb.PropertyEditorUi.CollectionView', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Icon Picker', id: 'dt-iconPicker', parentId: null, editorAlias: 'Umbraco.IconPicker', editorUiAlias: 'Umb.PropertyEditorUi.IconPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Rich Text Editor', id: 'dt-richTextEditor', parentId: null, editorAlias: 'Umbraco.RichText', editorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'hideLabel', @@ -648,30 +708,36 @@ export const data: Array = ], }, { - type: 'data-type', name: 'Label', id: 'dt-label', parentId: null, editorAlias: 'Umbraco.Label', editorUiAlias: 'Umb.PropertyEditorUi.Label', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Integer', id: 'dt-integer', parentId: null, editorAlias: 'Umbraco.Integer', editorUiAlias: 'Umb.PropertyEditorUi.Integer', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Decimal', id: 'dt-decimal', parentId: null, editorAlias: 'Umbraco.Decimal', editorUiAlias: 'Umb.PropertyEditorUi.Decimal', + hasChildren: false, + isContainer: false, + isFolder: false, values: [ { alias: 'step', @@ -680,112 +746,58 @@ export const data: Array = ], }, { - type: 'data-type', name: 'User Picker', id: 'dt-userPicker', parentId: null, editorAlias: 'Umbraco.UserPicker', editorUiAlias: 'Umb.PropertyEditorUi.UserPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Member Picker', id: 'dt-memberPicker', parentId: null, editorAlias: 'Umbraco.MemberPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Member Group Picker', id: 'dt-memberGroupPicker', parentId: null, editorAlias: 'Umbraco.MemberGroupPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Data Type in folder', id: 'dt-data-type-in-folder', parentId: 'dt-folder2', editorAlias: 'Umbraco.MemberGroupPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, { - type: 'data-type', name: 'Static File Picker', id: 'dt-staticFilePicker', parentId: null, editorAlias: 'Umbraco.Label', editorUiAlias: 'Umb.PropertyEditorUi.StaticFilePicker', + hasChildren: false, + isContainer: false, + isFolder: false, values: [], }, ]; - -const createDataTypeItem = (item: DataTypeResponseModel | FolderTreeItemResponseModel): DataTypeItemResponseModel => { - return { - id: item.id, - name: item.name, - }; -}; - -class UmbDataTypeData extends UmbEntityData { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - #tree = new UmbEntityTreeData(this); - - constructor() { - super(data); - } - - getTreeRoot(): Array { - const rootItems = this.data.filter((item) => item.parentId === null); - return rootItems.map((item) => createFolderTreeItem(item)); - } - - getTreeItemChildren(id: string): Array { - const childItems = this.data.filter((item) => item.parentId === id); - return childItems.map((item) => createFolderTreeItem(item)); - } - - getItems(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => createDataTypeItem(item)); - } - - createFolder(folder: CreateFolderRequestModel) { - const newFolder: FolderTreeItemResponseModel = { - type: 'data-type-folder', - name: folder.name, - id: folder.id ? folder.id : UmbId.new(), - parentId: folder.parentId, - isFolder: true, - isContainer: false, - hasChildren: false, - }; - - this.data.push(newFolder); - } - - // TODO: this could be reused across other types that support folders - deleteFolder(id: string) { - const item = this.getById(id) as FolderTreeItemResponseModel; - if (!item) throw new Error(`Item with id ${id} not found`); - if (!item.isFolder) throw new Error(`Item with id ${id} is not a folder`); - this.data = this.data.filter((item) => item.id !== id); - } - - copy(ids: Array, destinationKey: string) { - return this.#tree.copy(ids, destinationKey); - } - - move(ids: Array, destinationKey: string) { - return this.#tree.move(ids, destinationKey); - } -} - -export const umbDataTypeData = new UmbDataTypeData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts new file mode 100644 index 0000000000..85a1171671 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts @@ -0,0 +1,72 @@ +import { UmbEntityMockDbBase } from '../entity/entity-base.js'; +import { UmbMockEntityFolderManager } from '../entity/entity-folder.manager.js'; +import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; +import { folderTreeItemMapper } from '../utils.js'; +import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; +import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; +import { UmbMockDataTypeModel, data } from './data-type.data.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { + CreateDataTypeRequestModel, + CreateFolderRequestModel, + DataTypeItemResponseModel, + DataTypeResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +class UmbDataTypeMockDB extends UmbEntityMockDbBase { + tree = new UmbMockEntityTreeManager(this, folderTreeItemMapper); + folder = new UmbMockEntityFolderManager(this, createMockDataTypeFolderMapper); + item = new UmbMockEntityItemManager(this, dataTypeItemMapper); + detail = new UmbMockEntityDetailManager(this, createMockDataTypeMapper, dataTypeDetailMapper); + + constructor(data: Array) { + super(data); + } +} + +const createMockDataTypeFolderMapper = (request: CreateFolderRequestModel): UmbMockDataTypeModel => { + return { + name: request.name, + id: request.id ? request.id : UmbId.new(), + parentId: request.parentId, + isFolder: true, + hasChildren: false, + isContainer: false, + editorAlias: '', + values: [], + }; +}; + +const createMockDataTypeMapper = (request: CreateDataTypeRequestModel): UmbMockDataTypeModel => { + return { + id: request.id ? request.id : UmbId.new(), + parentId: request.parentId, + name: request.name, + editorAlias: request.editorAlias, + editorUiAlias: request.editorUiAlias, + values: request.values, + isFolder: false, + hasChildren: false, + isContainer: false, + }; +}; + +const dataTypeDetailMapper = (item: UmbMockDataTypeModel): DataTypeResponseModel => { + return { + id: item.id, + parentId: item.parentId, + name: item.name, + editorAlias: item.editorAlias, + editorUiAlias: item.editorUiAlias, + values: item.values, + }; +}; + +const dataTypeItemMapper = (item: UmbMockDataTypeModel): DataTypeItemResponseModel => { + return { + id: item.id, + name: item.name, + }; +}; + +export const umbDataTypeMockDb = new UmbDataTypeMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index b1e479d1e9..8af57b4705 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -24,7 +24,7 @@ export const createEntityTreeItem = (item: any): EntityTreeItemResponseModel => }; }; -export const createFolderTreeItem = (item: any): FolderTreeItemResponseModel => { +export const folderTreeItemMapper = (item: any): FolderTreeItemResponseModel => { return { ...createEntityTreeItem(item), isFolder: item.isFolder, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts index ff9898442c..904bb7f6e4 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts @@ -1,18 +1,20 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; +import { CopyDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const copyHandlers = [ rest.post(umbracoPath(`${UMB_SLUG}/:id/copy`), async (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; + if (!id) return res(ctx.status(400, 'no id found')); - const data = await req.json(); - if (!data) return; + const requestBody = (await req.json()) as CopyDataTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + if (!requestBody.targetId) return res(ctx.status(400, 'no targetId found')); - const newIds = umbDataTypeData.copy([id], data.targetId); + const newIds = umbDataTypeMockDb.tree.copy([id], requestBody.targetId); - return res(ctx.status(200), ctx.set({ Location: newIds[0] })); + return res(ctx.status(201), ctx.set({ Location: newIds[0] })); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts index e2e1f86552..8755fe49fe 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts @@ -1,44 +1,44 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; +import { CreateDataTypeRequestModel, UpdateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; + const requestBody = (await req.json()) as CreateDataTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); - umbDataTypeData.insert(data); + const id = umbDataTypeMockDb.detail.create(requestBody); - return res(ctx.status(200)); + return res( + ctx.status(201), + ctx.set({ + Location: id, + }), + ); }), rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - - const dataType = umbDataTypeData.getById(id); - - return res(ctx.status(200), ctx.json(dataType)); + if (!id) return res(ctx.status(400)); + const response = umbDataTypeMockDb.detail.read(id); + return res(ctx.status(200), ctx.json(response)); }), rest.put(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - - umbDataTypeData.save(id, data); - + if (!id) return res(ctx.status(400)); + const requestBody = (await req.json()) as UpdateDataTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbDataTypeMockDb.detail.update(id, requestBody); return res(ctx.status(200)); }), - rest.delete(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { + rest.delete(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - - umbDataTypeData.delete([id]); - + if (!id) return res(ctx.status(400)); + umbDataTypeMockDb.detail.delete(id); return res(ctx.status(200)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts index 468b22c955..2326b0a4fd 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts @@ -1,55 +1,43 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; export const folderHandlers = [ rest.post(umbracoPath(`${UMB_SLUG}/folder`), async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; + const requestBody = await req.json(); + if (!requestBody) return res(ctx.status(400, 'no body found')); - umbDataTypeData.createFolder(data); + const id = umbDataTypeMockDb.folder.create(requestBody); - return res(ctx.status(200)); + return res( + ctx.status(201), + ctx.set({ + Location: id, + }), + ); }), rest.get(umbracoPath(`${UMB_SLUG}/folder/:id`), (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - - const dataType = umbDataTypeData.getById(id); - - return res(ctx.status(200), ctx.json(dataType)); + if (!id) return res(ctx.status(400)); + const response = umbDataTypeMockDb.folder.read(id); + return res(ctx.status(200), ctx.json(response)); }), rest.put(umbracoPath(`${UMB_SLUG}/folder/:id`), async (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - - umbDataTypeData.save(id, data); - + if (!id) return res(ctx.status(400, 'no id found')); + const requestBody = await req.json(); + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbDataTypeMockDb.folder.update(id, requestBody); return res(ctx.status(200)); }), - rest.delete(umbracoPath(`${UMB_SLUG}/folder/:id`), async (req, res, ctx) => { + rest.delete(umbracoPath(`${UMB_SLUG}/folder/:id`), (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - - try { - umbDataTypeData.deleteFolder(id); - return res(ctx.status(200)); - } catch (error) { - return res( - ctx.status(404), - ctx.json({ - status: 404, - type: 'error', - detail: 'Not Found', - }), - ); - } + if (!id) return res(ctx.status(400)); + umbDataTypeMockDb.folder.delete(id); + return res(ctx.status(200)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/item.handlers.ts index 9b69739d37..92b9f93a08 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/item.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -7,7 +7,7 @@ export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const ids = req.url.searchParams.getAll('id'); if (!ids) return; - const items = umbDataTypeData.getItems(ids); + const items = umbDataTypeMockDb.item.getItems(ids); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts index 24d6de9390..de4b018654 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts @@ -1,18 +1,19 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; +import { MoveDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const moveHandlers = [ rest.post(umbracoPath(`${UMB_SLUG}/:id/move`), async (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; + if (!id) return res(ctx.status(400)); - const data = await req.json(); - if (!data) return; - - umbDataTypeData.move([id], data.targetId); + const requestBody = (await req.json()) as MoveDataTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + if (!requestBody.targetId) return res(ctx.status(400, 'no targetId found')); + umbDataTypeMockDb.tree.move([id], requestBody.targetId); return res(ctx.status(200)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts index 63ba0ca1c4..6b40a709ad 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/tree.handlers.ts @@ -1,29 +1,18 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeData } from '../../data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const rootItems = umbDataTypeData.getTreeRoot(); - const response = { - total: rootItems.length, - items: rootItems, - }; + const response = umbDataTypeMockDb.tree.getRoot(); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - - const children = umbDataTypeData.getTreeItemChildren(parentId); - - const response = { - total: children.length, - items: children, - }; - + const response = umbDataTypeMockDb.tree.getChildrenOf(parentId); return res(ctx.status(200), ctx.json(response)); }), ]; From 0affef07f740c3b89270692e448366a3587f42e7 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 11 Jan 2024 13:11:25 +0100 Subject: [PATCH 247/786] use entity managers for media type mock data --- .../mocks/data/entity/entity-tree.manager.ts | 2 +- .../src/mocks/data/media-type.data.ts | 103 ---------------- .../mocks/data/media-type/media-type.data.ts | 33 +++++ .../mocks/data/media-type/media-type.db.ts | 113 ++++++++++++++++++ .../handlers/media-type/detail.handlers.ts | 42 +++---- .../handlers/media-type/folder.handlers.ts | 43 +++++++ .../src/mocks/handlers/media-type/index.ts | 3 +- .../handlers/media-type/item.handlers.ts | 11 +- .../handlers/media-type/tree.handlers.ts | 17 +-- 9 files changed, 218 insertions(+), 149 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/media-type.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts index 724d3e62ce..baae238df4 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts @@ -1,5 +1,5 @@ -import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbEntityMockDbBase } from './entity-base.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMockEntityTreeManager> { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type.data.ts deleted file mode 100644 index e06403f0f9..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type.data.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { UmbEntityData } from './entity.data.js'; -import { createMediaTypeTreeItem } from './utils.js'; -import { - MediaTypeItemResponseModel, - MediaTypeResponseModel, - MediaTypeTreeItemResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; - -export const data: Array = [ - { - name: 'Media Type 1', - id: 'c5159663-eb82-43ee-bd23-e42dc5e71db6', - description: 'Media type 1 description', - alias: 'mediaType1', - icon: 'icon-bug', - properties: [], - containers: [], - allowedAsRoot: false, - variesByCulture: false, - variesBySegment: false, - isElement: false, - allowedContentTypes: [], - compositions: [], - }, -]; - -export const treeData: Array = [ - { - name: data[0].name, - id: data[0].id, - icon: data[0].icon, - type: 'media-type', - hasChildren: false, - isContainer: false, - parentId: null, - isFolder: false, - }, -]; - -// Temp mocked database -// TODO: all properties are optional in the server schema. I don't think this is correct. -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore -class UmbMediaTypeData extends UmbEntityData { - private treeData = treeData; - - constructor() { - super(data); - } - - // TODO: Can we do this smarter so we don't need to make this for each mock data: - insert(item: MediaTypeResponseModel) { - super.insert(item); - this.treeData.push(createMediaTypeTreeItem(item)); - } - - update(id: string, item: MediaTypeResponseModel) { - super.save(id, item); - this.treeData = this.treeData.map((x) => { - if (x.id === id) { - return createMediaTypeTreeItem(item); - } else { - return x; - } - }); - } - - getItems(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => createMediaTypeItem(item)); - } - - getTreeRoot(): Array { - return this.treeData.filter((item) => item.parentId === null); - } - - getTreeItemChildren(id: string): Array { - const childItems = this.treeData.filter((item) => item.parentId === id); - return childItems.map((item) => item); - } - - getTreeItems(ids: Array): Array { - const items = this.treeData.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => item); - } - - getAllowedTypesOf(id: string): Array { - const mediaType = this.getById(id); - const allowedTypeKeys = mediaType?.allowedContentTypes?.map((mediaType) => mediaType.id) ?? []; - const items = this.treeData.filter((item) => allowedTypeKeys.includes(item.id ?? '')); - return items.map((item) => item); - } -} - -const createMediaTypeItem = (item: MediaTypeResponseModel): MediaTypeItemResponseModel => { - return { - id: item.id, - name: item.name, - icon: item.icon, - }; -}; - -export const umbMediaTypeData = new UmbMediaTypeData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts new file mode 100644 index 0000000000..ed9f0f1032 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts @@ -0,0 +1,33 @@ +import { + MediaTypeItemResponseModel, + MediaTypeResponseModel, + MediaTypeTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export type UmbMockMediaTypeModelHack = MediaTypeResponseModel & + MediaTypeTreeItemResponseModel & + MediaTypeItemResponseModel; + +export interface UmbMockMediaTypeModel extends Omit {} + +export const data: Array = [ + { + name: 'Media Type 1', + id: 'c5159663-eb82-43ee-bd23-e42dc5e71db6', + parentId: null, + description: 'Media type 1 description', + alias: 'mediaType1', + icon: 'icon-bug', + properties: [], + containers: [], + allowedAsRoot: false, + variesByCulture: false, + variesBySegment: false, + isElement: false, + allowedContentTypes: [], + compositions: [], + isFolder: false, + hasChildren: false, + isContainer: false, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts new file mode 100644 index 0000000000..d7a3c7715d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts @@ -0,0 +1,113 @@ +import { UmbEntityMockDbBase } from '../entity/entity-base.js'; +import { UmbMockEntityFolderManager } from '../entity/entity-folder.manager.js'; +import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; +import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; +import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; +import { UmbMockMediaTypeModel, data } from './media-type.data.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { + CreateFolderRequestModel, + CreateMediaTypeRequestModel, + MediaTypeItemResponseModel, + MediaTypeResponseModel, + MediaTypeTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +class UmbMediaTypeMockDB extends UmbEntityMockDbBase { + tree = new UmbMockEntityTreeManager(this, mediaTypeTreeItemMapper); + folder = new UmbMockEntityFolderManager(this, createMockMediaTypeFolderMapper); + item = new UmbMockEntityItemManager(this, mediaTypeItemMapper); + detail = new UmbMockEntityDetailManager( + this, + createMockMediaTypeMapper, + mediaTypeDetailMapper, + ); + + constructor(data: Array) { + super(data); + } +} + +const createMockMediaTypeFolderMapper = (request: CreateFolderRequestModel): UmbMockMediaTypeModel => { + return { + name: request.name, + id: request.id ? request.id : UmbId.new(), + parentId: request.parentId, + description: '', + alias: '', + icon: '', + properties: [], + containers: [], + allowedAsRoot: false, + variesByCulture: false, + variesBySegment: false, + isElement: false, + allowedContentTypes: [], + compositions: [], + isFolder: true, + hasChildren: false, + isContainer: false, + }; +}; + +const createMockMediaTypeMapper = (request: CreateMediaTypeRequestModel): UmbMockMediaTypeModel => { + return { + name: request.name, + id: request.id ? request.id : UmbId.new(), + description: request.description, + alias: request.alias, + icon: request.icon, + properties: request.properties, + containers: request.containers, + allowedAsRoot: request.allowedAsRoot, + variesByCulture: request.variesByCulture, + variesBySegment: request.variesBySegment, + isElement: request.isElement, + allowedContentTypes: request.allowedContentTypes, + compositions: request.compositions, + parentId: request.containerId, + isFolder: false, + hasChildren: false, + isContainer: false, + }; +}; + +const mediaTypeDetailMapper = (item: UmbMockMediaTypeModel): MediaTypeResponseModel => { + return { + name: item.name, + id: item.id, + description: item.description, + alias: item.alias, + icon: item.icon, + properties: item.properties, + containers: item.containers, + allowedAsRoot: item.allowedAsRoot, + variesByCulture: item.variesByCulture, + variesBySegment: item.variesBySegment, + isElement: item.isElement, + allowedContentTypes: item.allowedContentTypes, + compositions: item.compositions, + }; +}; + +const mediaTypeTreeItemMapper = (item: UmbMockMediaTypeModel): Omit => { + return { + name: item.name, + hasChildren: item.hasChildren, + id: item.id, + isContainer: item.isContainer, + parentId: item.parentId, + isFolder: item.isFolder, + icon: item.icon, + }; +}; + +const mediaTypeItemMapper = (item: UmbMockMediaTypeModel): MediaTypeItemResponseModel => { + return { + id: item.id, + name: item.name, + icon: item.icon, + }; +}; + +export const umbMediaTypeMockDb = new UmbMediaTypeMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts index 9d718c6ff8..a7cfbffe5e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts @@ -1,44 +1,44 @@ const { rest } = window.MockServiceWorker; -import { umbMediaTypeData } from '../../data/media-type.data.js'; +import { umbMediaTypeMockDb } from '../../data/media-type/media-type.db.js'; import { UMB_SLUG } from './slug.js'; +import { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; + const requestBody = (await req.json()) as CreateMediaTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); - umbMediaTypeData.insert(data); + const id = umbMediaTypeMockDb.detail.create(requestBody); - return res(ctx.status(200)); + return res( + ctx.status(201), + ctx.set({ + Location: id, + }), + ); }), rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - - const data = umbMediaTypeData.getById(id); - - return res(ctx.status(200), ctx.json(data)); + if (!id) return res(ctx.status(400)); + const response = umbMediaTypeMockDb.detail.read(id); + return res(ctx.status(200), ctx.json(response)); }), rest.put(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - - umbMediaTypeData.save(id, data); - + if (!id) return res(ctx.status(400)); + const requestBody = (await req.json()) as UpdateMediaTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbMediaTypeMockDb.detail.update(id, requestBody); return res(ctx.status(200)); }), - rest.delete(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { + rest.delete(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - - umbMediaTypeData.delete([id]); - + if (!id) return res(ctx.status(400)); + umbMediaTypeMockDb.detail.delete(id); return res(ctx.status(200)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts new file mode 100644 index 0000000000..3fcf4cd3de --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts @@ -0,0 +1,43 @@ +const { rest } = window.MockServiceWorker; +import { umbMediaTypeMockDb } from '../../data/media-type/media-type.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const folderHandlers = [ + rest.post(umbracoPath(`${UMB_SLUG}/folder`), async (req, res, ctx) => { + const requestBody = await req.json(); + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const id = umbMediaTypeMockDb.folder.create(requestBody); + + return res( + ctx.status(201), + ctx.set({ + Location: id, + }), + ); + }), + + rest.get(umbracoPath(`${UMB_SLUG}/folder/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const response = umbMediaTypeMockDb.folder.read(id); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.put(umbracoPath(`${UMB_SLUG}/folder/:id`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400, 'no id found')); + const requestBody = await req.json(); + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbMediaTypeMockDb.folder.update(id, requestBody); + return res(ctx.status(200)); + }), + + rest.delete(umbracoPath(`${UMB_SLUG}/folder/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + umbMediaTypeMockDb.folder.delete(id); + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts index 236354678a..4f09cd2e16 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/index.ts @@ -1,5 +1,6 @@ import { treeHandlers } from './tree.handlers.js'; import { itemHandlers } from './item.handlers.js'; import { detailHandlers } from './detail.handlers.js'; +import { folderHandlers } from './folder.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...detailHandlers]; +export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/item.handlers.ts index 92e090c2bd..8c4dc3eed6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/item.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbMediaTypeData } from '../../data/media-type.data.js'; +import { umbMediaTypeMockDb } from '../../data/media-type/media-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -7,14 +7,7 @@ export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const ids = req.url.searchParams.getAll('id'); if (!ids) return; - const items = umbMediaTypeData.getItems(ids); - return res(ctx.status(200), ctx.json(items)); - }), - - rest.get(umbracoPath(`/tree${UMB_SLUG}/item`), (req, res, ctx) => { - const ids = req.url.searchParams.getAll('id'); - if (!ids) return; - const items = umbMediaTypeData.getTreeItems(ids); + const items = umbMediaTypeMockDb.item.getItems(ids); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts index d15ed562c5..335f3d1728 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/tree.handlers.ts @@ -1,29 +1,18 @@ const { rest } = window.MockServiceWorker; -import { umbMediaTypeData } from '../../data/media-type.data.js'; +import { umbMediaTypeMockDb } from '../../data/media-type/media-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const rootItems = umbMediaTypeData.getTreeRoot(); - const response = { - total: rootItems.length, - items: rootItems, - }; + const response = umbMediaTypeMockDb.tree.getRoot(); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - - const children = umbMediaTypeData.getTreeItemChildren(parentId); - - const response = { - total: children.length, - items: children, - }; - + const response = umbMediaTypeMockDb.tree.getChildrenOf(parentId); return res(ctx.status(200), ctx.json(response)); }), ]; From a72f7ade9bd0845806c39b733cc7d3c021f85c27 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 11 Jan 2024 15:20:36 +0100 Subject: [PATCH 248/786] don't rename export --- .../templating/stylesheets/entity-actions/manifests.ts | 4 ++-- .../src/packages/templating/stylesheets/repository/index.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts index 92143026f6..0146101914 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts @@ -1,5 +1,5 @@ import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; -import { UMB_STYLESHEET_REPOSITORY_ALIAS } from '../repository/index.js'; +import { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { manifests as createManifests } from './create/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -13,7 +13,7 @@ const stylesheetActions: Array = [ meta: { icon: 'icon-trash', label: 'Delete', - repositoryAlias: UMB_STYLESHEET_REPOSITORY_ALIAS, + repositoryAlias: UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_STYLESHEET_ENTITY_TYPE], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts index c34089a36b..3f00980578 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/index.ts @@ -1,5 +1,5 @@ export * from './item/index.js'; export * from './stylesheet-detail.repository.js'; -export { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS as UMB_STYLESHEET_REPOSITORY_ALIAS } from './manifests.js'; +export { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; export { type UmbStylesheetDetailStore, UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; From 4e213a24ad677e6db3512d14cff8732820ab9a44 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 11 Jan 2024 15:30:12 +0100 Subject: [PATCH 249/786] add common rename entity action scaffold --- .../core/entity-action/common/index.ts | 1 + .../entity-action/common/rename/manifests.ts | 3 ++ .../common/rename/modal/manifests.ts | 12 +++++++ .../rename/modal/rename-modal.element.ts | 21 +++++++++++ .../common/rename/modal/rename-modal.token.ts | 15 ++++++++ .../common/rename/rename.action.ts | 35 ++++++++++++++++++ .../packages/core/entity-action/manifests.ts | 3 ++ .../src/packages/core/index.ts | 36 ++----------------- .../src/packages/core/manifests.ts | 32 +++++++++++++++++ .../stylesheets/entity-actions/manifests.ts | 18 ++++++++-- 10 files changed, 141 insertions(+), 35 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts index 7ec974c77d..ca5f7cc7b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts @@ -3,3 +3,4 @@ export * from './delete/delete.action.js'; export * from './move/move.action.js'; export * from './sort-children-of/sort-children-of.action.js'; export * from './trash/trash.action.js'; +export * from './rename/rename.action.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/manifests.ts new file mode 100644 index 0000000000..3dc49155de --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/manifests.ts @@ -0,0 +1,3 @@ +import { manifests as renameModalManifests } from './modal/manifests.js'; + +export const manifests = [...renameModalManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts new file mode 100644 index 0000000000..f2887a73f7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts @@ -0,0 +1,12 @@ +import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_RENAME_MODAL_ALIAS = 'Umb.Modal.Rename'; + +export const manifests: Array = [ + { + type: 'modal', + alias: UMB_RENAME_MODAL_ALIAS, + name: 'Rename Modal', + js: () => import('./rename-modal.element.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts new file mode 100644 index 0000000000..8ce4664854 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts @@ -0,0 +1,21 @@ +import { UmbRenameModalData, UmbRenameModalValue } from './rename-modal.token.js'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; + +@customElement('umb-rename-modal') +export class UmbRenameModalElement extends UmbModalBaseElement { + render() { + return html` THIS IS MY RENAME MODAL `; + } + + static styles = [UmbTextStyles]; +} + +export default UmbRenameModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-rename-modal': UmbRenameModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts new file mode 100644 index 0000000000..18d3b7eac3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts @@ -0,0 +1,15 @@ +import { UMB_RENAME_MODAL_ALIAS } from './manifests.js'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbRenameModalData { + unique: string; +} + +export interface UmbRenameModalValue {} + +export const UMB_RENAME_MODAL = new UmbModalToken(UMB_RENAME_MODAL_ALIAS, { + modal: { + type: 'sidebar', + size: 'small', + }, +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts new file mode 100644 index 0000000000..1ef5397c4e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -0,0 +1,35 @@ +import { UMB_RENAME_MODAL } from './modal/rename-modal.token.js'; +import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; + +export interface UmbRenameRepository { + rename(unique: string, name: string): Promise; +} + +export class UmbRenameEntityAction extends UmbEntityActionBase { + #modalManagerContext?: UmbModalManagerContext; + + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { + super(host, repositoryAlias, unique); + + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.#modalManagerContext = instance; + }); + } + + async execute() { + if (!this.#modalManagerContext) throw new Error('Modal manager context is not available'); + if (!this.repository) throw new Error('Repository is not available'); + + const modalContext = this.#modalManagerContext?.open(UMB_RENAME_MODAL, { + data: { + unique: this.unique, + }, + }); + + modalContext.onSubmit().then((value) => { + console.log(value); + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/manifests.ts new file mode 100644 index 0000000000..95b35d754c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/manifests.ts @@ -0,0 +1,3 @@ +import { manifests as renameEntityActionManifests } from './common/rename/manifests.js'; + +export const manifests = [...renameEntityActionManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts index b59c5ca05c..a5e6406910 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -1,23 +1,9 @@ import { UmbBackofficeNotificationContainerElement, UmbBackofficeModalContainerElement } from './components/index.js'; -import { manifests as debugManifests } from './debug/manifests.js'; -import { manifests as localizationManifests } from './localization/manifests.js'; -import { manifests as propertyActionManifests } from './property-action/manifests.js'; -import { manifests as propertyEditorManifests } from './property-editor/manifests.js'; -import { manifests as tinyMcePluginManifests } from './property-editor/uis/tiny-mce/plugins/manifests.js'; -import { manifests as collectionManifests } from './collection/manifests.js'; -import { manifests as workspaceManifests } from './workspace/manifests.js'; -import { manifests as modalManifests } from './modal/common/manifests.js'; -import { manifests as themeManifests } from './themes/manifests.js'; -import { manifests as conditionManifests } from './extension-registry/conditions/manifests.js'; -import { manifests as cultureManifests } from './culture/manifests.js'; -import { manifests as dataTypeManifests } from './data-type/manifests.js'; -import { manifests as treeManifests } from './tree/manifests.js'; - +import { UmbActionEventContext } from './action/action-event.context.js'; +import { manifests as coreManifests } from './manifests.js'; import { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbExtensionsApiInitializer, type UmbEntryPointOnInit } from '@umbraco-cms/backoffice/extension-api'; -import type { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbActionEventContext } from './action/action-event.context.js'; export * from './collection/index.js'; export * from './localization/index.js'; @@ -46,29 +32,13 @@ export * from './culture/index.js'; export * from './temporary-file/index.js'; export * from './object-type/index.js'; -const manifests: Array = [ - ...conditionManifests, - ...debugManifests, - ...localizationManifests, - ...propertyActionManifests, - ...propertyEditorManifests, - ...tinyMcePluginManifests, - ...collectionManifests, - ...workspaceManifests, - ...modalManifests, - ...themeManifests, - ...cultureManifests, - ...dataTypeManifests, - ...treeManifests, -]; - export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { new UmbExtensionsApiInitializer(host, extensionRegistry, 'globalContext', [host]); new UmbExtensionsApiInitializer(host, extensionRegistry, 'store', [host]); new UmbExtensionsApiInitializer(host, extensionRegistry, 'treeStore', [host]); new UmbExtensionsApiInitializer(host, extensionRegistry, 'itemStore', [host]); - extensionRegistry.registerMany(manifests); + extensionRegistry.registerMany(coreManifests); const notificationContainerElement = new UmbBackofficeNotificationContainerElement(); host.appendChild(notificationContainerElement); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts new file mode 100644 index 0000000000..b804bd7015 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts @@ -0,0 +1,32 @@ +import { manifests as debugManifests } from './debug/manifests.js'; +import { manifests as localizationManifests } from './localization/manifests.js'; +import { manifests as propertyActionManifests } from './property-action/manifests.js'; +import { manifests as propertyEditorManifests } from './property-editor/manifests.js'; +import { manifests as tinyMcePluginManifests } from './property-editor/uis/tiny-mce/plugins/manifests.js'; +import { manifests as collectionManifests } from './collection/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as modalManifests } from './modal/common/manifests.js'; +import { manifests as themeManifests } from './themes/manifests.js'; +import { manifests as conditionManifests } from './extension-registry/conditions/manifests.js'; +import { manifests as cultureManifests } from './culture/manifests.js'; +import { manifests as dataTypeManifests } from './data-type/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as entityActionManifests } from './entity-action/manifests.js'; +import type { ManifestTypes, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + ...conditionManifests, + ...debugManifests, + ...localizationManifests, + ...propertyActionManifests, + ...propertyEditorManifests, + ...tinyMcePluginManifests, + ...collectionManifests, + ...workspaceManifests, + ...modalManifests, + ...themeManifests, + ...cultureManifests, + ...dataTypeManifests, + ...treeManifests, + ...entityActionManifests, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts index 0146101914..dffe6323e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts @@ -1,18 +1,32 @@ import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; import { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { manifests as createManifests } from './create/manifests.js'; -import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { UmbDeleteEntityAction, UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const stylesheetActions: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Stylesheet.Rename', + name: 'Rename Stylesheet Entity Action', + api: UmbRenameEntityAction, + weight: 200, + meta: { + icon: 'icon-edit', + label: 'Rename...', + repositoryAlias: UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS, + entityTypes: [UMB_STYLESHEET_ENTITY_TYPE], + }, + }, { type: 'entityAction', alias: 'Umb.EntityAction.Stylesheet.Delete', name: 'Delete Stylesheet Entity Action', api: UmbDeleteEntityAction, + weight: 100, meta: { icon: 'icon-trash', - label: 'Delete', + label: 'Delete...', repositoryAlias: UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_STYLESHEET_ENTITY_TYPE], }, From 9c351e6c7ccdaddb05762d9bbf62b137e793a84d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 12:35:56 +0100 Subject: [PATCH 250/786] add common rename entity action + modal --- .../rename/modal/rename-modal.element.ts | 89 ++++++++++++++++++- .../common/rename/modal/rename-modal.token.ts | 5 +- .../common/rename/rename.action.ts | 5 +- .../models/entity-action.model.ts | 1 - 4 files changed, 93 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts index 8ce4664854..143839700f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts @@ -1,15 +1,96 @@ +import { UmbRenameRepository } from '../rename.action.js'; import { UmbRenameModalData, UmbRenameModalValue } from './rename-modal.token.js'; -import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-rename-modal') export class UmbRenameModalElement extends UmbModalBaseElement { - render() { - return html` THIS IS MY RENAME MODAL `; + #renameRepository?: UmbRenameRepository; + + connectedCallback(): void { + super.connectedCallback(); + this.#observeRepository(); } - static styles = [UmbTextStyles]; + #observeRepository() { + if (!this.data?.renameRepositoryAlias) throw new Error('A rename repository alias is required'); + + new UmbExtensionApiInitializer( + this, + umbExtensionsRegistry, + this.data.renameRepositoryAlias, + [this], + (permitted, ctrl) => { + this.#renameRepository = permitted ? (ctrl.api as UmbRenameRepository) : undefined; + }, + ); + } + + async #onSubmit(event: SubmitEvent) { + event.preventDefault(); + if (!this.#renameRepository) throw new Error('Rename repository is not available'); + if (!this.data?.unique) throw new Error('Unique identifier is not available'); + + const form = event.target as HTMLFormElement; + if (!form) return; + + const isValid = form.checkValidity(); + if (!isValid) return; + + const formData = new FormData(form); + const name = formData.get('name') as string; + + const { data } = await this.#renameRepository.rename(this.data?.unique, name); + + if (data) { + this.updateValue({ newName: data }); + this._submitModal(); + } + } + + render() { + return html` + + + +
+ + Name + + +
+
+
+ + + +
+ `; + } + + static styles = [ + UmbTextStyles, + css` + #name { + width: 100%; + } + `, + ]; } export default UmbRenameModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts index 18d3b7eac3..5e55448339 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.token.ts @@ -2,10 +2,13 @@ import { UMB_RENAME_MODAL_ALIAS } from './manifests.js'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbRenameModalData { + renameRepositoryAlias: string; unique: string; } -export interface UmbRenameModalValue {} +export interface UmbRenameModalValue { + newName: string; +} export const UMB_RENAME_MODAL = new UmbModalToken(UMB_RENAME_MODAL_ALIAS, { modal: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts index 1ef5397c4e..3da09d235e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -2,9 +2,10 @@ import { UMB_RENAME_MODAL } from './modal/rename-modal.token.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbRenameRepository { - rename(unique: string, name: string): Promise; + rename(unique: string, name: string): Promise>; } export class UmbRenameEntityAction extends UmbEntityActionBase { @@ -25,10 +26,12 @@ export class UmbRenameEntityAction extends UmbEntityActionBase { + debugger; console.log(value); }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts index 3baddeaf1e..b757c5875d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-action.model.ts @@ -38,7 +38,6 @@ export interface MetaEntityAction { * "Umb.Repository.Documents" * ] */ - // TODO: Could we find the repository based on entityTypes? repositoryAlias: string; /** From 4e54a518b63767f0b3e05459fdbd5161288c7b91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 12 Jan 2024 13:03:01 +0100 Subject: [PATCH 251/786] clean up --- .../src/packages/block/block-list/types.ts | 3 +++ .../property-settings/property-settings-modal.element.ts | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts new file mode 100644 index 0000000000..89760d3050 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts @@ -0,0 +1,3 @@ +import type { UmbBlockTypeBase } from '../block-type/index.js'; + +export interface UmbBlockListType extends UmbBlockTypeBase {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index 96d8d61aa6..c3c48e80cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -62,7 +62,6 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< super.connectedCallback(); this.consumeContext(UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT, (instance) => { - console.log('GOT UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT', instance); if (!this.data?.documentTypeId) return; this.observe(instance.variesByCulture, (variesByCulture) => (this._documentVariesByCulture = variesByCulture)); From 256ecf4007d7eab37d1374ecfaa595a91837f76f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:01:45 +0100 Subject: [PATCH 252/786] add rename method to file mock data --- .../file-system/file-system-detail.manager.ts | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts index e33dd0f8f6..e059be5af0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts @@ -46,23 +46,20 @@ export class UmbMockFileSystemDetailManager { return { From 6bf17e23a53cbae318d4bd0e704884a556acd867 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:02:03 +0100 Subject: [PATCH 253/786] add stylesheet rename request handler --- .../src/mocks/handlers/stylesheet/index.ts | 10 +++++++- .../handlers/stylesheet/rename.handlers.ts | 24 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts index 2fed924518..6e30e733db 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts @@ -3,5 +3,13 @@ import { treeHandlers } from './tree.handlers.js'; import { detailHandlers } from './detail.handlers.js'; import { itemHandlers } from './item.handlers.js'; import { overviewHandlers } from './overview.handlers.js'; +import { renameHandlers } from './rename.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...overviewHandlers, ...detailHandlers]; +export const handlers = [ + ...treeHandlers, + ...itemHandlers, + ...folderHandlers, + ...overviewHandlers, + ...renameHandlers, + ...detailHandlers, +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts new file mode 100644 index 0000000000..b5cdf1cdf8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts @@ -0,0 +1,24 @@ +const { rest } = window.MockServiceWorker; +import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js'; +import { UMB_SLUG } from './slug.js'; +import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const renameHandlers = [ + rest.put(umbracoPath(`${UMB_SLUG}/:path/rename`), async (req, res, ctx) => { + const path = req.params.path as string; + if (!path) return res(ctx.status(400)); + + const requestBody = (await req.json()) as RenameStylesheetRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const newPath = umbStylesheetData.file.rename(decodeURIComponent(path), requestBody.name); + + return res( + ctx.status(201), + ctx.set({ + Location: encodeURIComponent(newPath), + }), + ); + }), +]; From 117897a3e56956312f2249e278abdd2bfb16534f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:02:42 +0100 Subject: [PATCH 254/786] update to rename modal --- .../packages/core/entity-action/common/index.ts | 2 +- .../core/entity-action/common/rename/index.ts | 3 +++ .../common/rename/modal/rename-modal.element.ts | 11 ++++++----- .../common/rename/modal/rename-modal.token.ts | 4 +--- .../entity-action/common/rename/rename.action.ts | 13 +++---------- .../core/entity-action/common/rename/types.ts | 14 ++++++++++++++ 6 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts index ca5f7cc7b0..1d1c4fadd0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/index.ts @@ -3,4 +3,4 @@ export * from './delete/delete.action.js'; export * from './move/move.action.js'; export * from './sort-children-of/sort-children-of.action.js'; export * from './trash/trash.action.js'; -export * from './rename/rename.action.js'; +export * from './rename/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/index.ts new file mode 100644 index 0000000000..0c807f6a81 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/index.ts @@ -0,0 +1,3 @@ +export * from './types.js'; +export * from './rename.action.js'; +export * from './rename-repository-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts index 143839700f..7f5eeef282 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts @@ -1,4 +1,4 @@ -import { UmbRenameRepository } from '../rename.action.js'; +import { UmbRenameRepository } from '../types.js'; import { UmbRenameModalData, UmbRenameModalValue } from './rename-modal.token.js'; import { html, customElement, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -8,7 +8,7 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registr @customElement('umb-rename-modal') export class UmbRenameModalElement extends UmbModalBaseElement { - #renameRepository?: UmbRenameRepository; + #renameRepository?: UmbRenameRepository; connectedCallback(): void { super.connectedCallback(); @@ -24,7 +24,7 @@ export class UmbRenameModalElement extends UmbModalBaseElement { - this.#renameRepository = permitted ? (ctrl.api as UmbRenameRepository) : undefined; + this.#renameRepository = permitted ? (ctrl.api as UmbRenameRepository) : undefined; }, ); } @@ -43,11 +43,12 @@ export class UmbRenameModalElement extends UmbModalBaseElement(UMB_RENAME_MODAL_ALIAS, { modal: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts index 3da09d235e..cd8ee0e2e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -1,14 +1,10 @@ import { UMB_RENAME_MODAL } from './modal/rename-modal.token.js'; +import { type UmbRenameRepository } from './types.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; -import { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; -export interface UmbRenameRepository { - rename(unique: string, name: string): Promise>; -} - -export class UmbRenameEntityAction extends UmbEntityActionBase { +export class UmbRenameEntityAction extends UmbEntityActionBase> { #modalManagerContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { @@ -30,9 +26,6 @@ export class UmbRenameEntityAction extends UmbEntityActionBase { - debugger; - console.log(value); - }); + await modalContext.onSubmit(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts new file mode 100644 index 0000000000..48dbb4e7a4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts @@ -0,0 +1,14 @@ +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; + +export interface UmbRenameRepository { + rename(unique: string, name: string): Promise>; +} + +export interface UmbRenameDataSourceConstructor { + new (host: UmbControllerHost): UmbRenameDataSource; +} + +export interface UmbRenameDataSource { + rename(unique: string, name: string): Promise>; +} From f4f450c981fd129689c77f19d98f3676769de77f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:02:49 +0100 Subject: [PATCH 255/786] add rename repository base --- .../common/rename/rename-repository-base.ts | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts new file mode 100644 index 0000000000..aa242fbc3a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts @@ -0,0 +1,74 @@ +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import { UmbRenameDataSource, UmbRenameDataSourceConstructor } from '@umbraco-cms/backoffice/entity-action'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; + +export abstract class UmbRenameRepositoryBase extends UmbRepositoryBase { + #detailStore?: UmbDetailStore; + #renameSource: UmbRenameDataSource; + #notificationContext?: UmbNotificationContext; + #actionEventContext?: UmbActionEventContext; + #init: Promise; + + constructor( + host: UmbControllerHost, + detailSource: UmbRenameDataSourceConstructor, + detailStoreContextAlias: string | UmbContextToken, + ) { + super(host); + this.#renameSource = new detailSource(host); + + this.#init = Promise.all([ + this.consumeContext(detailStoreContextAlias, (instance) => { + this.#detailStore = instance; + }).asPromise(), + + this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.#notificationContext = instance; + }).asPromise(), + + this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { + this.#actionEventContext = instance; + }).asPromise(), + ]); + } + + /** + * Rename + * @param {string} unique + * @param {string} name + * @return {*} + * @memberof UmbRenameRepositoryBase + */ + async rename(unique: string, name: string) { + if (!unique) throw new Error('Unique is missing'); + if (!name) throw new Error('Name is missing'); + await this.#init; + + const requestEventData = { unique, parentUnique: null }; + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-request', requestEventData)); + + const { data, error } = await this.#renameSource.rename(unique, name); + + if (data) { + this.#detailStore?.removeItem(unique); + this.#detailStore?.append(data); + + // TODO: how do we handle generic notifications? Is this the correct place to do it? + const notification = { data: { message: `Renamed` } }; + this.#notificationContext!.peek('positive', notification); + + const successEventData = { unique: data.unique, parentUnique: data.parentUnique }; + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-success', successEventData)); + } + + if (error) { + this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-error', requestEventData)); + } + + return { data, error }; + } +} From 8389fba3e14bb2254baa0532f8c6e79fe01687a1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:03:07 +0100 Subject: [PATCH 256/786] add stylsheet rename repo + data source --- .../stylesheets/entity-actions/manifests.ts | 18 ++----- .../entity-actions/rename/manifests.ts | 29 +++++++++++ .../rename/rename-stylesheet.repository.ts | 11 ++++ .../rename-stylesheet.server.data-source.ts | 51 +++++++++++++++++++ 4 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts index dffe6323e2..4701ac0b2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts @@ -1,23 +1,11 @@ import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; import { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { manifests as createManifests } from './create/manifests.js'; -import { UmbDeleteEntityAction, UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { manifests as renameManifests } from './rename/manifests.js'; +import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const stylesheetActions: Array = [ - { - type: 'entityAction', - alias: 'Umb.EntityAction.Stylesheet.Rename', - name: 'Rename Stylesheet Entity Action', - api: UmbRenameEntityAction, - weight: 200, - meta: { - icon: 'icon-edit', - label: 'Rename...', - repositoryAlias: UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS, - entityTypes: [UMB_STYLESHEET_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: 'Umb.EntityAction.Stylesheet.Delete', @@ -33,4 +21,4 @@ const stylesheetActions: Array = [ }, ]; -export const manifests = [...stylesheetActions, ...createManifests]; +export const manifests = [...stylesheetActions, ...createManifests, ...renameManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts new file mode 100644 index 0000000000..a3ec788dd1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts @@ -0,0 +1,29 @@ +import { UMB_STYLESHEET_ENTITY_TYPE } from '../../entity.js'; +import { UmbRenameStylesheetRepository } from './rename-stylesheet.repository.js'; +import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_RENAME_STYLESHEET_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Rename'; +export const UMB_RENAME_STYLESHEET_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Stylesheet.Rename'; + +export const manifests: Array = [ + { + type: 'repository', + alias: UMB_RENAME_STYLESHEET_REPOSITORY_ALIAS, + name: 'Rename Stylesheet Repository', + api: UmbRenameStylesheetRepository, + }, + { + type: 'entityAction', + alias: UMB_RENAME_STYLESHEET_ENTITY_ACTION_ALIAS, + name: 'Rename Stylesheet Entity Action', + api: UmbRenameEntityAction, + weight: 200, + meta: { + icon: 'icon-edit', + label: 'Rename...', + repositoryAlias: UMB_RENAME_STYLESHEET_REPOSITORY_ALIAS, + entityTypes: [UMB_STYLESHEET_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts new file mode 100644 index 0000000000..b3ac93c611 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts @@ -0,0 +1,11 @@ +import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from '../../repository/stylesheet-detail.store.js'; +import { type UmbStylesheetDetailModel } from '../../types.js'; +import { UmbRenameStylesheetServerDataSource } from './rename-stylesheet.server.data-source.js'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action'; + +export class UmbRenameStylesheetRepository extends UmbRenameRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbRenameStylesheetServerDataSource, UMB_STYLESHEET_DETAIL_STORE_CONTEXT); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts new file mode 100644 index 0000000000..7ef7c62f10 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts @@ -0,0 +1,51 @@ +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../../utils/index.js'; +import { UmbStylesheetDetailServerDataSource } from '../../repository/stylesheet-detail.server.data-source.js'; +import { RenameStylesheetRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export class UmbRenameStylesheetServerDataSource { + #host: UmbControllerHost; + #detailDataSource: UmbStylesheetDetailServerDataSource; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + + constructor(host: UmbControllerHost) { + this.#host = host; + this.#detailDataSource = new UmbStylesheetDetailServerDataSource(this.#host); + } + + /** + * Rename Stylesheet + * @param {string} unique + * @param {string} name + * @return {*} + * @memberof UmbRenameStylesheetServerDataSource + */ + async rename(unique: string, name: string) { + if (!unique) throw new Error('Unique is missing'); + if (!name) throw new Error('Name is missing'); + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + if (!path) throw new Error('Path is missing'); + + const requestBody: RenameStylesheetRequestModel = { + name: appendFileExtensionIfNeeded(name, '.css'), + }; + + const { data, error } = await tryExecuteAndNotify( + this.#host, + StylesheetResource.putStylesheetByPathRename({ + path: encodeURIComponent(path), + requestBody, + }), + ); + + if (data) { + const newPath = decodeURIComponent(data); + const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + return this.#detailDataSource.read(newPathUnique); + } + + return { error }; + } +} From c1d5965facb37e13c62b9cf0b08f2251e1a9735a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:15:40 +0100 Subject: [PATCH 257/786] remove action event from rename --- .../common/rename/rename-repository-base.ts | 16 ---- .../stylesheets/tree/stylesheet-tree.store.ts | 75 +++++++------------ 2 files changed, 29 insertions(+), 62 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts index aa242fbc3a..39a0a75d0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts @@ -1,6 +1,5 @@ import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; -import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import { UmbRenameDataSource, UmbRenameDataSourceConstructor } from '@umbraco-cms/backoffice/entity-action'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; @@ -10,7 +9,6 @@ export abstract class UmbRenameRepositoryBase; #renameSource: UmbRenameDataSource; #notificationContext?: UmbNotificationContext; - #actionEventContext?: UmbActionEventContext; #init: Promise; constructor( @@ -29,10 +27,6 @@ export abstract class UmbRenameRepositoryBase { this.#notificationContext = instance; }).asPromise(), - - this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { - this.#actionEventContext = instance; - }).asPromise(), ]); } @@ -48,9 +42,6 @@ export abstract class UmbRenameRepositoryBase { - this.#actionEventContext = instance; - this.#listen(); - }); + new UmbStoreConnector( + host, + this, + UMB_STYLESHEET_DETAIL_STORE_CONTEXT, + (item) => this.#createTreeItemMapper(item), + (item) => this.#updateTreeItemMapper(item), + ); } - #listen() { - // TODO: add event class to remove the magic strings - this.#actionEventContext?.addEventListener('detail-create-success', this.#onCreated as EventListener); - this.#actionEventContext?.addEventListener('detail-save-success', this.#onSaved as EventListener); - this.#actionEventContext?.addEventListener('detail-delete-success', this.#onDeleted as EventListener); - } + // TODO: revisit this when we have decided on detail model sizes + #createTreeItemMapper = (item: UmbStylesheetDetailModel) => { + const treeItem: UmbStylesheetTreeItemModel = { + unique: item.unique, + parentUnique: item.parentUnique, + entityType: UMB_STYLESHEET_ENTITY_TYPE, + name: item.name, + hasChildren: false, + isContainer: false, + isFolder: false, + }; - #stopListening() { - this.#actionEventContext?.removeEventListener('detail-create-success', this.#onCreated as EventListener); - this.#actionEventContext?.removeEventListener('detail-save-success', this.#onSaved as EventListener); - this.#actionEventContext?.removeEventListener('detail-delete-success', this.#onDeleted as EventListener); - } - - #onCreated = (event: UmbActionEvent) => { - // the item doesn't exist yet, so we reload the parent - const eventParentUnique = event.getParentUnique(); - this.#treeRepository.requestTreeItemsOf(eventParentUnique); + return treeItem; }; - #onSaved = (event: UmbActionEvent) => { - // only reload the parent if the item is already in the store - const eventUnique = event.getUnique(); - const storeItem = this.getItems([eventUnique])?.[0]; - - /* we need to remove the store because the unique (path) can have changed. - and it will therefore not update the correct item but append a new. */ - if (storeItem) { - this.removeItem(eventUnique); - this.#treeRepository.requestTreeItemsOf(storeItem.parentUnique); - } + // TODO: revisit this when we have decided on detail model sizes + #updateTreeItemMapper = (item: UmbStylesheetDetailModel) => { + return { + name: item.name, + }; }; - - #onDeleted = (event: UmbActionEvent) => { - this.removeItem(event.getUnique()); - }; - - onDestroy() { - this.#stopListening(); - } } export const UMB_STYLESHEET_TREE_STORE_CONTEXT = new UmbContextToken('UmbStylesheetTreeStore'); From 977a85ad796fb191a90521ae790c53acedd8bdd8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:27:52 +0100 Subject: [PATCH 258/786] use store connector in script tree store --- .../scripts/tree/script-tree.store.ts | 75 +++++++------------ 1 file changed, 29 insertions(+), 46 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index 3834880e2a..1ab0d85003 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -1,8 +1,11 @@ -import { UmbScriptTreeRepository } from './script-tree.repository.js'; -import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; +import { UmbScriptDetailModel } from '../types.js'; +import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from '../repository/index.js'; +import { UmbScriptTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; /** * @export @@ -11,9 +14,6 @@ import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; * @description - Tree Data Store for Scripts */ export class UmbScriptTreeStore extends UmbUniqueTreeStore { - #actionEventContext?: UmbActionEventContext; - #treeRepository: UmbScriptTreeRepository; - /** * Creates an instance of UmbScriptTreeStore. * @param {UmbControllerHostElement} host @@ -22,53 +22,36 @@ export class UmbScriptTreeStore extends UmbUniqueTreeStore { constructor(host: UmbControllerHostElement) { super(host, UMB_SCRIPT_TREE_STORE_CONTEXT.toString()); - this.#treeRepository = new UmbScriptTreeRepository(host); - - this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { - this.#actionEventContext = instance; - this.#listen(); - }); + new UmbStoreConnector( + host, + this, + UMB_SCRIPT_DETAIL_STORE_CONTEXT, + (item) => this.#createTreeItemMapper(item), + (item) => this.#updateTreeItemMapper(item), + ); } - #listen() { - // TODO: add event class to remove the magic strings - this.#actionEventContext?.addEventListener('detail-create-success', this.#onCreated as EventListener); - this.#actionEventContext?.addEventListener('detail-save-success', this.#onSaved as EventListener); - this.#actionEventContext?.addEventListener('detail-delete-success', this.#onDeleted as EventListener); - } + // TODO: revisit this when we have decided on detail model sizes + #createTreeItemMapper = (item: UmbScriptDetailModel) => { + const treeItem: UmbScriptTreeItemModel = { + unique: item.unique, + parentUnique: item.parentUnique, + entityType: UMB_SCRIPT_ENTITY_TYPE, + name: item.name, + hasChildren: false, + isContainer: false, + isFolder: false, + }; - #stopListening() { - this.#actionEventContext?.removeEventListener('detail-create-success', this.#onCreated as EventListener); - this.#actionEventContext?.removeEventListener('detail-save-success', this.#onSaved as EventListener); - this.#actionEventContext?.removeEventListener('detail-delete-success', this.#onDeleted as EventListener); - } - - #onCreated = (event: UmbActionEvent) => { - // the item doesn't exist yet, so we reload the parent - const eventParentUnique = event.getParentUnique(); - this.#treeRepository.requestTreeItemsOf(eventParentUnique); + return treeItem; }; - #onSaved = (event: UmbActionEvent) => { - // only reload the parent if the item is already in the store - const eventUnique = event.getUnique(); - const storeItem = this.getItems([eventUnique])?.[0]; - - /* we need to remove the store because the unique (path) can have changed. - and it will therefore not update the correct item but append a new. */ - if (storeItem) { - this.removeItem(eventUnique); - this.#treeRepository.requestTreeItemsOf(storeItem.parentUnique); - } + // TODO: revisit this when we have decided on detail model sizes + #updateTreeItemMapper = (item: UmbScriptDetailModel) => { + return { + name: item.name, + }; }; - - #onDeleted = (event: UmbActionEvent) => { - this.removeItem(event.getUnique()); - }; - - onDestroy() { - this.#stopListening(); - } } export const UMB_SCRIPT_TREE_STORE_CONTEXT = new UmbContextToken('UmbScriptTreeStore'); From f55bd30c4ce1d45541d2890a70b107f40c659787 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:30:49 +0100 Subject: [PATCH 259/786] use store connector for partial views tree store --- .../tree/partial-view-tree.store.ts | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts index a7a78ae961..07a7508121 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts @@ -1,6 +1,11 @@ +import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; +import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from '../repository/partial-view-detail.store.js'; +import { UmbPartialViewDetailModel } from '../types.js'; +import { UmbPartialViewTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; /** * @export @@ -16,7 +21,37 @@ export class UmbPartialViewTreeStore extends UmbUniqueTreeStore { */ constructor(host: UmbControllerHostElement) { super(host, UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT.toString()); + + new UmbStoreConnector( + host, + this, + UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT, + (item) => this.#createTreeItemMapper(item), + (item) => this.#updateTreeItemMapper(item), + ); } + + // TODO: revisit this when we have decided on detail model sizes + #createTreeItemMapper = (item: UmbPartialViewDetailModel) => { + const treeItem: UmbPartialViewTreeItemModel = { + unique: item.unique, + parentUnique: item.parentUnique, + entityType: UMB_PARTIAL_VIEW_ENTITY_TYPE, + name: item.name, + hasChildren: false, + isContainer: false, + isFolder: false, + }; + + return treeItem; + }; + + // TODO: revisit this when we have decided on detail model sizes + #updateTreeItemMapper = (item: UmbPartialViewDetailModel) => { + return { + name: item.name, + }; + }; } export const UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT = new UmbContextToken( From e41d624d7c1032c29fed61c924cc796179922f0d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 14:38:20 +0100 Subject: [PATCH 260/786] add rename script entity action --- .../src/mocks/handlers/script/index.ts | 3 +- .../mocks/handlers/script/rename.handlers.ts | 24 +++++++++ .../scripts/entity-actions/manifests.ts | 3 +- .../entity-actions/rename/manifests.ts | 29 +++++++++++ .../rename/rename-script.repository.ts | 11 ++++ .../rename-script.server.data-source.ts | 51 +++++++++++++++++++ 6 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/index.ts index d2877a2ff7..34d8d576a3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/index.ts @@ -2,5 +2,6 @@ import { folderHandlers } from './folder.handlers.js'; import { treeHandlers } from './tree.handlers.js'; import { detailHandlers } from './detail.handlers.js'; import { itemHandlers } from './item.handlers.js'; +import { renameHandlers } from './rename.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...detailHandlers]; +export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...renameHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts new file mode 100644 index 0000000000..01cb62012e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts @@ -0,0 +1,24 @@ +const { rest } = window.MockServiceWorker; +import { umbScriptMockDb } from '../../data/script/script.db.js'; +import { UMB_SLUG } from './slug.js'; +import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const renameHandlers = [ + rest.put(umbracoPath(`${UMB_SLUG}/:path/rename`), async (req, res, ctx) => { + const path = req.params.path as string; + if (!path) return res(ctx.status(400)); + + const requestBody = (await req.json()) as RenameStylesheetRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const newPath = umbScriptMockDb.file.rename(decodeURIComponent(path), requestBody.name); + + return res( + ctx.status(201), + ctx.set({ + Location: encodeURIComponent(newPath), + }), + ); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts index a8f9b9afb6..2bbb0e2e42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts @@ -1,6 +1,7 @@ import { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { manifests as createManifests } from './create/manifests.js'; +import { manifests as renameManifests } from './rename/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -21,4 +22,4 @@ const scriptViewActions: Array = [ }, ]; -export const manifests = [...scriptViewActions, ...createManifests]; +export const manifests = [...scriptViewActions, ...createManifests, ...renameManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts new file mode 100644 index 0000000000..69e9c99817 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts @@ -0,0 +1,29 @@ +import { UMB_SCRIPT_ENTITY_TYPE } from '../../entity.js'; +import { UmbRenameScriptRepository } from './rename-script.repository.js'; +import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_RENAME_SCRIPT_REPOSITORY_ALIAS = 'Umb.Repository.Script.Rename'; +export const UMB_RENAME_SCRIPT_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Rename'; + +export const manifests: Array = [ + { + type: 'repository', + alias: UMB_RENAME_SCRIPT_REPOSITORY_ALIAS, + name: 'Rename Script Repository', + api: UmbRenameScriptRepository, + }, + { + type: 'entityAction', + alias: UMB_RENAME_SCRIPT_ENTITY_ACTION_ALIAS, + name: 'Rename Script Entity Action', + api: UmbRenameEntityAction, + weight: 200, + meta: { + icon: 'icon-edit', + label: 'Rename...', + repositoryAlias: UMB_RENAME_SCRIPT_REPOSITORY_ALIAS, + entityTypes: [UMB_SCRIPT_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts new file mode 100644 index 0000000000..630162c613 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts @@ -0,0 +1,11 @@ +import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from '../../repository/index.js'; +import { UmbScriptDetailModel } from '../../types.js'; +import { UmbRenameScriptServerDataSource } from './rename-script.server.data-source.js'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action'; + +export class UmbRenameScriptRepository extends UmbRenameRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbRenameScriptServerDataSource, UMB_SCRIPT_DETAIL_STORE_CONTEXT); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts new file mode 100644 index 0000000000..eed1cc1511 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts @@ -0,0 +1,51 @@ +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../../utils/index.js'; +import { UmbScriptDetailServerDataSource } from '../../repository/script-detail.server.data-source.js'; +import { RenameStylesheetRequestModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export class UmbRenameScriptServerDataSource { + #host: UmbControllerHost; + #detailDataSource: UmbScriptDetailServerDataSource; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + + constructor(host: UmbControllerHost) { + this.#host = host; + this.#detailDataSource = new UmbScriptDetailServerDataSource(this.#host); + } + + /** + * Rename Script + * @param {string} unique + * @param {string} name + * @return {*} + * @memberof UmbRenameScriptServerDataSource + */ + async rename(unique: string, name: string) { + if (!unique) throw new Error('Unique is missing'); + if (!name) throw new Error('Name is missing'); + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + if (!path) throw new Error('Path is missing'); + + const requestBody: RenameStylesheetRequestModel = { + name: appendFileExtensionIfNeeded(name, '.js'), + }; + + const { data, error } = await tryExecuteAndNotify( + this.#host, + ScriptResource.putScriptByPathRename({ + path: encodeURIComponent(path), + requestBody, + }), + ); + + if (data) { + const newPath = decodeURIComponent(data); + const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + return this.#detailDataSource.read(newPathUnique); + } + + return { error }; + } +} From f174e0daf762718a6a329b86bafee22018e40276 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 15:18:05 +0100 Subject: [PATCH 261/786] add rename entity action for partial views --- .../src/mocks/handlers/partial-view/index.ts | 10 +++- .../handlers/partial-view/rename.handlers.ts | 24 +++++++++ .../partial-views/entity-actions/manifests.ts | 3 +- .../entity-actions/rename/manifests.ts | 29 +++++++++++ .../rename/rename-partial-view.repository.ts | 11 ++++ .../rename-partial-view.server.data-source.ts | 51 +++++++++++++++++++ 6 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts index a987b82248..e07942289d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/index.ts @@ -3,5 +3,13 @@ import { treeHandlers } from './tree.handlers.js'; import { detailHandlers } from './detail.handlers.js'; import { itemHandlers } from './item.handlers.js'; import { snippetHandlers } from './snippet.handlers.js'; +import { renameHandlers } from './rename.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...snippetHandlers, ...detailHandlers]; +export const handlers = [ + ...treeHandlers, + ...itemHandlers, + ...folderHandlers, + ...snippetHandlers, + ...renameHandlers, + ...detailHandlers, +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts new file mode 100644 index 0000000000..21d7bbc569 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts @@ -0,0 +1,24 @@ +const { rest } = window.MockServiceWorker; +import { umbPartialViewMockDB } from '../../data/partial-view/partial-view.db.js'; +import { UMB_SLUG } from './slug.js'; +import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const renameHandlers = [ + rest.put(umbracoPath(`${UMB_SLUG}/:path/rename`), async (req, res, ctx) => { + const path = req.params.path as string; + if (!path) return res(ctx.status(400)); + + const requestBody = (await req.json()) as RenameStylesheetRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const newPath = umbPartialViewMockDB.file.rename(decodeURIComponent(path), requestBody.name); + + return res( + ctx.status(201), + ctx.set({ + Location: encodeURIComponent(newPath), + }), + ); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts index 6811f425e7..b355f34759 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts @@ -1,6 +1,7 @@ import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from '../repository/index.js'; import { manifests as createManifests } from './create/manifests.js'; +import { manifests as renameManifests } from './rename/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -19,4 +20,4 @@ const partialViewActions: Array = [ }, ]; -export const manifests = [...partialViewActions, ...createManifests]; +export const manifests = [...partialViewActions, ...createManifests, ...renameManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts new file mode 100644 index 0000000000..f1ceedc582 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts @@ -0,0 +1,29 @@ +import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../../entity.js'; +import { UmbRenamePartialViewRepository } from './rename-partial-view.repository.js'; +import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; +import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_RENAME_PARTIAL_VIEW_REPOSITORY_ALIAS = 'Umb.Repository.PartialView.Rename'; +export const UMB_RENAME_PARTIAL_VIEW_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.PartialView.Rename'; + +export const manifests: Array = [ + { + type: 'repository', + alias: UMB_RENAME_PARTIAL_VIEW_REPOSITORY_ALIAS, + name: 'Rename PartialView Repository', + api: UmbRenamePartialViewRepository, + }, + { + type: 'entityAction', + alias: UMB_RENAME_PARTIAL_VIEW_ENTITY_ACTION_ALIAS, + name: 'Rename PartialView Entity Action', + api: UmbRenameEntityAction, + weight: 200, + meta: { + icon: 'icon-edit', + label: 'Rename...', + repositoryAlias: UMB_RENAME_PARTIAL_VIEW_REPOSITORY_ALIAS, + entityTypes: [UMB_PARTIAL_VIEW_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts new file mode 100644 index 0000000000..6676e3942a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts @@ -0,0 +1,11 @@ +import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from '../../repository/partial-view-detail.store.js'; +import { UmbPartialViewDetailModel } from '../../types.js'; +import { UmbRenamePartialViewServerDataSource } from './rename-partial-view.server.data-source.js'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action'; + +export class UmbRenamePartialViewRepository extends UmbRenameRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbRenamePartialViewServerDataSource, UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts new file mode 100644 index 0000000000..f7646be517 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts @@ -0,0 +1,51 @@ +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../../utils/index.js'; +import { UmbPartialViewDetailServerDataSource } from '../../repository/partial-view-detail.server.data-source.js'; +import { RenameStylesheetRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export class UmbRenamePartialViewServerDataSource { + #host: UmbControllerHost; + #detailDataSource: UmbPartialViewDetailServerDataSource; + #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + + constructor(host: UmbControllerHost) { + this.#host = host; + this.#detailDataSource = new UmbPartialViewDetailServerDataSource(this.#host); + } + + /** + * Rename Partial View + * @param {string} unique + * @param {string} name + * @return {*} + * @memberof UmbRenamePartialViewServerDataSource + */ + async rename(unique: string, name: string) { + if (!unique) throw new Error('Unique is missing'); + if (!name) throw new Error('Name is missing'); + + const path = this.#serverPathUniqueSerializer.toServerPath(unique); + if (!path) throw new Error('Path is missing'); + + const requestBody: RenameStylesheetRequestModel = { + name: appendFileExtensionIfNeeded(name, '.js'), + }; + + const { data, error } = await tryExecuteAndNotify( + this.#host, + PartialViewResource.putPartialViewByPathRename({ + path: encodeURIComponent(path), + requestBody, + }), + ); + + if (data) { + const newPath = decodeURIComponent(data); + const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + return this.#detailDataSource.read(newPathUnique); + } + + return { error }; + } +} From 0fad1d0f4671b2ff5fe03a0de9470d18ac7a7db3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 21:22:49 +0100 Subject: [PATCH 262/786] align static file tree naming + folder structure --- .../input-static-file.context.ts | 2 +- .../src/packages/static-file/entity.ts | 5 ++- .../src/packages/static-file/index.ts | 2 +- .../src/packages/static-file/manifests.ts | 3 +- .../static-file/repository/manifests.ts | 32 --------------- .../static-file/{repository => tree}/index.ts | 0 .../packages/static-file/tree/manifests.ts | 41 +++++++++++++++++-- .../static-file-tree.repository.ts | 0 .../static-file-tree.server.data-source.ts | 0 .../static-file-tree.store.ts | 0 .../static-file/{repository => tree}/types.ts | 0 11 files changed, 45 insertions(+), 40 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/static-file/repository/manifests.ts rename src/Umbraco.Web.UI.Client/src/packages/static-file/{repository => tree}/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/static-file/{repository => tree}/static-file-tree.repository.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/static-file/{repository => tree}/static-file-tree.server.data-source.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/static-file/{repository => tree}/static-file-tree.store.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/static-file/{repository => tree}/types.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.context.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.context.ts index 970b2285c3..ce2d0fd11b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.context.ts @@ -1,4 +1,4 @@ -import { UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS } from '../../tree/index.js'; import { UMB_STATIC_FILE_PICKER_MODAL } from '../../modals/index.js'; import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts index 7e7edeacfa..b929beb2c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts @@ -1,2 +1,5 @@ -export const UMB_STATIC_FILE_ROOT_ENTITY_TYPE = 'static-file-root'; export const UMB_STATIC_FILE_ENTITY_TYPE = 'static-file'; +export const UMB_STATIC_FILE_ROOT_ENTITY_TYPE = 'static-file-root'; + +export type UmbStaticFileEntityType = typeof UMB_STATIC_FILE_ENTITY_TYPE; +export type UmbStaticFileRootEntityType = typeof UMB_STATIC_FILE_ROOT_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/index.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/index.ts index 149f181b87..b95b816226 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/index.ts @@ -1,3 +1,3 @@ export * from './components/index.js'; -export * from './repository/index.js'; +export * from './tree/index.js'; export * from './modals/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts index 5c122cc776..dc87f79dea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts @@ -1,5 +1,4 @@ import { manifests as propertyEditorManifests } from './property-editors/manifests.js'; -import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; -export const manifests = [...repositoryManifests, ...propertyEditorManifests, ...treeManifests]; +export const manifests = [...propertyEditorManifests, ...treeManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/manifests.ts deleted file mode 100644 index 5465c1deec..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/manifests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { UmbStaticFileTreeRepository } from './static-file-tree.repository.js'; -import { UmbStaticFileTreeStore } from './static-file-tree.store.js'; -import type { ManifestRepository, ManifestTree, ManifestTreeStore } from '@umbraco-cms/backoffice/extension-registry'; - -export const UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS = 'Umb.Repository.StaticFile.Tree'; -export const UMB_STATIC_FILE_TREE_STORE_ALIAS = 'Umb.Store.StaticFile.Tree'; -export const UMB_STATIC_FILE_TREE_ALIAS = 'Umb.Tree.StaticFile'; - -const treeRepository: ManifestRepository = { - type: 'repository', - alias: UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, - name: 'Static File Tree Repository', - api: UmbStaticFileTreeRepository, -}; - -const treeStore: ManifestTreeStore = { - type: 'treeStore', - alias: UMB_STATIC_FILE_TREE_STORE_ALIAS, - name: 'Static File Tree Store', - api: UmbStaticFileTreeStore, -}; - -const tree: ManifestTree = { - type: 'tree', - alias: UMB_STATIC_FILE_TREE_ALIAS, - name: 'Static File Tree', - meta: { - repositoryAlias: UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, - }, -}; - -export const manifests = [treeRepository, treeStore, tree]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/static-file/repository/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/static-file/tree/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts index b9fa294c18..6f490cc778 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts @@ -1,14 +1,49 @@ import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE } from '../entity.js'; -import type { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbStaticFileTreeRepository } from '../tree/static-file-tree.repository.js'; +import { UmbStaticFileTreeStore } from '../tree/static-file-tree.store.js'; +import type { + ManifestRepository, + ManifestTree, + ManifestTreeStore, + ManifestTreeItem, +} from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS = 'Umb.Repository.StaticFile.Tree'; +export const UMB_STATIC_FILE_TREE_STORE_ALIAS = 'Umb.Store.StaticFile.Tree'; +export const UMB_STATIC_FILE_TREE_ALIAS = 'Umb.Tree.StaticFile'; +export const UMB_STATIC_FILE_TREE_ITEM_ALIAS = 'Umb.TreeItem.StaticFile'; + +const treeRepository: ManifestRepository = { + type: 'repository', + alias: UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, + name: 'Static File Tree Repository', + api: UmbStaticFileTreeRepository, +}; + +const treeStore: ManifestTreeStore = { + type: 'treeStore', + alias: UMB_STATIC_FILE_TREE_STORE_ALIAS, + name: 'Static File Tree Store', + api: UmbStaticFileTreeStore, +}; + +const tree: ManifestTree = { + type: 'tree', + alias: UMB_STATIC_FILE_TREE_ALIAS, + name: 'Static File Tree', + meta: { + repositoryAlias: UMB_STATIC_FILE_TREE_REPOSITORY_ALIAS, + }, +}; const treeItem: ManifestTreeItem = { type: 'treeItem', kind: 'fileSystem', - alias: 'Umb.TreeItem.StaticFile', + alias: UMB_STATIC_FILE_TREE_ITEM_ALIAS, name: 'Static File Tree Item', meta: { entityTypes: [UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE], }, }; -export const manifests = [treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.server.data-source.ts rename to src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/static-file/repository/static-file-tree.store.ts rename to src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/static-file/repository/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts From 8a02b5d6938ccec474979aa37ffdb1751f7cfedf Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 12 Jan 2024 21:24:27 +0100 Subject: [PATCH 263/786] fix type error --- .../stylesheets/workspace/stylesheet-workspace.context.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index d2d6538b80..fe89d608ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -13,7 +13,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbStylesheetWorkspaceContext extends UmbEditableWorkspaceContextBase - implements UmbSaveableWorkspaceContextInterface + implements UmbSaveableWorkspaceContextInterface { #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); From 1d1c18c44968f5a2079d523f85c9b82e8d65d538 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:16:43 +0100 Subject: [PATCH 264/786] align static file tree with rest of file system trees --- .../src/mocks/browser-handlers.ts | 2 +- .../src/mocks/data/static-file.data.ts | 61 ------------------- .../data/static-file/static-file.data.ts | 37 +++++++++++ .../mocks/data/static-file/static-file.db.ts | 15 +++++ .../src/mocks/data/utils.ts | 7 +-- .../mocks/handlers/static-file.handlers.ts | 39 ------------ .../src/mocks/handlers/static-file/index.ts | 4 ++ .../handlers/static-file/item.handlers.ts | 13 ++++ .../src/mocks/handlers/static-file/slug.ts | 1 + .../handlers/static-file/tree.handlers.ts | 18 ++++++ .../src/packages/static-file/entity.ts | 2 + .../packages/static-file/tree/manifests.ts | 10 ++- .../tree/static-file-tree.repository.ts | 6 +- .../static-file-tree.server.data-source.ts | 16 +++-- .../tree/static-file-tree.store.ts | 4 +- .../src/packages/static-file/tree/types.ts | 12 +++- 16 files changed, 126 insertions(+), 121 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/static-file.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/item.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/slug.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index 0f271ffbb4..b3e305bb11 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -30,7 +30,7 @@ import { handlers as redirectManagementHandlers } from './handlers/redirect-mana import { handlers as logViewerHandlers } from './handlers/log-viewer.handlers.js'; import { handlers as packageHandlers } from './handlers/package.handlers.js'; import { handlers as rteEmbedHandlers } from './handlers/rte-embed.handlers.js'; -import { handlers as staticFileHandlers } from './handlers/static-file.handlers.js'; +import { handlers as staticFileHandlers } from './handlers/static-file/index.js'; import { handlers as stylesheetHandlers } from './handlers/stylesheet/index.js'; import { handlers as partialViewHandlers } from './handlers/partial-view/index.js'; import { handlers as tagHandlers } from './handlers/tag-handlers.js'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file.data.ts deleted file mode 100644 index 1c14154a0e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file.data.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { UmbData } from './data.js'; -import { createFileItemResponseModelBaseModel, createFileSystemTreeItem } from './utils.js'; -import { - FileSystemTreeItemPresentationModel, - PagedFileSystemTreeItemPresentationModel, - ScriptItemResponseModel, - StaticFileItemResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; - -type StaticFileItem = StaticFileItemResponseModel & FileSystemTreeItemPresentationModel & { icon?: string }; - -export const data: Array = [ - { - path: 'some-file.js', - name: 'some-file', - icon: 'icon-document', - type: 'static-file', - hasChildren: false, - isFolder: false, - }, - { - path: 'another-file.js', - name: 'another-file', - icon: 'icon-document', - type: 'static-file', - hasChildren: false, - isFolder: false, - }, -]; - -class UmbStaticFileData extends UmbData { - constructor() { - super(data); - } - - getTreeRoot(): PagedFileSystemTreeItemPresentationModel { - const items = this.data.filter((item) => item.path?.includes('/') === false); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItemChildren(parentPath: string): PagedFileSystemTreeItemPresentationModel { - const items = this.data.filter((item) => item.path?.startsWith(parentPath)); - const treeItems = items.map((item) => createFileSystemTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItem(paths: Array): Array { - const items = this.data.filter((item) => paths.includes(item.path ?? '')); - return items.map((item) => createFileSystemTreeItem(item)); - } - - getItem(paths: Array): Array { - const items = this.data.filter((item) => paths.includes(item.path ?? '')); - return items.map((item) => createFileItemResponseModelBaseModel(item)); - } -} - -export const umbStaticFileData = new UmbStaticFileData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts new file mode 100644 index 0000000000..2cd3e5dca2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts @@ -0,0 +1,37 @@ +import { FileSystemTreeItemPresentationModel, StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export type UmbMockStaticFileModelHack = StaticFileItemResponseModel & FileSystemTreeItemPresentationModel; +export interface UmbMockStaticFileModel extends Omit {} + +export const data: Array = [ + { + path: '/some-file.js', + parent: null, + name: 'some-file.js', + hasChildren: false, + isFolder: false, + }, + { + path: '/another-file.js', + parent: null, + name: 'another-file.js', + hasChildren: false, + isFolder: false, + }, + { + path: '/Folder 1', + parent: null, + name: 'Folder 1', + hasChildren: true, + isFolder: true, + }, + { + path: '/Folder 1/File in Folder 1.js', + parent: { + path: '/Folder 1', + }, + name: 'File in Folder 1.js', + hasChildren: false, + isFolder: false, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts new file mode 100644 index 0000000000..228d2714d8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts @@ -0,0 +1,15 @@ +import { UmbFileSystemMockDbBase } from '../file-system/file-system-base.js'; +import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; +import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; +import { UmbMockStaticFileModel, data as staticFileData } from './static-file.data.js'; + +class UmbStaticFileMockDB extends UmbFileSystemMockDbBase { + tree = new UmbMockFileSystemTreeManager(this); + item = new UmbMockFileSystemItemManager(this); + + constructor(data: Array) { + super(data); + } +} + +export const umbStaticFileMockDb = new UmbStaticFileMockDB(staticFileData); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 8af57b4705..b05c6cace7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -75,13 +75,12 @@ export const createMediaTypeTreeItem = (item: MediaTypeResponseModel): MediaType }; }; -export const createFileSystemTreeItem = (item: any): FileSystemTreeItemPresentationModel => { +export const createFileSystemTreeItem = (item: any): Omit => { return { - name: item.name, - type: item.type, - hasChildren: item.hasChildren ?? false, path: item.path, parent: item.parent ?? null, + name: item.name, + hasChildren: item.hasChildren ?? false, isFolder: item.isFolder ?? false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file.handlers.ts deleted file mode 100644 index bd989512e1..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file.handlers.ts +++ /dev/null @@ -1,39 +0,0 @@ -const { rest } = window.MockServiceWorker; -import { umbStaticFileData } from '../data/static-file.data.js'; -import { umbracoPath } from '@umbraco-cms/backoffice/utils'; - -const treeHandlers = [ - rest.get(umbracoPath('/tree/static-file/root'), (req, res, ctx) => { - const response = umbStaticFileData.getTreeRoot(); - return res(ctx.status(200), ctx.json(response)); - }), - rest.get(umbracoPath('/tree/static-file/children'), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return; - - const response = umbStaticFileData.getTreeItemChildren(path); - return res(ctx.status(200), ctx.json(response)); - }), -]; - -const __treeHandlers = [ - rest.get(umbracoPath('/tree/static-file/item'), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); - if (!paths) return; - - const items = umbStaticFileData.getTreeItem(paths); - return res(ctx.status(200), ctx.json(items)); - }), -]; - -const itemHandlers = [ - rest.get(umbracoPath('/static-file/item'), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); - if (!paths) return; - - const items = umbStaticFileData.getTreeItem(paths); - return res(ctx.status(200), ctx.json(items)); - }), -]; - -export const handlers = [...treeHandlers, ...itemHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/index.ts new file mode 100644 index 0000000000..c342e001ad --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/index.ts @@ -0,0 +1,4 @@ +import { treeHandlers } from './tree.handlers.js'; +import { itemHandlers } from './item.handlers.js'; + +export const handlers = [...treeHandlers, ...itemHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/item.handlers.ts new file mode 100644 index 0000000000..93419e7231 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/item.handlers.ts @@ -0,0 +1,13 @@ +const { rest } = window.MockServiceWorker; +import { umbStaticFileMockDb } from '../../data/static-file/static-file.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const itemHandlers = [ + rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { + const paths = req.url.searchParams.getAll('paths'); + if (!paths) return res(ctx.status(400, 'no body found')); + const items = umbStaticFileMockDb.item.getItems(paths); + return res(ctx.status(200), ctx.json(items)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/slug.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/slug.ts new file mode 100644 index 0000000000..ef841dbd9f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/slug.ts @@ -0,0 +1 @@ +export const UMB_SLUG = '/static-file'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts new file mode 100644 index 0000000000..ca0a038895 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/static-file/tree.handlers.ts @@ -0,0 +1,18 @@ +const { rest } = window.MockServiceWorker; +import { umbStaticFileMockDb } from '../../data/static-file/static-file.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const treeHandlers = [ + rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { + const response = umbStaticFileMockDb.tree.getRoot(); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { + const parentPath = req.url.searchParams.get('parentPath'); + if (!parentPath) return res(ctx.status(400)); + const response = umbStaticFileMockDb.tree.getChildrenOf(parentPath); + return res(ctx.status(200), ctx.json(response)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts index b929beb2c7..542db33ddf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/entity.ts @@ -1,5 +1,7 @@ export const UMB_STATIC_FILE_ENTITY_TYPE = 'static-file'; export const UMB_STATIC_FILE_ROOT_ENTITY_TYPE = 'static-file-root'; +export const UMB_STATIC_FILE_FOLDER_ENTITY_TYPE = 'static-file-folder'; export type UmbStaticFileEntityType = typeof UMB_STATIC_FILE_ENTITY_TYPE; export type UmbStaticFileRootEntityType = typeof UMB_STATIC_FILE_ROOT_ENTITY_TYPE; +export type UmbStaticFileFolderEntityType = typeof UMB_STATIC_FILE_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts index 6f490cc778..8089358f13 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/manifests.ts @@ -1,4 +1,8 @@ -import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE } from '../entity.js'; +import { + UMB_STATIC_FILE_ENTITY_TYPE, + UMB_STATIC_FILE_FOLDER_ENTITY_TYPE, + UMB_STATIC_FILE_ROOT_ENTITY_TYPE, +} from '../entity.js'; import { UmbStaticFileTreeRepository } from '../tree/static-file-tree.repository.js'; import { UmbStaticFileTreeStore } from '../tree/static-file-tree.store.js'; import type { @@ -38,11 +42,11 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'fileSystem', + kind: 'unique', alias: UMB_STATIC_FILE_TREE_ITEM_ALIAS, name: 'Static File Tree Item', meta: { - entityTypes: [UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE], + entityTypes: [UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_ROOT_ENTITY_TYPE, UMB_STATIC_FILE_FOLDER_ENTITY_TYPE], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts index 0a1c246e50..756378ff92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts @@ -15,10 +15,10 @@ export class UmbStaticFileTreeRepository } async requestTreeRoot() { - const data = { - path: null, + const data: UmbStaticFileTreeRootModel = { + unique: null, entityType: UMB_STATIC_FILE_ROOT_ENTITY_TYPE, - name: 'StaticFiles', + name: 'Static Files', icon: 'icon-folder', hasChildren: true, isContainer: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts index f40118ff6d..cbf879c0c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts @@ -1,8 +1,9 @@ -import { UMB_STATIC_FILE_ENTITY_TYPE } from '../entity.js'; +import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbStaticFileTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { StaticFileResource, type FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbServerPathUniqueSerializer } from 'src/packages/templating/utils/server-path-unique-serializer.js'; /** * A data source for the Static File tree that fetches data from the server @@ -32,21 +33,26 @@ export class UmbStaticFileTreeServerDataSource extends UmbTreeServerDataSourceBa const getRootItems = () => StaticFileResource.getTreeStaticFileRoot({}); const getChildrenOf = (parentUnique: string | null) => { - if (parentUnique === null) { + const parentPath = new UmbServerPathUniqueSerializer().toServerPath(parentUnique); + + if (parentPath === null) { return getRootItems(); } else { // eslint-disable-next-line local-rules/no-direct-api-import return StaticFileResource.getTreeStaticFileChildren({ - parentPath: parentUnique, + parentPath, }); } }; const mapper = (item: FileSystemTreeItemPresentationModel): UmbStaticFileTreeItemModel => { + const serializer = new UmbServerPathUniqueSerializer(); + return { - path: item.path, + unique: serializer.toUnique(item.path), + parentUnique: item.parent ? serializer.toUnique(item.parent.path) : null, + entityType: item.isFolder ? UMB_STATIC_FILE_FOLDER_ENTITY_TYPE : UMB_STATIC_FILE_ENTITY_TYPE, name: item.name, - entityType: UMB_STATIC_FILE_ENTITY_TYPE, isFolder: item.isFolder, hasChildren: item.hasChildren, isContainer: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts index 8289211f00..a2e76ca9b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts @@ -1,6 +1,6 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; /** * @export @@ -8,7 +8,7 @@ import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; * @extends {UmbStoreBase} * @description - Tree Data Store for Static File Items */ -export class UmbStaticFileTreeStore extends UmbEntityTreeStore { +export class UmbStaticFileTreeStore extends UmbUniqueTreeStore { /** * Creates an instance of UmbStaticFileTreeStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts index 186a906a23..e45df36ba7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts @@ -1,4 +1,10 @@ -import type { UmbFileSystemTreeItemModel, UmbFileSystemTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import { UmbStaticFileEntityType, UmbStaticFileFolderEntityType, UmbStaticFileRootEntityType } from '../entity.js'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbStaticFileTreeItemModel extends UmbFileSystemTreeItemModel {} -export interface UmbStaticFileTreeRootModel extends UmbFileSystemTreeRootModel {} +export interface UmbStaticFileTreeItemModel extends UmbUniqueTreeItemModel { + entityType: UmbStaticFileEntityType | UmbStaticFileFolderEntityType; +} + +export interface UmbStaticFileTreeRootModel extends UmbUniqueTreeRootModel { + entityType: UmbStaticFileRootEntityType; +} From bbec60ddea90234cb059bd6a7fa6797f773ed828 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:30:06 +0100 Subject: [PATCH 265/786] add new file-system module --- src/Umbraco.Web.UI.Client/package.json | 1 + src/Umbraco.Web.UI.Client/tsconfig.json | 1 + src/Umbraco.Web.UI.Client/web-test-runner.config.mjs | 1 + 3 files changed, 3 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 1f79b1c58d..b1b595846b 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -29,6 +29,7 @@ "./entity-action": "./dist-cms/packages/core/entity-action/index.js", "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", + "./file-system": "./dist-cms/packages/core/file-system/index.js", "./id": "./dist-cms/packages/core/id/index.js", "./localization": "./dist-cms/packages/core/localization/index.js", "./macro": "./dist-cms/packages/core/macro/index.js", diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index f5dadc571b..cad52f1615 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -69,6 +69,7 @@ "@umbraco-cms/backoffice/entity-action": ["src/packages/core/entity-action"], "@umbraco-cms/backoffice/entity-bulk-action": ["src/packages/core/entity-bulk-action"], "@umbraco-cms/backoffice/extension-registry": ["src/packages/core/extension-registry"], + "@umbraco-cms/backoffice/file-system": ["src/packages/core/file-system"], "@umbraco-cms/backoffice/id": ["src/packages/core/id"], "@umbraco-cms/backoffice/localization": ["src/packages/core/localization"], "@umbraco-cms/backoffice/macro": ["src/packages/core/macro"], 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 23d5ce5960..b0e0b37109 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -69,6 +69,7 @@ export default { '@umbraco-cms/backoffice/entity-action': './src/packages/core/entity-action/index.ts', '@umbraco-cms/backoffice/entity-bulk-action': './src/packages/core/entity-bulk-action/index.ts', '@umbraco-cms/backoffice/extension-registry': './src/packages/core/extension-registry/index.ts', + '@umbraco-cms/backoffice/file-system': './src/packages/core/file-system/index.ts', '@umbraco-cms/backoffice/id': './src/packages/core/id/index.ts', '@umbraco-cms/backoffice/localization': './src/packages/core/localization/index.ts', '@umbraco-cms/backoffice/macro': './src/packages/core/macro/index.ts', From bd7a32afc3a4cb8ae4001bb8cf0da4073c0f4555 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:30:53 +0100 Subject: [PATCH 266/786] move file system utils to file-system module --- .../file-system}/append-file-extension.function.test.ts | 0 .../file-system}/append-file-extension.function.ts | 0 .../src/packages/core/file-system/index.ts | 2 ++ .../file-system}/server-path-unique-serializer.test.ts | 0 .../utils => core/file-system}/server-path-unique-serializer.ts | 0 .../src/packages/templating/utils/index.ts | 2 -- 6 files changed, 2 insertions(+), 2 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/{templating/utils => core/file-system}/append-file-extension.function.test.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{templating/utils => core/file-system}/append-file-extension.function.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/file-system/index.ts rename src/Umbraco.Web.UI.Client/src/packages/{templating/utils => core/file-system}/server-path-unique-serializer.test.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{templating/utils => core/file-system}/server-path-unique-serializer.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/utils/append-file-extension.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/file-system/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/file-system/index.ts new file mode 100644 index 0000000000..d2cdac5f00 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/file-system/index.ts @@ -0,0 +1,2 @@ +export * from './append-file-extension.function.js'; +export * from './server-path-unique-serializer.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts b/src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/templating/utils/server-path-unique-serializer.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts index 90a7a7b3b6..95e6022e3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts @@ -51,5 +51,3 @@ export const getUmbracoFieldSnippet = (field: string, defaultValue: string | nul }; export * from './parent-path-from-server-path.function.js'; -export * from './server-path-unique-serializer.js'; -export * from './append-file-extension.function.js'; From 6b3c7424336c20528e24fbb86e55802fab80bbe3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:33:41 +0100 Subject: [PATCH 267/786] import from module --- .../static-file/tree/static-file-tree.server.data-source.ts | 2 +- .../partial-views/tree/partial-view-tree.server.data-source.ts | 2 +- .../stylesheets/tree/stylesheet-tree.server.data-source.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts index cbf879c0c1..a9396b0112 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts @@ -1,9 +1,9 @@ +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbStaticFileTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { StaticFileResource, type FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbServerPathUniqueSerializer } from 'src/packages/templating/utils/server-path-unique-serializer.js'; /** * A data source for the Static File tree that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts index 80f665dabb..609f9f7112 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts @@ -1,5 +1,5 @@ +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer } from '../../utils/server-path-unique-serializer.js'; import { UmbPartialViewTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { FileSystemTreeItemPresentationModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts index 3c3b8d8ec7..94df942a8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts @@ -1,5 +1,5 @@ +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer } from '../../utils/server-path-unique-serializer.js'; import { UmbStylesheetTreeItemModel } from './types.js'; import { FileSystemTreeItemPresentationModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; From 3574906f1c0429061b9b7ba7a20e3e21ca8e8ccf Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:35:21 +0100 Subject: [PATCH 268/786] remove unused function --- .../src/packages/templating/utils/index.ts | 2 -- .../parent-path-from-server-path.function.test.ts | 15 --------------- .../parent-path-from-server-path.function.ts | 4 ---- 3 files changed, 21 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts index 95e6022e3a..57c84ea4bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/index.ts @@ -49,5 +49,3 @@ export const getUmbracoFieldSnippet = (field: string, defaultValue: string | nul return value; }; - -export * from './parent-path-from-server-path.function.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts deleted file mode 100644 index 6adcd962cf..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { expect } from '@open-wc/testing'; -import { getParentPathFromServerPath } from './parent-path-from-server-path.function.js'; - -describe('parent-path-from-server-path', () => { - it('it returns the parent path of a nested server path', () => { - const path = 'Folder A/Folder AA/Folder AAA'; - const expectedParentPath = 'Folder A/Folder AA'; - expect(getParentPathFromServerPath(path)).to.equal(expectedParentPath); - }); - - it('it returns null of a root server path', () => { - const path = 'Folder A'; - expect(getParentPathFromServerPath(path)).to.be.null; - }); -}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts deleted file mode 100644 index 3930a27324..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/utils/parent-path-from-server-path.function.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const getParentPathFromServerPath = (serverPath: string): string | null => { - const parentPath = serverPath.substring(0, serverPath.lastIndexOf('/')); - return parentPath || null; -}; From 804efcd3e5dc16785e3e413998f3ca7e125ca73e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:39:19 +0100 Subject: [PATCH 269/786] import from module --- .../rename/rename-partial-view.server.data-source.ts | 2 +- .../repository/partial-view-detail.server.data-source.ts | 2 +- .../tree/folder/partial-view-folder.server.data-source.ts | 2 +- .../entity-actions/rename/rename-script.server.data-source.ts | 2 +- .../scripts/repository/script-detail.server.data-source.ts | 2 +- .../templating/scripts/tree/script-tree.server.data-source.ts | 2 +- .../rename/rename-stylesheet.server.data-source.ts | 2 +- .../repository/stylesheet-detail.server.data-source.ts | 2 +- .../tree/folder/stylesheet-folder.server.data-source.ts | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts index f7646be517..7cf607acb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../../utils/index.js'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; import { UmbPartialViewDetailServerDataSource } from '../../repository/partial-view-detail.server.data-source.js'; import { RenameStylesheetRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts index f5d2a590e6..0394b9f862 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts @@ -1,6 +1,6 @@ +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; import { type UmbPartialViewDetailModel } from '../types.js'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../utils/index.js'; import { CreatePartialViewRequestModel, PartialViewResource, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts index 8f83ea8790..40ba581adc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '../../../utils/index.js'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { CreatePartialViewFolderRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts index eed1cc1511..fe6e2a28bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../../utils/index.js'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; import { UmbScriptDetailServerDataSource } from '../../repository/script-detail.server.data-source.js'; import { RenameStylesheetRequestModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index d9cc26ceed..7a21e18f4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,6 +1,6 @@ +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../utils/index.js'; import { CreateScriptRequestModel, ScriptResource, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts index aebef6903b..b6f2da28dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts @@ -1,5 +1,5 @@ +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer } from '../../utils/index.js'; import { UmbScriptTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { FileSystemTreeItemPresentationModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts index 7ef7c62f10..7c1866c7ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../../utils/index.js'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; import { UmbStylesheetDetailServerDataSource } from '../../repository/stylesheet-detail.server.data-source.js'; import { RenameStylesheetRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts index a0f68059ba..fd89e64a98 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts @@ -1,6 +1,6 @@ +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; import { UmbStylesheetDetailModel } from '../types.js'; import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '../../utils/index.js'; import { CreateStylesheetRequestModel, StylesheetResource, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts index 7fccb37ebf..bde09de2c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '../../../utils/index.js'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { CreateStylesheetFolderRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; From 4ffc5fb09fa48a3892820a66516ceb4abc63331a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:43:44 +0100 Subject: [PATCH 270/786] make module name more explicit --- src/Umbraco.Web.UI.Client/package.json | 2 +- .../append-file-extension.function.test.ts | 0 .../append-file-extension.function.ts | 0 .../packages/core/{file-system => server-file-system}/index.ts | 0 .../server-path-unique-serializer.test.ts | 0 .../server-path-unique-serializer.ts | 0 .../static-file/tree/static-file-tree.server.data-source.ts | 2 +- .../rename/rename-partial-view.server.data-source.ts | 2 +- .../repository/partial-view-detail.server.data-source.ts | 2 +- .../tree/folder/partial-view-folder.server.data-source.ts | 2 +- .../partial-views/tree/partial-view-tree.server.data-source.ts | 2 +- .../entity-actions/rename/rename-script.server.data-source.ts | 2 +- .../scripts/repository/script-detail.server.data-source.ts | 2 +- .../templating/scripts/tree/script-tree.server.data-source.ts | 2 +- .../rename/rename-stylesheet.server.data-source.ts | 2 +- .../repository/stylesheet-detail.server.data-source.ts | 2 +- .../tree/folder/stylesheet-folder.server.data-source.ts | 2 +- .../stylesheets/tree/stylesheet-tree.server.data-source.ts | 2 +- src/Umbraco.Web.UI.Client/tsconfig.json | 2 +- src/Umbraco.Web.UI.Client/web-test-runner.config.mjs | 2 +- 20 files changed, 15 insertions(+), 15 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/{file-system => server-file-system}/append-file-extension.function.test.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{file-system => server-file-system}/append-file-extension.function.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{file-system => server-file-system}/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{file-system => server-file-system}/server-path-unique-serializer.test.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{file-system => server-file-system}/server-path-unique-serializer.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index b1b595846b..8ea91660fd 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -29,7 +29,7 @@ "./entity-action": "./dist-cms/packages/core/entity-action/index.js", "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", - "./file-system": "./dist-cms/packages/core/file-system/index.js", + "./server-file-system": "./dist-cms/packages/core/server-file-system/index.js", "./id": "./dist-cms/packages/core/id/index.js", "./localization": "./dist-cms/packages/core/localization/index.js", "./macro": "./dist-cms/packages/core/macro/index.js", diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/append-file-extension.function.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/append-file-extension.function.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/append-file-extension.function.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/file-system/append-file-extension.function.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/append-file-extension.function.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/file-system/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/file-system/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/file-system/server-path-unique-serializer.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts index a9396b0112..dc10c19ed8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbStaticFileTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts index 7cf607acb1..765019c3ca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; import { UmbPartialViewDetailServerDataSource } from '../../repository/partial-view-detail.server.data-source.js'; import { RenameStylesheetRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts index 0394b9f862..18345ee70c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; import { type UmbPartialViewDetailModel } from '../types.js'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts index 40ba581adc..dec909b5c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { CreatePartialViewFolderRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts index 609f9f7112..80b1a41f24 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbPartialViewTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts index fe6e2a28bf..d15d1bd568 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; import { UmbScriptDetailServerDataSource } from '../../repository/script-detail.server.data-source.js'; import { RenameStylesheetRequestModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 7a21e18f4a..aba5d2fcc3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts index b6f2da28dc..027c9247b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbScriptTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts index 7c1866c7ac..c668e46e5c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; import { UmbStylesheetDetailServerDataSource } from '../../repository/stylesheet-detail.server.data-source.js'; import { RenameStylesheetRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts index fd89e64a98..917c0125f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; import { UmbStylesheetDetailModel } from '../types.js'; import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts index bde09de2c9..cb9307cb8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { CreateStylesheetFolderRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts index 94df942a8a..7c38a3dcf5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/file-system'; +import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbStylesheetTreeItemModel } from './types.js'; import { FileSystemTreeItemPresentationModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index cad52f1615..9da73f3f4d 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -69,7 +69,7 @@ "@umbraco-cms/backoffice/entity-action": ["src/packages/core/entity-action"], "@umbraco-cms/backoffice/entity-bulk-action": ["src/packages/core/entity-bulk-action"], "@umbraco-cms/backoffice/extension-registry": ["src/packages/core/extension-registry"], - "@umbraco-cms/backoffice/file-system": ["src/packages/core/file-system"], + "@umbraco-cms/backoffice/server-file-system": ["src/packages/core/server-file-system"], "@umbraco-cms/backoffice/id": ["src/packages/core/id"], "@umbraco-cms/backoffice/localization": ["src/packages/core/localization"], "@umbraco-cms/backoffice/macro": ["src/packages/core/macro"], 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 b0e0b37109..ddd950e659 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -69,7 +69,7 @@ export default { '@umbraco-cms/backoffice/entity-action': './src/packages/core/entity-action/index.ts', '@umbraco-cms/backoffice/entity-bulk-action': './src/packages/core/entity-bulk-action/index.ts', '@umbraco-cms/backoffice/extension-registry': './src/packages/core/extension-registry/index.ts', - '@umbraco-cms/backoffice/file-system': './src/packages/core/file-system/index.ts', + '@umbraco-cms/backoffice/server-file-system': './src/packages/core/server-file-system/index.ts', '@umbraco-cms/backoffice/id': './src/packages/core/id/index.ts', '@umbraco-cms/backoffice/localization': './src/packages/core/localization/index.ts', '@umbraco-cms/backoffice/macro': './src/packages/core/macro/index.ts', From de0f899a0c323e06dade67e50d563457cbe24556 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:48:15 +0100 Subject: [PATCH 271/786] make class name more explicit --- .../server-path-unique-serializer.test.ts | 8 +++--- .../server-path-unique-serializer.ts | 26 +++++++++---------- .../static-file-tree.server.data-source.ts | 6 ++--- .../rename-partial-view.server.data-source.ts | 7 +++-- .../partial-view-detail.server.data-source.ts | 7 +++-- .../partial-view-folder.server.data-source.ts | 6 ++--- .../partial-view-tree.server.data-source.ts | 6 ++--- .../rename-script.server.data-source.ts | 7 +++-- .../script-detail.server.data-source.ts | 7 +++-- .../tree/script-tree.server.data-source.ts | 6 ++--- .../rename-stylesheet.server.data-source.ts | 7 +++-- .../stylesheet-detail.server.data-source.ts | 7 +++-- .../stylesheet-folder.server.data-source.ts | 6 ++--- .../stylesheet-tree.server.data-source.ts | 6 ++--- 14 files changed, 65 insertions(+), 47 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts index b170d4859e..0045f4c35b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts @@ -1,13 +1,13 @@ import { expect } from '@open-wc/testing'; -import { UmbServerPathUniqueSerializer } from './server-path-unique-serializer.js'; +import { UmbServerFilePathUniqueSerializer } from './server-path-unique-serializer.js'; -describe('UmbServerPathUniqueSerializer', () => { - let serializer: UmbServerPathUniqueSerializer; +describe('UmbServerFilePathUniqueSerializer', () => { + let serializer: UmbServerFilePathUniqueSerializer; const serverPath = 'Folder A/Folder AA/some-Filename-WithCasing_underscore.js'; const expectedUnique = 'Folder%20A%2FFolder%20AA%2Fsome-Filename-WithCasing_underscore%25dot%25js'; beforeEach(() => { - serializer = new UmbServerPathUniqueSerializer(); + serializer = new UmbServerFilePathUniqueSerializer(); }); describe('Public API', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.ts index ce3ccd4084..96a180e26e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.ts @@ -1,27 +1,27 @@ -export class UmbServerPathUniqueSerializer { +export class UmbServerFilePathUniqueSerializer { #magicDot = '%dot%'; /** - * Converts a server path to a unique URL friendly string that can be used in the client - * @param {string} serverPath + * Converts a server file path to a unique URL friendly string that can be used in the client + * @param {string} serverFilePath * @return {*} {(string | null)} - * @memberof UmbServerPathSerializer + * @memberof UmbServerFilePathSerializer */ - toUnique(serverPath: string): string { - const urlSafeServerPath = serverPath?.replace('.', this.#magicDot); - return encodeURIComponent(urlSafeServerPath); + toUnique(serverFilePath: string): string { + const urlSafeServerFilePath = serverFilePath?.replace('.', this.#magicDot); + return encodeURIComponent(urlSafeServerFilePath); } /** * Converts a unique URL friendly string to a server path - * @param {string} serverPathUnique + * @param {string} serverFilePathUnique * @return {*} {(string | null)} - * @memberof UmbServerPathSerializer + * @memberof UmbServerFilePathSerializer */ - toServerPath(serverPathUnique: string | null): string | null { - if (serverPathUnique === undefined) throw new Error('Server path unique is missing'); - if (serverPathUnique === null) return null; - const decoded = decodeURIComponent(serverPathUnique); + toServerPath(serverFilePathUnique: string | null): string | null { + if (serverFilePathUnique === undefined) throw new Error('Server file path unique is missing'); + if (serverFilePathUnique === null) return null; + const decoded = decodeURIComponent(serverFilePathUnique); return decoded.replace(this.#magicDot, '.'); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts index dc10c19ed8..4e75353aab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbStaticFileTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; @@ -33,7 +33,7 @@ export class UmbStaticFileTreeServerDataSource extends UmbTreeServerDataSourceBa const getRootItems = () => StaticFileResource.getTreeStaticFileRoot({}); const getChildrenOf = (parentUnique: string | null) => { - const parentPath = new UmbServerPathUniqueSerializer().toServerPath(parentUnique); + const parentPath = new UmbServerFilePathUniqueSerializer().toServerPath(parentUnique); if (parentPath === null) { return getRootItems(); @@ -46,7 +46,7 @@ const getChildrenOf = (parentUnique: string | null) => { }; const mapper = (item: FileSystemTreeItemPresentationModel): UmbStaticFileTreeItemModel => { - const serializer = new UmbServerPathUniqueSerializer(); + const serializer = new UmbServerFilePathUniqueSerializer(); return { unique: serializer.toUnique(item.path), diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts index 765019c3ca..b346422c78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts @@ -1,4 +1,7 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; +import { + UmbServerFilePathUniqueSerializer, + appendFileExtensionIfNeeded, +} from '@umbraco-cms/backoffice/server-file-system'; import { UmbPartialViewDetailServerDataSource } from '../../repository/partial-view-detail.server.data-source.js'; import { RenameStylesheetRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -7,7 +10,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenamePartialViewServerDataSource { #host: UmbControllerHost; #detailDataSource: UmbPartialViewDetailServerDataSource; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts index 18345ee70c..8bd667d09f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts @@ -1,4 +1,7 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; +import { + UmbServerFilePathUniqueSerializer, + appendFileExtensionIfNeeded, +} from '@umbraco-cms/backoffice/server-file-system'; import { type UmbPartialViewDetailModel } from '../types.js'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { @@ -12,7 +15,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts index dec909b5c6..9c741d0419 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { CreatePartialViewFolderRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -12,7 +12,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; */ export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); /** * Creates an instance of UmbPartialViewFolderServerDataSource. @@ -65,7 +65,7 @@ export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); - const parentPath = new UmbServerPathUniqueSerializer().toServerPath(args.parentUnique); + const parentPath = new UmbServerFilePathUniqueSerializer().toServerPath(args.parentUnique); const requestBody: CreatePartialViewFolderRequestModel = { parent: parentPath ? { path: parentPath } : null, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts index 80b1a41f24..6894f2c478 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbPartialViewTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; @@ -33,7 +33,7 @@ export class UmbPartialViewTreeServerDataSource extends UmbTreeServerDataSourceB const getRootItems = () => PartialViewResource.getTreePartialViewRoot({}); const getChildrenOf = (parentUnique: string | null) => { - const parentPath = new UmbServerPathUniqueSerializer().toServerPath(parentUnique); + const parentPath = new UmbServerFilePathUniqueSerializer().toServerPath(parentUnique); if (parentPath === null) { return getRootItems(); @@ -46,7 +46,7 @@ const getChildrenOf = (parentUnique: string | null) => { }; const mapper = (item: FileSystemTreeItemPresentationModel): UmbPartialViewTreeItemModel => { - const serializer = new UmbServerPathUniqueSerializer(); + const serializer = new UmbServerFilePathUniqueSerializer(); return { unique: serializer.toUnique(item.path), diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts index d15d1bd568..8c3ff1322f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts @@ -1,4 +1,7 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; +import { + UmbServerFilePathUniqueSerializer, + appendFileExtensionIfNeeded, +} from '@umbraco-cms/backoffice/server-file-system'; import { UmbScriptDetailServerDataSource } from '../../repository/script-detail.server.data-source.js'; import { RenameStylesheetRequestModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -7,7 +10,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenameScriptServerDataSource { #host: UmbControllerHost; #detailDataSource: UmbScriptDetailServerDataSource; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index aba5d2fcc3..fbba618d9f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,4 +1,7 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; +import { + UmbServerFilePathUniqueSerializer, + appendFileExtensionIfNeeded, +} from '@umbraco-cms/backoffice/server-file-system'; import { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { @@ -12,7 +15,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbScriptDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts index 027c9247b0..c414283133 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbScriptTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; @@ -33,7 +33,7 @@ export class UmbScriptTreeServerDataSource extends UmbTreeServerDataSourceBase< const getRootItems = () => ScriptResource.getTreeScriptRoot({}); const getChildrenOf = (parentUnique: string | null) => { - const parentPath = new UmbServerPathUniqueSerializer().toServerPath(parentUnique); + const parentPath = new UmbServerFilePathUniqueSerializer().toServerPath(parentUnique); if (parentPath === null) { return getRootItems(); @@ -46,7 +46,7 @@ const getChildrenOf = (parentUnique: string | null) => { }; const mapper = (item: FileSystemTreeItemPresentationModel): UmbScriptTreeItemModel => { - const serializer = new UmbServerPathUniqueSerializer(); + const serializer = new UmbServerFilePathUniqueSerializer(); return { unique: serializer.toUnique(item.path), diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts index c668e46e5c..74171f8d35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts @@ -1,4 +1,7 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; +import { + UmbServerFilePathUniqueSerializer, + appendFileExtensionIfNeeded, +} from '@umbraco-cms/backoffice/server-file-system'; import { UmbStylesheetDetailServerDataSource } from '../../repository/stylesheet-detail.server.data-source.js'; import { RenameStylesheetRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -7,7 +10,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenameStylesheetServerDataSource { #host: UmbControllerHost; #detailDataSource: UmbStylesheetDetailServerDataSource; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts index 917c0125f8..a863d82b1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts @@ -1,4 +1,7 @@ -import { UmbServerPathUniqueSerializer, appendFileExtensionIfNeeded } from '@umbraco-cms/backoffice/server-file-system'; +import { + UmbServerFilePathUniqueSerializer, + appendFileExtensionIfNeeded, +} from '@umbraco-cms/backoffice/server-file-system'; import { UmbStylesheetDetailModel } from '../types.js'; import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; import { @@ -12,7 +15,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts index cb9307cb8a..b721411485 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { CreateStylesheetFolderRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -12,7 +12,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; */ export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerPathUniqueSerializer(); + #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); /** * Creates an instance of UmbStylesheetFolderServerDataSource. @@ -65,7 +65,7 @@ export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); - const parentPath = new UmbServerPathUniqueSerializer().toServerPath(args.parentUnique); + const parentPath = new UmbServerFilePathUniqueSerializer().toServerPath(args.parentUnique); const requestBody: CreateStylesheetFolderRequestModel = { parent: parentPath ? { path: parentPath } : null, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts index 7c38a3dcf5..0ffcda2d07 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbServerPathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbStylesheetTreeItemModel } from './types.js'; import { FileSystemTreeItemPresentationModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; @@ -33,7 +33,7 @@ export class UmbStylesheetTreeServerDataSource extends UmbTreeServerDataSourceBa const getRootItems = () => StylesheetResource.getTreeStylesheetRoot({}); const getChildrenOf = (parentUnique: string | null) => { - const parentPath = new UmbServerPathUniqueSerializer().toServerPath(parentUnique); + const parentPath = new UmbServerFilePathUniqueSerializer().toServerPath(parentUnique); if (parentPath === null) { return getRootItems(); @@ -46,7 +46,7 @@ const getChildrenOf = (parentUnique: string | null) => { }; const mapper = (item: FileSystemTreeItemPresentationModel): UmbStylesheetTreeItemModel => { - const serializer = new UmbServerPathUniqueSerializer(); + const serializer = new UmbServerFilePathUniqueSerializer(); return { unique: serializer.toUnique(item.path), From a3e92047e672351a64fe8e811299e28c2f4c3ee7 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:51:44 +0100 Subject: [PATCH 272/786] adjust naming --- .../rename-partial-view.server.data-source.ts | 6 +++--- .../partial-view-detail.server.data-source.ts | 16 ++++++++-------- .../partial-view-folder.server.data-source.ts | 12 ++++++------ .../rename/rename-script.server.data-source.ts | 6 +++--- .../script-detail.server.data-source.ts | 16 ++++++++-------- .../folder/script-folder.server.data-source.ts | 14 +++++++------- .../rename-stylesheet.server.data-source.ts | 6 +++--- .../stylesheet-detail.server.data-source.ts | 16 ++++++++-------- .../stylesheet-folder.server.data-source.ts | 12 ++++++------ 9 files changed, 52 insertions(+), 52 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts index b346422c78..49bd0e33ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts @@ -10,7 +10,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenamePartialViewServerDataSource { #host: UmbControllerHost; #detailDataSource: UmbPartialViewDetailServerDataSource; - #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; @@ -28,7 +28,7 @@ export class UmbRenamePartialViewServerDataSource { if (!unique) throw new Error('Unique is missing'); if (!name) throw new Error('Name is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Path is missing'); const requestBody: RenameStylesheetRequestModel = { @@ -45,7 +45,7 @@ export class UmbRenamePartialViewServerDataSource { if (data) { const newPath = decodeURIComponent(data); - const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + const newPathUnique = this.#serverFilePathUniqueSerializer.toUnique(newPath); return this.#detailDataSource.read(newPathUnique); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts index 8bd667d09f..362d31848e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts @@ -15,7 +15,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; @@ -40,7 +40,7 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource if (!partialView.parentUnique === undefined) throw new Error('Parent Unique is missing'); if (!partialView.name) throw new Error('Name is missing'); - const parentPath = this.#serverPathUniqueSerializer.toServerPath(partialView.parentUnique); + const parentPath = this.#serverFilePathUniqueSerializer.toServerPath(partialView.parentUnique); // TODO: make data mapper to prevent errors const requestBody: CreatePartialViewRequestModel = { @@ -58,7 +58,7 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource if (data) { const newPath = decodeURIComponent(data); - const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + const newPathUnique = this.#serverFilePathUniqueSerializer.toUnique(newPath); return this.read(newPathUnique); } @@ -68,7 +68,7 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource async read(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Path is missing'); const { data, error } = await tryExecuteAndNotify( @@ -82,8 +82,8 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource const partialView: UmbPartialViewDetailModel = { entityType: UMB_PARTIAL_VIEW_ENTITY_TYPE, - unique: this.#serverPathUniqueSerializer.toUnique(data.path), - parentUnique: data.parent ? this.#serverPathUniqueSerializer.toUnique(data.parent.path) : null, + unique: this.#serverFilePathUniqueSerializer.toUnique(data.path), + parentUnique: data.parent ? this.#serverFilePathUniqueSerializer.toUnique(data.parent.path) : null, path: data.path, name: data.name, content: data.content, @@ -95,7 +95,7 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource async update(data: UmbPartialViewDetailModel) { if (!data.unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(data.unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(data.unique); if (!path) throw new Error('Path is missing'); const requestBody: UpdatePartialViewRequestModel = { @@ -120,7 +120,7 @@ export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource async delete(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Path is missing'); return tryExecuteAndNotify( diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts index 9c741d0419..be5cb0c0d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts @@ -12,7 +12,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; */ export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); /** * Creates an instance of UmbPartialViewFolderServerDataSource. @@ -32,7 +32,7 @@ export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource async read(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Cannot read partial view folder without a path'); const { data, error } = await tryExecuteAndNotify( @@ -44,8 +44,8 @@ export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource if (data) { const mappedData = { - unique: this.#serverPathUniqueSerializer.toUnique(data.path), - parentUnique: data.parent ? this.#serverPathUniqueSerializer.toUnique(data.parent.path) : null, + unique: this.#serverFilePathUniqueSerializer.toUnique(data.path), + parentUnique: data.parent ? this.#serverFilePathUniqueSerializer.toUnique(data.parent.path) : null, name: data.name, }; @@ -81,7 +81,7 @@ export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource if (data) { const newPath = decodeURIComponent(data); - const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + const newPathUnique = this.#serverFilePathUniqueSerializer.toUnique(newPath); return this.read(newPathUnique); } @@ -97,7 +97,7 @@ export class UmbPartialViewFolderServerDataSource implements UmbFolderDataSource async delete(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Cannot delete partial view folder without a path'); return tryExecuteAndNotify( diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts index 8c3ff1322f..760c22eff8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts @@ -10,7 +10,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenameScriptServerDataSource { #host: UmbControllerHost; #detailDataSource: UmbScriptDetailServerDataSource; - #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; @@ -28,7 +28,7 @@ export class UmbRenameScriptServerDataSource { if (!unique) throw new Error('Unique is missing'); if (!name) throw new Error('Name is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Path is missing'); const requestBody: RenameStylesheetRequestModel = { @@ -45,7 +45,7 @@ export class UmbRenameScriptServerDataSource { if (data) { const newPath = decodeURIComponent(data); - const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + const newPathUnique = this.#serverFilePathUniqueSerializer.toUnique(newPath); return this.#detailDataSource.read(newPathUnique); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index fbba618d9f..d8b6cc933b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -15,7 +15,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbScriptDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; @@ -39,7 +39,7 @@ export class UmbScriptDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); constructor(host: UmbControllerHost) { this.#host = host; @@ -39,7 +39,7 @@ export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource< if (!stylesheet.parentUnique === undefined) throw new Error('Parent Unique is missing'); if (!stylesheet.name) throw new Error('Name is missing'); - const parentPath = this.#serverPathUniqueSerializer.toServerPath(stylesheet.parentUnique); + const parentPath = this.#serverFilePathUniqueSerializer.toServerPath(stylesheet.parentUnique); // TODO: make data mapper to prevent errors const requestBody: CreateStylesheetRequestModel = { @@ -57,7 +57,7 @@ export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource< if (data) { const newPath = decodeURIComponent(data); - const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + const newPathUnique = this.#serverFilePathUniqueSerializer.toUnique(newPath); return this.read(newPathUnique); } @@ -67,7 +67,7 @@ export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource< async read(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Path is missing'); const { data, error } = await tryExecuteAndNotify( @@ -81,8 +81,8 @@ export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource< const stylesheet: UmbStylesheetDetailModel = { entityType: UMB_STYLESHEET_ENTITY_TYPE, - unique: this.#serverPathUniqueSerializer.toUnique(data.path), - parentUnique: data.parent ? this.#serverPathUniqueSerializer.toUnique(data.parent.path) : null, + unique: this.#serverFilePathUniqueSerializer.toUnique(data.path), + parentUnique: data.parent ? this.#serverFilePathUniqueSerializer.toUnique(data.parent.path) : null, path: data.path, name: data.name, content: data.content, @@ -94,7 +94,7 @@ export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource< async update(data: UmbStylesheetDetailModel) { if (!data.unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(data.unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(data.unique); if (!path) throw new Error('Path is missing'); const requestBody: UpdateStylesheetRequestModel = { @@ -119,7 +119,7 @@ export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource< async delete(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Path is missing'); return tryExecuteAndNotify( diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts index b721411485..e8dce30b0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts @@ -12,7 +12,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; */ export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource { #host: UmbControllerHost; - #serverPathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); /** * Creates an instance of UmbStylesheetFolderServerDataSource. @@ -32,7 +32,7 @@ export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource async read(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Cannot read stylesheet folder without a path'); const { data, error } = await tryExecuteAndNotify( @@ -44,8 +44,8 @@ export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource if (data) { const mappedData = { - unique: this.#serverPathUniqueSerializer.toUnique(data.path), - parentUnique: data.parent ? this.#serverPathUniqueSerializer.toUnique(data.parent.path) : null, + unique: this.#serverFilePathUniqueSerializer.toUnique(data.path), + parentUnique: data.parent ? this.#serverFilePathUniqueSerializer.toUnique(data.parent.path) : null, name: data.name, }; @@ -81,7 +81,7 @@ export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource if (data) { const newPath = decodeURIComponent(data); - const newPathUnique = this.#serverPathUniqueSerializer.toUnique(newPath); + const newPathUnique = this.#serverFilePathUniqueSerializer.toUnique(newPath); return this.read(newPathUnique); } @@ -97,7 +97,7 @@ export class UmbStylesheetFolderServerDataSource implements UmbFolderDataSource async delete(unique: string) { if (!unique) throw new Error('Unique is missing'); - const path = this.#serverPathUniqueSerializer.toServerPath(unique); + const path = this.#serverFilePathUniqueSerializer.toServerPath(unique); if (!path) throw new Error('Cannot delete stylesheet folder without a path'); return tryExecuteAndNotify( From e55dd9f5ac5d48f05a7d7b13aeee7cf14b8bacfe Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sat, 13 Jan 2024 20:53:13 +0100 Subject: [PATCH 273/786] Update script-folder.server.data-source.ts --- .../scripts/tree/folder/script-folder.server.data-source.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts index d985daca57..56d6e20fa2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts @@ -65,7 +65,7 @@ export class UmbScriptFolderServerDataSource implements UmbFolderDataSource { if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); if (!args.name) throw new Error('Name is missing'); - const parentPath = new UmbServerPathUniqueSerializer().toServerPath(args.parentUnique); + const parentPath = new UmbServerFilePathUniqueSerializer().toServerPath(args.parentUnique); const requestBody: CreateScriptFolderRequestModel = { parent: parentPath ? { path: parentPath } : null, From 9261c53ce24883c1510e7270e1f0535fed831d7a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 09:33:05 +0100 Subject: [PATCH 274/786] temp typescript ignores --- .../options-modal/partial-view-create-options-modal.element.ts | 3 +++ .../options-modal/script-create-options-modal.element.ts | 3 +++ .../options-modal/stylesheet-create-options-modal.element.ts | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts index 8d0f5f3cf2..9f1f368c2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -34,6 +34,9 @@ export class UmbPartialViewCreateOptionsModalElement extends UmbModalBaseElement this.#createFolderAction = new UmbCreateFolderEntityAction( this, UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: allow null for entity actions. Some actions can be executed on the root item this.data.parentUnique, ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts index ebf1dde004..582c50e29a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts @@ -30,6 +30,9 @@ export class UmbScriptCreateOptionsModalElement extends UmbModalBaseElement Date: Mon, 15 Jan 2024 10:14:43 +0100 Subject: [PATCH 275/786] update imports of data type mock data --- .../core/data-type/workspace/data-type-workspace.stories.ts | 2 +- ...rty-editor-ui-tiny-mce-dimensions-configuration.stories.ts | 4 ++-- ...y-editor-ui-tiny-mce-maximagesize-configuration.stories.ts | 4 ++-- ...ty-editor-ui-tiny-mce-stylesheets-configuration.stories.ts | 4 ++-- ...operty-editor-ui-tiny-mce-toolbar-configuration.stories.ts | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts index 00912b8f8d..4da31b240f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts @@ -1,7 +1,7 @@ import './data-type-workspace.element.js'; import { Meta, Story } from '@storybook/web-components'; -import { data } from '../../../../mocks/data/data-type.data.js'; +import { data } from '../../../../mocks/data/data-type/data-type.data.js'; import type { UmbDataTypeWorkspaceElement } from './data-type-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts index 816032a189..869b7d7b5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts @@ -1,10 +1,10 @@ import { Meta } from '@storybook/web-components'; import './property-editor-ui-tiny-mce-dimensions-configuration.element.js'; -import { umbDataTypeData } from '../../../../../../../mocks/data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; -const dataTypeData = umbDataTypeData.getById('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; +const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; export default { title: 'Property Editor UIs/Tiny Mce Dimensions Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts index 434998461c..5228ba354f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts @@ -1,10 +1,10 @@ import { Meta } from '@storybook/web-components'; -import { umbDataTypeData } from '../../../../../../../mocks/data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-maximagesize-configuration.element.js'; import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; -const dataTypeData = umbDataTypeData.getById('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; +const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; export default { title: 'Property Editor UIs/Tiny Mce Max Image Size Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts index 37300d3842..27339cb044 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts @@ -1,11 +1,11 @@ import { Meta } from '@storybook/web-components'; -import { umbDataTypeData } from '../../../../../../../mocks/data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-stylesheets-configuration.element.js'; import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; -const dataTypeData = umbDataTypeData.getById('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; +const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; export default { title: 'Property Editor UIs/Tiny Mce Stylesheets Configuration', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts index 13120c4a13..3bc33861c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts @@ -1,11 +1,11 @@ import { Meta } from '@storybook/web-components'; -import { umbDataTypeData } from '../../../../../../../mocks/data/data-type.data.js'; +import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-toolbar-configuration.element.js'; import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; -const dataTypeData = umbDataTypeData.getById('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; +const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; export default { title: 'Property Editor UIs/Tiny Mce Toolbar Configuration', From 514055f177ee616a3a5777af597c1a40951c1ab1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 10:27:14 +0100 Subject: [PATCH 276/786] align interfaces --- .../src/libs/extension-api/models/api.interface.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/api.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/api.interface.ts index d6a5f9ec78..ebd774bf54 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/api.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/api.interface.ts @@ -1,3 +1,3 @@ export interface UmbApi { - destroy?(): void; + destroy(): void; } From 503415265bfe8ffc88a09a0e26b757d1ad9d5a7d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 10:27:22 +0100 Subject: [PATCH 277/786] fix type erros --- .../extension-api/functions/create-extension-element.test.ts | 4 +++- .../src/packages/core/collection/collection.element.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts index 3b97e358c5..c3e76ec2e4 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts @@ -61,7 +61,9 @@ describe('Extension-Api: Create Extension Element', () => { type: 'my-test-type', alias: 'Umb.Test.CreateManifestElement', name: 'pretty name', - api: class TestApi {}, + api: class TestApi { + destroy() {} + }, }; const element = await createExtensionElement(manifest, 'umb-extension-api-true-test-element'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts index ecd8901f57..68ca55606e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts @@ -37,7 +37,7 @@ export class UmbCollectionElement extends UmbLitElement { async #createApi() { if (!this.#manifest) throw new Error('No manifest'); - const api = (await createExtensionApi(this.#manifest, [this])) as UmbCollectionContext; + const api = (await createExtensionApi(this.#manifest, [this])) as unknown as UmbCollectionContext; if (!api) throw new Error('No api'); api.setManifest(this.#manifest); } From 392bf6e51a6e301871a5d7f8ae69b936ec1ed57c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 10:29:57 +0100 Subject: [PATCH 278/786] temp solution - file will be deleted --- .../src/packages/core/store/file-system-item.store.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts index c766960bbf..51e27746d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts @@ -1,6 +1,5 @@ import { UmbStoreBase } from './store-base.js'; import { UmbItemStore } from './item-store.interface.js'; -import type { FileItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -11,10 +10,7 @@ import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; * @description - Data Store for File system items */ -export class UmbFileSystemItemStore - extends UmbStoreBase - implements UmbItemStore -{ +export class UmbFileSystemItemStore extends UmbStoreBase implements UmbItemStore { constructor(host: UmbControllerHost, storeAlias: string) { super(host, storeAlias, new UmbArrayState([], (x) => x.path)); } From 140e8bf1e3e158caf962e88b0b64b370b5b0b094 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 10:30:08 +0100 Subject: [PATCH 279/786] fix type error --- .../packages/core/entity-action/common/rename/rename.action.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts index cd8ee0e2e8..42621775d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -4,7 +4,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; -export class UmbRenameEntityAction extends UmbEntityActionBase> { +export class UmbRenameEntityAction extends UmbEntityActionBase> { #modalManagerContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { From a5ca407c3176891a50da92ccf269b2cb52422478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 11:23:36 +0100 Subject: [PATCH 280/786] a bit of Block List work --- .../src/mocks/data/document.data.ts | 17 ++++++++++++++++- .../block-list-block.element.ts | 3 +-- .../ref-list-block/ref-list-block.element.ts | 11 ++++++++++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 416462c720..c96160d14c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -171,7 +171,22 @@ export const data: Array = [ alias: 'blockList', culture: null, segment: null, - value: null, + value: { + layout: { + 'Umbraco.BlockList': [ + { + contentUdi: '1234', + }, + ], + }, + contentData: [ + { + udi: '1234', + contentTypeKey: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c', + }, + ], + settingsData: [], + }, }, { alias: 'mediaPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 8c10939823..77bf889ce9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -84,8 +84,7 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl } uui-action-bar { position: absolute; - top: 50%; - transform: translateY(-50%); + top: var(--uui-size-2); right: var(--uui-size-2); } `, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts index e261b37d3d..62e5eab7b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts @@ -1,4 +1,4 @@ -import { customElement } from '@umbraco-cms/backoffice/external/lit'; +import { css, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; /** @@ -11,6 +11,15 @@ export class UmbRefListBlockElement extends UUIRefNodeElement { super.connectedCallback(); this.setAttribute('border', ''); } + + styles = [ + ...UUIRefNodeElement.styles, + css` + :host { + min-height: 80px; + } + `, + ]; } export default UmbRefListBlockElement; From 09ae183481cc83b9ae6b21e5106ef620007ff506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 11:23:49 +0100 Subject: [PATCH 281/786] more Bl work --- .../property-editor-ui-block-list.element.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 19250cef57..70619b68e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -16,6 +16,7 @@ import { buildUdi } from '@umbraco-cms/backoffice/utils'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} @@ -37,7 +38,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement return this._value; } public set value(value: UmbBlockListValueModel | undefined) { - const buildUpValue: Partial = value ?? {}; + const buildUpValue: Partial = { ...value } ?? {}; buildUpValue.layout ??= {}; buildUpValue.contentData ??= []; buildUpValue.settingsData ??= []; @@ -88,22 +89,25 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement // TODO: Prevent initial notification from these observes: this.observe(this.#context.layouts, (layouts) => { - this._value.layout[UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS] = layouts; + this._value = { ...this._value, layout: { [UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS]: layouts } }; // Notify that the value has changed. //console.log('layout changed', this._value); // TODO: idea: consider inserting an await here, so other changes could appear first? Maybe some mechanism to only fire change event onces? this._layouts = layouts; + this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.contents, (contents) => { - this._value.contentData = contents; + this._value = { ...this._value, contentData: contents }; // Notify that the value has changed. //console.log('content changed', this._value); + this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.settings, (settings) => { - this._value.settingsData = settings; + this._value = { ...this._value, settingsData: settings }; // Notify that the value has changed. //console.log('settings changed', this._value); + this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.blockTypes, (blockTypes) => { this._blocks = blockTypes; From f2c29c48cecdd1f5b6b334e27af641007ec3e600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 11:24:00 +0100 Subject: [PATCH 282/786] clean up property Context --- .../property/property/property.context.ts | 63 +++++++++++-------- .../packages/core/workspace/types/index.ts | 1 - .../types/workspace-property-data.type.ts | 9 --- 3 files changed, 37 insertions(+), 36 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/workspace-property-data.type.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index 06a55cd665..cbcc12c283 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -1,29 +1,35 @@ import { UmbPropertyEditorUiElement } from '../../extension-registry/interfaces/property-editor-ui-element.interface.js'; -import { type WorkspacePropertyData } from '../../workspace/types/workspace-property-data.type.js'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { + UmbArrayState, UmbBasicState, UmbClassState, - UmbObjectState, + UmbDeepState, UmbObserverController, UmbStringState, } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextProviderController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import { + UmbPropertyEditorConfigCollection, + UmbPropertyEditorConfigProperty, +} from '@umbraco-cms/backoffice/property-editor'; export class UmbPropertyContext extends UmbBaseController { private _providerController: UmbContextProviderController; - #data = new UmbObjectState>({}); - - public readonly alias = this.#data.asObservablePart((data) => data.alias); - public readonly label = this.#data.asObservablePart((data) => data.label); - public readonly description = this.#data.asObservablePart((data) => data.description); - public readonly value = this.#data.asObservablePart((data) => data.value); - public readonly configValues = this.#data.asObservablePart((data) => data.config); + #alias = new UmbStringState(undefined); + public readonly alias = this.#alias.asObservable(); + #label = new UmbStringState(undefined); + public readonly label = this.#label.asObservable(); + #description = new UmbStringState(undefined); + public readonly description = this.#description.asObservable(); + #value = new UmbDeepState(undefined); + public readonly value = this.#value.asObservable(); + #configValues = new UmbArrayState([], (x) => x.alias); + public readonly configValues = this.#configValues.asObservable(); #configCollection = new UmbClassState(undefined); public readonly config = this.#configCollection.asObservable(); @@ -73,7 +79,7 @@ export class UmbPropertyContext extends UmbBaseController { private _observePropertyVariant?: UmbObserverController; private _observePropertyValue?: UmbObserverController; private async _observeProperty() { - const alias = this.#data.getValue().alias; + const alias = this.#alias.getValue(); if (!this.#datasetContext || !alias) return; const variantIdSubject = (await this.#datasetContext.propertyVariantId?.(alias)) ?? undefined; @@ -91,7 +97,7 @@ export class UmbPropertyContext extends UmbBaseController { if (subject) { this._observePropertyValue = this.observe(subject, (value) => { // Note: Do not try to compare new / old value, as it can of any type. We trust the UmbObjectState in doing such. - this.#data.update({ value }); + this.#value.next(value); }); } } @@ -104,21 +110,21 @@ export class UmbPropertyContext extends UmbBaseController { ); } - public setAlias(alias: WorkspacePropertyData['alias']) { - this.#data.update({ alias }); + public setAlias(alias: string | undefined) { + this.#alias.next(alias); } - public setLabel(label: WorkspacePropertyData['label']) { - this.#data.update({ label }); + public setLabel(label: string | undefined) { + this.#label.next(label); } - public setDescription(description: WorkspacePropertyData['description']) { - this.#data.update({ description }); + public setDescription(description: string | undefined) { + this.#description.next(description); } /** * Set the value of this property. * @param value {ValueType} the whole value to be set */ - public setValue(value: WorkspacePropertyData['value']) { - const alias = this.#data.getValue().alias; + public setValue(value: ValueType | undefined) { + const alias = this.#alias.getValue(); if (!this.#datasetContext || !alias) return; this.#datasetContext?.setPropertyValue(alias, value); } @@ -127,11 +133,11 @@ export class UmbPropertyContext extends UmbBaseController { * Notice this is not reactive, you should us the `value` observable for that. * @returns {ValueType} */ - public getValue(): WorkspacePropertyData['value'] { - return this.#data.getValue().value; + public getValue() { + return this.#value.getValue(); } - public setConfig(config: WorkspacePropertyData['config'] | undefined) { - this.#data.update({ config }); + public setConfig(config: Array | undefined) { + this.#configValues.next(config ?? []); } public setVariantId(variantId: UmbVariantId | undefined) { this.#variantId.next(variantId); @@ -141,11 +147,16 @@ export class UmbPropertyContext extends UmbBaseController { } public resetValue() { - this.setValue(null); // TODO: We should get the default value from Property Editor maybe even later the DocumentType, as that would hold the default value for the property. + this.setValue(undefined); // TODO: We should get the default value from Property Editor maybe even later the DocumentType, as that would hold the default value for the property. } public destroy(): void { - this.#data.destroy(); + this.#alias.destroy(); + this.#label.destroy(); + this.#description.destroy(); + this.#configValues.destroy(); + this.#value.destroy(); + this.#configCollection.destroy(); this._providerController.destroy(); // This would also be handled by the controller host, but if someone wanted to replace/remove this context without the host being destroyed. Then we have clean up out selfs here. } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/index.ts deleted file mode 100644 index f4b7b580b6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './workspace-property-data.type.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/workspace-property-data.type.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/workspace-property-data.type.ts deleted file mode 100644 index 6773a83e5b..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/types/workspace-property-data.type.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { type UmbPropertyEditorConfig } from '../../property-editor/index.js'; - -export type WorkspacePropertyData = { - alias?: string; - label?: string; - description?: string; - value?: ValueType | null; - config?: UmbPropertyEditorConfig; // This could potentially then come from hardcoded JS object and not the DataType store. -}; From 6017275cba8dd16555fa652b38d5b7c90367e8c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 12:36:28 +0100 Subject: [PATCH 283/786] minor --- .../components/block-list-block/block-list-block.element.ts | 2 +- .../components/ref-list-block/ref-list-block.element.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 77bf889ce9..86e118e519 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -43,7 +43,7 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl const modalContext = modalManager.open(UMB_CONFIRM_MODAL, { data: { headline: `Delete ${this._label}`, - content: 'Are you sure you want to delete this block?', + content: 'Are you sure you want to delete this [INSERT BLOCK TYPE NAME]?', confirmLabel: 'Delete', color: 'danger', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts index 62e5eab7b4..06e0fa5b0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts @@ -12,11 +12,11 @@ export class UmbRefListBlockElement extends UUIRefNodeElement { this.setAttribute('border', ''); } - styles = [ + static styles = [ ...UUIRefNodeElement.styles, css` :host { - min-height: 80px; + min-height: var(--uui-size-16); } `, ]; From 8b8647a96d24541e488459689cc86f568e35c4d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 13:07:26 +0100 Subject: [PATCH 284/786] correct ? operator --- .../block-list-editor/property-editor-ui-block-list.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 70619b68e4..7f4beab100 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -38,7 +38,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement return this._value; } public set value(value: UmbBlockListValueModel | undefined) { - const buildUpValue: Partial = { ...value } ?? {}; + const buildUpValue: Partial = value ? { ...value } : {}; buildUpValue.layout ??= {}; buildUpValue.contentData ??= []; buildUpValue.settingsData ??= []; From 4140e78aecbf09ff2b63a0cbde211adca6f0f589 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 13:11:40 +0100 Subject: [PATCH 285/786] add overview handlers --- .../mocks/data/stylesheet/stylesheet.db.ts | 26 ++++++++++++++----- .../handlers/stylesheet/detail.handlers.ts | 10 +++---- .../handlers/stylesheet/folder.handlers.ts | 8 +++--- .../handlers/stylesheet/item.handlers.ts | 4 +-- .../handlers/stylesheet/overview.handlers.ts | 13 ++++++---- .../handlers/stylesheet/rename.handlers.ts | 4 +-- .../handlers/stylesheet/tree.handlers.ts | 6 ++--- 7 files changed, 43 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index 10785daa3d..7c46592e1e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -7,7 +7,12 @@ import { textFileItemMapper } from '../utils.js'; import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; import { PagedStylesheetOverviewResponseModel } from '@umbraco-cms/backoffice/backend-api'; -class UmbStylesheetData extends UmbFileSystemMockDbBase { +interface UmbMockPaginationModel { + skip?: number; + take?: number; +} + +class UmbStylesheetMockDb extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); item = new UmbMockFileSystemItemManager(this); folder = new UmbMockFileSystemFolderManager(this); @@ -17,12 +22,19 @@ class UmbStylesheetData extends UmbFileSystemMockDbBase super(data); } - getAllStylesheets(): PagedStylesheetOverviewResponseModel { - return { - items: this.data.map((item) => textFileItemMapper(item)), - total: this.data.map((item) => !item.isFolder).length, - }; + getOverview(filterOptions: UmbMockPaginationModel = { skip: 0, take: 100 }): PagedStylesheetOverviewResponseModel { + const mockItems = this.getData(); + const files = mockItems.filter((item) => item.isFolder === false); + const paginatedFiles = files.slice(filterOptions.skip, filterOptions.skip! + filterOptions.take!); + const responseItems = paginatedFiles.map((item) => { + return { + name: item.name, + path: item.path, + }; + }); + + return { items: responseItems, total: mockItems.length }; } } -export const umbStylesheetData = new UmbStylesheetData(data); +export const umbStylesheetMockDb = new UmbStylesheetMockDb(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts index 7611b9e53b..a0d6f3b106 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js'; +import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; import { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -8,7 +8,7 @@ export const detailHandlers = [ rest.post(umbracoPath(UMB_SLUG), async (req, res, ctx) => { const requestBody = (await req.json()) as CreateStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); - const path = umbStylesheetData.file.create(requestBody); + const path = umbStylesheetMockDb.file.create(requestBody); return res( ctx.status(201), ctx.set({ @@ -20,14 +20,14 @@ export const detailHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/:path`), (req, res, ctx) => { const path = req.params.path as string; if (!path) return res(ctx.status(400)); - const response = umbStylesheetData.file.read(decodeURIComponent(path)); + const response = umbStylesheetMockDb.file.read(decodeURIComponent(path)); return res(ctx.status(200), ctx.json(response)); }), rest.delete(umbracoPath(`${UMB_SLUG}/:path`), (req, res, ctx) => { const path = req.params.path as string; if (!path) return res(ctx.status(400)); - umbStylesheetData.file.delete(decodeURIComponent(path)); + umbStylesheetMockDb.file.delete(decodeURIComponent(path)); return res(ctx.status(200)); }), @@ -36,7 +36,7 @@ export const detailHandlers = [ if (!path) return res(ctx.status(400)); const requestBody = (await req.json()) as UpdateStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); - umbStylesheetData.file.update(decodeURIComponent(path), requestBody); + umbStylesheetMockDb.file.update(decodeURIComponent(path), requestBody); return res(ctx.status(200)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts index a894929355..6a92a201c5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js'; +import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; import { CreateStylesheetFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -9,7 +9,7 @@ export const folderHandlers = [ const requestBody = (await req.json()) as CreateStylesheetFolderRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); - const path = umbStylesheetData.folder.create(requestBody); + const path = umbStylesheetMockDb.folder.create(requestBody); return res( ctx.status(201), @@ -22,14 +22,14 @@ export const folderHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/folder/:path`), (req, res, ctx) => { const path = req.params.path as string; if (!path) return res(ctx.status(400)); - const response = umbStylesheetData.folder.read(decodeURIComponent(path)); + const response = umbStylesheetMockDb.folder.read(decodeURIComponent(path)); return res(ctx.status(200), ctx.json(response)); }), rest.delete(umbracoPath(`${UMB_SLUG}/folder/:path`), (req, res, ctx) => { const path = req.params.path as string; if (!path) return res(ctx.status(400)); - umbStylesheetData.folder.delete(decodeURIComponent(path)); + umbStylesheetMockDb.folder.delete(decodeURIComponent(path)); return res(ctx.status(200)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts index de53cda151..b1f29d39bb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js'; +import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -7,7 +7,7 @@ export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const paths = req.url.searchParams.getAll('paths'); if (!paths) return res(ctx.status(400, 'no body found')); - const items = umbStylesheetData.item.getItems(paths); + const items = umbStylesheetMockDb.item.getItems(paths); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts index f1d1f29feb..0e914a3218 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts @@ -1,13 +1,16 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js'; +import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const overviewHandlers = [ - rest.get(umbracoPath(`${UMB_SLUG}/overview`), (req, res, ctx) => { - const path = req.url.searchParams.get('path'); - if (!path) return; - const response = umbStylesheetData.getAllStylesheets(); + rest.get(umbracoPath(`${UMB_SLUG}/overview`), async (req, res, ctx) => { + const skipParam = req.url.searchParams.get('skip'); + const takeParam = req.url.searchParams.get('take'); + const response = umbStylesheetMockDb.getOverview({ + skip: skipParam ? parseInt(skipParam) : undefined, + take: takeParam ? parseInt(takeParam) : undefined, + }); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts index b5cdf1cdf8..dce4556047 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js'; +import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -12,7 +12,7 @@ export const renameHandlers = [ const requestBody = (await req.json()) as RenameStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); - const newPath = umbStylesheetData.file.rename(decodeURIComponent(path), requestBody.name); + const newPath = umbStylesheetMockDb.file.rename(decodeURIComponent(path), requestBody.name); return res( ctx.status(201), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts index 1551bb800d..7441982c84 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/tree.handlers.ts @@ -1,18 +1,18 @@ const { rest } = window.MockServiceWorker; -import { umbStylesheetData } from '../../data/stylesheet/stylesheet.db.js'; +import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const response = umbStylesheetData.tree.getRoot(); + const response = umbStylesheetMockDb.tree.getRoot(); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentPath = req.url.searchParams.get('parentPath'); if (!parentPath) return res(ctx.status(400)); - const response = umbStylesheetData.tree.getChildrenOf(parentPath); + const response = umbStylesheetMockDb.tree.getChildrenOf(parentPath); return res(ctx.status(200), ctx.json(response)); }), ]; From 8ea448f3e94494614c0da245a8e93ad7c1176e1b Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 2 Jan 2024 16:26:20 +0000 Subject: [PATCH 286/786] MNTP UI amends --- .../property-editor-ui-tree-picker.element.ts | 5 +- .../input-tree/input-tree.element.ts | 84 ++++++++++++------- .../input-document/input-document.element.ts | 30 ++++--- .../input-media/input-media.element.ts | 19 ++++- 4 files changed, 95 insertions(+), 43 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index a505a8dd77..0b437d1ccc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -1,8 +1,9 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { StartNode } from '@umbraco-cms/backoffice/components'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbInputTreeElement } from '@umbraco-cms/backoffice/tree'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index 93c78f79d6..f58127bf21 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -2,6 +2,8 @@ import { css, html, customElement, property } from '@umbraco-cms/backoffice/exte import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; +import { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; +//import { UmbInputMemberElement } from '@umbraco-cms/backoffice/member'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; @@ -64,7 +66,20 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { selectedIds: Array = []; #onChange(event: CustomEvent) { - this.value = (event.target as UmbInputDocumentElement).selectedIds.join(','); + switch (this._type) { + case 'content': + this.value = (event.target as UmbInputDocumentElement).selectedIds.join(','); + break; + case 'media': + this.value = (event.target as UmbInputMediaElement).selectedIds.join(','); + break; + // case 'member': + // this.value = (event.target as UmbInputMemberElement).selectedIds.join(','); + // break; + default: + break; + } + this.dispatchEvent(new UmbChangeEvent()); } @@ -75,40 +90,51 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { render() { switch (this._type) { case 'content': - return html``; + return this.#renderContentPicker(); case 'media': - return html``; + return this.#renderMediaPicker(); case 'member': - return html` - `; + return this.#renderMemberPicker(); default: - return html`Type could not be found`; + return html`

Type could not be found.

`; } } + #renderContentPicker() { + return html``; + } + + #renderMediaPicker() { + return html``; + } + + #renderMemberPicker() { + return html``; + } + static styles = [ css` p { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 504d487406..f07b21eb93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -90,31 +90,41 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } + protected _openPicker() { + this.#pickerContext.openPicker({ + hideTreeRoot: true, + }); + } + protected getFormElement() { return undefined; } render() { return html` - ${this._items - ? html` ${repeat( - this._items, - (item) => item.id, - (item) => this._renderItem(item), - )} - ` - : ''} + ${this.#renderItems()} ${this.#renderAddButton()} `; } + #renderItems() { + if (!this._items) return; + // TODO: Add sorting. [LK] + return html`${repeat( + this._items, + (item) => item.id, + (item) => this._renderItem(item), + )} + `; + } + #renderAddButton() { if (this.max > 0 && this.selectedIds.length >= this.max) return; return html` this.#pickerContext.openPicker()} + @click=${this._openPicker} label=${this.localize.term('general_choose')}>`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 2b20086885..bea829a72e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -90,18 +90,33 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } + protected _openPicker() { + this.#pickerContext.openPicker({ + hideTreeRoot: true, + }); + } + protected getFormElement() { return undefined; } render() { - return html` ${this._items?.map((item) => this.#renderItem(item))} ${this.#renderButton()} `; + return html` ${this.#renderItems()} ${this.#renderButton()} `; + } + + #renderItems() { + // TODO: Add sorting. [LK] + return html` ${this._items?.map((item) => this.#renderItem(item))} `; } #renderButton() { if (this._items && this.max && this._items.length >= this.max) return; return html` - this.#pickerContext.openPicker()} label=${this.localize.term('general_choose')}> + ${this.localize.term('general_choose')} From 35bbc472a69c45636f57bb8f67e4eca3a2df4505 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 4 Jan 2024 15:30:47 +0000 Subject: [PATCH 287/786] Input Document: Moved `constructor` code to `connectedCallback`, as attribute properties for configuration values, such as min/max, haven't been set at the point of execution. --- .../components/input-document/input-document.element.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index f07b21eb93..1342efd1a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -73,6 +73,10 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + } + + connectedCallback() { + super.connectedCallback(); this.addValidator( 'rangeUnderflow', From 6c76b0292b9381c50ac2b6ad524ef32512d02e3d Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 4 Jan 2024 15:33:55 +0000 Subject: [PATCH 288/786] Tree Picker: Ensure min/max are numeric There is a scenario where the `config.getValueByAlias('maxNumber')` would return as a `string`. This would cause issues further down when they are strongly-typed compared, e.g. `max === 1` would be false. I experienced this issue with the Tree Picker, for setting the `multiple` property value. --- .../tree-picker/property-editor-ui-tree-picker.element.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 0b437d1ccc..6a86f69070 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -45,8 +45,10 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen this.startNodeId = startNode.id; } - this.min = config?.getValueByAlias('minNumber') || 0; - this.max = config?.getValueByAlias('maxNumber') || 0; + // TODO: The value from `config.getValueByAlias('maxNumber')` could be a `string`, can't be cast as a `number`. [LK] + // This causes issues when the `max` value is compared against other numbers, e.g. `max === 1` would be false. + this.min = Number(config?.getValueByAlias('minNumber')) || 0; + this.max = Number(config?.getValueByAlias('maxNumber')) || 0; this.filter = config?.getValueByAlias('filter'); this.showOpenButton = config?.getValueByAlias('showOpenButton'); From 46d5ae3711d6372c1359a2fa5c2dcf848c78337c Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 8 Jan 2024 14:22:15 +0000 Subject: [PATCH 289/786] Added TODO note about the management API as it is expecting the MNTP value to be as UDIs not GUIDs. --- .../uis/tree-picker/property-editor-ui-tree-picker.element.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 6a86f69070..3f848b6bf8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -57,6 +57,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen #onChange(e: CustomEvent) { this.value = (e.target as UmbInputTreeElement).value as string; + // TODO: Unable to save MNTP value, as the management API is expecting UDI, not GUIDs. [LK] this.dispatchEvent(new CustomEvent('property-value-change')); } From 44e8cdaa7f9fa0611a47a0c6b5aa06df737890cd Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 8 Jan 2024 17:00:08 +0000 Subject: [PATCH 290/786] input-document: adds properties for `startNodeId`, `filter`, `showOpenButton` and `ignoreUserStartNodes`. Wired up the `showOpenButton` and `isTrashed` tag. Added TODO notes for the rest. --- .../input-document/input-document.element.ts | 39 ++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 1342efd1a8..186f6cd874 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -60,6 +60,18 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { this.#pickerContext.setSelection(ids); } + @property({ type: String }) + startNodeId?: string; + + @property({ type: String }) + filter?: string; + + @property({ type: Boolean }) + showOpenButton?: boolean; + + @property({ type: Boolean }) + ignoreUserStartNodes?: boolean; + @property() public set value(idsString: string) { // Its with full purpose we don't call super.value, as thats being handled by the observation of the context selection. @@ -95,20 +107,24 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { } protected _openPicker() { + // TODO: Configure the content picker, with `startNodeId`, `filter` and `ignoreUserStartNodes` [LK] + console.log("_openPicker", [this.startNodeId, this.filter, this.ignoreUserStartNodes]); this.#pickerContext.openPicker({ hideTreeRoot: true, }); } + protected _openItem(item: DocumentItemResponseModel) { + // TODO: Implement the Content editing infinity editor. [LK] + console.log('TODO: _openItem', item); + } + protected getFormElement() { return undefined; } render() { - return html` - ${this.#renderItems()} - ${this.#renderAddButton()} - `; + return html` ${this.#renderItems()} ${this.#renderAddButton()} `; } #renderItems() { @@ -136,8 +152,9 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { if (!item.id) return; return html` - + ${this._renderIsTrashed(item)} + ${this._renderOpenButton(item)} this.#pickerContext.requestRemoveItem(item.id!)} label="Remove document ${item.name}" @@ -148,6 +165,18 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { `; } + private _renderIsTrashed(item: DocumentItemResponseModel) { + if (!item.isTrashed) return; + return html`Trashed`; + } + + private _renderOpenButton(item: DocumentItemResponseModel) { + if (!this.showOpenButton) return; + return html` this._openItem(item)} label="Open document ${item.name}" + >${this.localize.term('general_open')}`; + } + static styles = [ css` #add-button { From 5a10f889af3ef7efcf860529c032fbb1249ea12a Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 13:35:40 +0000 Subject: [PATCH 291/786] Uncommented Member Picker --- .../core/tree/components/input-tree/input-tree.element.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index f58127bf21..f70a269eea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -3,7 +3,7 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; import { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; -//import { UmbInputMemberElement } from '@umbraco-cms/backoffice/member'; +import { UmbInputMemberElement } from '@umbraco-cms/backoffice/member'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; @@ -73,9 +73,9 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { case 'media': this.value = (event.target as UmbInputMediaElement).selectedIds.join(','); break; - // case 'member': - // this.value = (event.target as UmbInputMemberElement).selectedIds.join(','); - // break; + case 'member': + this.value = (event.target as UmbInputMemberElement).selectedIds.join(','); + break; default: break; } From 58a5da22d6aec1d26e4030a458958138670b71fd Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 13:36:27 +0000 Subject: [PATCH 292/786] Added `UmbPropertyValueChangeEvent` and removed TODOs. --- .../tree-picker/property-editor-ui-tree-picker.element.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 3f848b6bf8..43c5f393ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -1,8 +1,7 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { StartNode } from '@umbraco-cms/backoffice/components'; -import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import { type UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbInputTreeElement } from '@umbraco-cms/backoffice/tree'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; @@ -45,8 +44,6 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen this.startNodeId = startNode.id; } - // TODO: The value from `config.getValueByAlias('maxNumber')` could be a `string`, can't be cast as a `number`. [LK] - // This causes issues when the `max` value is compared against other numbers, e.g. `max === 1` would be false. this.min = Number(config?.getValueByAlias('minNumber')) || 0; this.max = Number(config?.getValueByAlias('maxNumber')) || 0; @@ -57,8 +54,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen #onChange(e: CustomEvent) { this.value = (e.target as UmbInputTreeElement).value as string; - // TODO: Unable to save MNTP value, as the management API is expecting UDI, not GUIDs. [LK] - this.dispatchEvent(new CustomEvent('property-value-change')); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); } render() { From 876cef09f310c549eb828b9e0980a7b2377734f4 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 14:10:54 +0000 Subject: [PATCH 293/786] TreePickerSource: Removed the Media and Member pickers as the old backoffice did not have these options to configure a root for Media or Members. --- .../input-tree-picker-source.element.ts | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index 90f59172a5..cc4f054661 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -1,8 +1,7 @@ import { UmbInputDocumentPickerRootElement } from '@umbraco-cms/backoffice/document'; -import { html, customElement, property, css, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, css, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; //import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export type UmbTreePickerSource = { @@ -82,8 +81,7 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem this.nodeId = (event.target).nodeId; break; case 'media': - this.nodeId = (event.target).selectedIds.join(''); - break; + case 'member': default: break; } @@ -103,11 +101,9 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem case 'content': return this.#renderTypeContent(); case 'media': - return this.#renderTypeMedia(); case 'member': - return this.#renderTypeMember(); default: - return 'No type found'; + return nothing; } } @@ -117,18 +113,6 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem .nodeId=${this.nodeId}>`; } - #renderTypeMedia() { - const nodeId = this.nodeId ? [this.nodeId] : []; - //TODO => MediaTypes - return html``; - } - - #renderTypeMember() { - const nodeId = this.nodeId ? [this.nodeId] : []; - //TODO => Members - return html``; - } - static styles = [ css` :host { From 61416d9ef9785687ff5f9f726c8f645254a3feca Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 14:11:24 +0000 Subject: [PATCH 294/786] TreePickerSource: Fixed change event bubbling --- .../input-tree-picker-source.element.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index cc4f054661..4cb56e5dec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -2,7 +2,7 @@ import { UmbInputDocumentPickerRootElement } from '@umbraco-cms/backoffice/docum import { html, customElement, property, css, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -//import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export type UmbTreePickerSource = { type?: UmbTreePickerSourceType; @@ -64,18 +64,16 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem ]; #onTypeChange(event: UUISelectEvent) { - //console.log('onTypeChange'); + event.stopPropagation(); this.type = event.target.value as UmbTreePickerSource['type']; this.nodeId = ''; - // TODO: Appears that the event gets bubbled up. Will need to review. [LK] - //this.dispatchEvent(new UmbChangeEvent()); + this.dispatchEvent(new UmbChangeEvent()); } #onIdChange(event: CustomEvent) { - //console.log('onIdChange', event.target); switch (this.type) { case 'content': this.nodeId = (event.target).nodeId; From a991ac8d8016165a87aa356aa15a7dadd5941504 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 15:30:37 +0000 Subject: [PATCH 295/786] MediaPicker: wired up attributes for `filter`, `ignoreUserStartNodes` and `showOpenButton`. Added method for showing if trashed. --- .../input-media/input-media.element.ts | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index bea829a72e..94530be00a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -60,6 +60,15 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { this.#pickerContext.setSelection(ids); } + @property({ type: String }) + filter?: string; + + @property({ type: Boolean }) + showOpenButton?: boolean; + + @property({ type: Boolean }) + ignoreUserStartNodes?: boolean; + @property() public set value(idsString: string) { // Its with full purpose we don't call super.value, as thats being handled by the observation of the context selection. @@ -73,6 +82,10 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + } + + connectedCallback() { + super.connectedCallback(); this.addValidator( 'rangeUnderflow', @@ -91,11 +104,18 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { } protected _openPicker() { + // TODO: Configure the media picker, with `filter` and `ignoreUserStartNodes` [LK] + console.log('_openPicker', [this.filter, this.ignoreUserStartNodes]); this.#pickerContext.openPicker({ hideTreeRoot: true, }); } + protected _openItem(item: MediaItemResponseModel) { + // TODO: Implement the Content editing infinity editor. [LK] + console.log('TODO: _openItem', item); + } + protected getFormElement() { return undefined; } @@ -105,6 +125,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { } #renderItems() { + if (!this._items) return; // TODO: Add sorting. [LK] return html` ${this._items?.map((item) => this.#renderItem(item))} `; } @@ -124,12 +145,14 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { } #renderItem(item: MediaItemResponseModel) { + // TODO: `file-ext` value has been hardcoded here. Find out if API model has value for it. [LK] + // TODO: How to handle the `showOpenButton` option? [LK] return html` - + ${this._renderIsTrashed(item)} @@ -142,6 +165,11 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { `; } + private _renderIsTrashed(item: MediaItemResponseModel) { + if (!item.isTrashed) return; + return html`Trashed`; + } + static styles = [ css` :host { From 2798ac3b2d2bdb38026933f1ad69b1aaae3961ac Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 15:32:28 +0000 Subject: [PATCH 296/786] TreePickerSourceType: fixed bug with re-initializing the value The `UmbPropertyValueChangeEvent` had to be triggered. --- ...r-ui-tree-picker-source-type-picker.element.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 16b11ffa40..90176aa18f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -7,12 +7,16 @@ import { customElement, html, property, state } from '@umbraco-cms/backoffice/ex import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; +import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; /** * @element umb-property-editor-ui-tree-picker-source-type-picker */ @customElement('umb-property-editor-ui-tree-picker-source-type-picker') -export class UmbPropertyEditorUITreePickerSourceTypePickerElement extends UmbLitElement implements UmbPropertyEditorUiElement { +export class UmbPropertyEditorUITreePickerSourceTypePickerElement + extends UmbLitElement + implements UmbPropertyEditorUiElement +{ #datasetContext?: typeof UMB_PROPERTY_DATASET_CONTEXT.TYPE; @property({ type: Array }) @@ -42,7 +46,7 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement extends UmbLit // If we had a sourceType before, we can see this as a change and not the initial value, // so let's reset the value, so we don't carry over content-types to the new source type. if (this.#initialized && this.sourceType !== startNode.type) { - this.value = []; + this.#setValue([]); } this.sourceType = startNode.type; @@ -65,13 +69,16 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement extends UmbLit this.value = (event.target).selectedIds; break; case 'member': - this.value = (event.target).selectedIds; + this.#setValue((event.target).selectedIds); break; default: break; } + } - this.dispatchEvent(new CustomEvent('property-value-change')); + #setValue(value: string[]) { + this.value = value; + this.dispatchEvent(new UmbPropertyValueChangeEvent()); } render() { From 9689be39417fe865cced3c7b49d06c1496bd5bb7 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 15:38:48 +0000 Subject: [PATCH 297/786] Corrected `UmbInputMemberTypeElement` class name --- ...erty-editor-ui-tree-picker-source-type-picker.element.ts | 4 ++-- .../input-member-type/input-member-type.element.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 90176aa18f..6e2dcfebc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -1,6 +1,6 @@ import { UmbInputDocumentTypeElement } from '@umbraco-cms/backoffice/document-type'; import { UmbInputMediaTypeElement } from '@umbraco-cms/backoffice/media-type'; -import { UmbMemberTypeInputElement } from '@umbraco-cms/backoffice/member-type'; +import { UmbInputMemberTypeElement } from '@umbraco-cms/backoffice/member-type'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; @@ -69,7 +69,7 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement this.value = (event.target).selectedIds; break; case 'member': - this.#setValue((event.target).selectedIds); + this.#setValue((event.target).selectedIds); break; default: break; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts index 35cb32f71a..94e6483d14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts @@ -6,7 +6,7 @@ import type { MemberTypeItemResponseModel } from '@umbraco-cms/backoffice/backen import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; @customElement('umb-input-member-type') -export class UmbMemberTypeInputElement extends FormControlMixin(UmbLitElement) { +export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { /** * This is a minimum amount of selected items in this input. * @type {number} @@ -162,10 +162,10 @@ export class UmbMemberTypeInputElement extends FormControlMixin(UmbLitElement) { ]; } -export default UmbMemberTypeInputElement; +export default UmbInputMemberTypeElement; declare global { interface HTMLElementTagNameMap { - 'umb-input-member-type': UmbMemberTypeInputElement; + 'umb-input-member-type': UmbInputMemberTypeElement; } } From d9433abf24e61c57276eb7e34819bc9d5d1c86c1 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 15:40:01 +0000 Subject: [PATCH 298/786] Removed setting the `startNodeId` attribute from the Media Picker, as the MNTP implementation doesn't configure it. --- .../core/tree/components/input-tree/input-tree.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index f70a269eea..234a127b12 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -115,7 +115,6 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { #renderMediaPicker() { return html` Date: Thu, 11 Jan 2024 15:53:04 +0000 Subject: [PATCH 299/786] Aligned the code between the DocumentType, MediaType and MemberType pickers --- .../input-document-type.element.ts | 40 ++++++++++++---- .../input-media-type.element.ts | 48 +++++++++++++++---- .../input-member-type.element.ts | 18 +++---- 3 files changed, 77 insertions(+), 29 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts index ad9de9b02a..262cfff0f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts @@ -1,5 +1,5 @@ import { UmbDocumentTypePickerContext } from './input-document-type.context.js'; -import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, state, ifDefined, repeat, nothing } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -95,6 +95,10 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement) .observeRouteBuilder((routeBuilder) => { this._editDocumentTypePath = routeBuilder({}); }); + } + + connectedCallback() { + super.connectedCallback(); this.addValidator( 'rangeUnderflow', @@ -123,20 +127,40 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement) pickableFilter: (x) => x.isElement, }); } else { - this.#pickerContext.openPicker({ hideTreeRoot: true }); + this.#pickerContext.openPicker({ + hideTreeRoot: true, + }); } } render() { - return html` ${this._items?.map((item) => this._renderItem(item))} - ${this.#renderAddButton()}`; + return html` ${this.#renderItems()} ${this.#renderAddButton()} `; + } + + #renderItems() { + if (!this._items) return nothing; + if (this.max === 1 && this.selectedIds.length === 1) return nothing; + ${repeat( + this._items, + (item) => item.id, + (item) => this._renderItem(item), + )} + `; } #renderAddButton() { - if (this.max === 1 && this.selectedIds.length === 1) return nothing; - return html` - Add - `; + if (this.max > 0 && this.selectedIds.length >= this.max) return nothing; + return html` + ${this.localize.term('general_choose')} + `; } private _renderItem(item: DocumentTypeItemResponseModel) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts index 787e5be130..aff4f78246 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts @@ -1,5 +1,5 @@ import { UmbMediaTypePickerContext } from './input-media-type.context.js'; -import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -73,6 +73,10 @@ export class UmbInputMediaTypeElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + } + + connectedCallback() { + super.connectedCallback(); this.addValidator( 'rangeUnderflow', @@ -94,30 +98,54 @@ export class UmbInputMediaTypeElement extends FormControlMixin(UmbLitElement) { return undefined; } + #openPicker() { + this.#pickerContext.openPicker({ + hideTreeRoot: true, + }); + } + render() { - console.log('ITEMS', this._items); + return html` ${this.#renderItems()} ${this.#renderAddButton()} `; + } + + #renderItems() { + if (!this._items) return; return html` - ${this._items?.map((item) => this._renderItem(item))} - this.#pickerContext.openPicker()} label="open" - >Add${repeat( + this._items, + (item) => item.id, + (item) => this._renderItem(item), + )} + `; + } + + #renderAddButton() { + if (this.max > 0 && this.selectedIds.length >= this.max) return; + return html` + ${this.localize.term('general_choose')} `; } private _renderItem(item: MediaTypeItemResponseModel) { if (!item.id) return; - - //TODO: Using uui-ref-node as we don't have a uui-ref-media-type yet. return html` - + this.#pickerContext.requestRemoveItem(item.id!)} label="Remove Media Type ${item.name}" - >Remove${this.localize.term('general_remove')} - + `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts index 94e6483d14..0ce146c11d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts @@ -94,26 +94,22 @@ export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } - protected _openPicker() { + protected getFormElement() { + return undefined; + } + + #openPicker() { this.#pickerContext.openPicker({ hideTreeRoot: true, }); } - protected getFormElement() { - return undefined; - } - render() { - return html` - ${this.#renderItems()} - ${this.#renderAddButton()} - `; + return html` ${this.#renderItems()} ${this.#renderAddButton()} `; } #renderItems() { if (!this._items) return; - // TODO: Add sorting. [LK] return html` ${repeat( @@ -131,7 +127,7 @@ export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { ${this.localize.term('general_choose')} From 90b2fa947d0575ac734efd1c183e8db660472f03 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 16:20:21 +0000 Subject: [PATCH 300/786] TreePickerSourceType: fixed bug (again) after bad merge --- ...erty-editor-ui-tree-picker-source-type-picker.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 6e2dcfebc0..af31d985d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -63,10 +63,10 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement #onChange(event: CustomEvent) { switch (this.sourceType) { case 'content': - this.value = (event.target).selectedIds; + this.#setValue((event.target).selectedIds); break; case 'media': - this.value = (event.target).selectedIds; + this.#setValue((event.target).selectedIds); break; case 'member': this.#setValue((event.target).selectedIds); @@ -94,7 +94,7 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement case 'member': return this.#renderTypeMember(); default: - return 'No source type found'; + return html`

No source type found

`; } } From f8138a118e144ad8c0ad189feb327141681b9b1e Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 11 Jan 2024 16:25:25 +0000 Subject: [PATCH 301/786] TreePickerSource: Changed custom event to be `UmbPropertyValueChangeEvent` --- .../property-editor-ui-tree-picker-source-picker.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts index 67ddcc214b..8f7bb83ce7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts @@ -1,7 +1,7 @@ import { type UmbTreePickerSource, UmbInputTreePickerSourceElement } from '@umbraco-cms/backoffice/components'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import { type UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -25,7 +25,7 @@ export class UmbPropertyEditorUITreePickerSourcePickerElement extends UmbLitElem dynamicRoot: target.dynamicRoot, }; - this.dispatchEvent(new CustomEvent('property-value-change')); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); } render() { From 0053577d7d6220c46520354ed7762d198f7966cb Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 12:08:19 +0000 Subject: [PATCH 302/786] Corrected bad rebase code --- .../input-document-type.element.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts index 262cfff0f0..435310ca50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts @@ -1,5 +1,14 @@ import { UmbDocumentTypePickerContext } from './input-document-type.context.js'; -import { css, html, customElement, property, state, ifDefined, repeat, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { + css, + html, + customElement, + property, + state, + ifDefined, + repeat, + nothing, +} from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -139,7 +148,7 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement) #renderItems() { if (!this._items) return nothing; - if (this.max === 1 && this.selectedIds.length === 1) return nothing; + return html` ${repeat( this._items, From 0a38673a215764b2a8049ba69744a51bb462ec15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 12 Jan 2024 12:35:22 +0100 Subject: [PATCH 303/786] corrected to new field names --- .../property-type-based-property.element.ts | 8 ++++---- .../ref-data-type/ref-data-type.element.ts | 4 ++-- .../data-type-detail.server.data-source.ts | 20 +++++++++---------- .../detail/data-type-detail.store.ts | 4 +--- .../src/packages/core/data-type/types.ts | 4 ++-- .../workspace/data-type-workspace.context.ts | 8 ++++---- .../workspace-view-data-type-info.element.ts | 4 ++-- 7 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts index 7d8a2e2b3d..8260f8f636 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts @@ -39,12 +39,12 @@ export class UmbPropertyTypeBasedPropertyElement extends UmbLitElement { await this._dataTypeDetailRepository.byUnique(dataTypeUnique), (dataType) => { this._dataTypeData = dataType?.values; - this._propertyEditorUiAlias = dataType?.propertyEditorUiAlias || undefined; + this._propertyEditorUiAlias = dataType?.editorUiAlias || undefined; // If there is no UI, we will look up the Property editor model to find the default UI alias: - if (!this._propertyEditorUiAlias && dataType?.propertyEditorAlias) { - //use 'dataType.propertyEditorAlias' to look up the extension in the registry: + if (!this._propertyEditorUiAlias && dataType?.editorAlias) { + //use 'dataType.editorAlias' to look up the extension in the registry: this.observe( - umbExtensionsRegistry.getByTypeAndAlias('propertyEditorSchema', dataType.propertyEditorAlias), + umbExtensionsRegistry.getByTypeAndAlias('propertyEditorSchema', dataType.editorAlias), (extension) => { if (!extension) return; this._propertyEditorUiAlias = extension?.meta.defaultPropertyEditorUiAlias; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.element.ts index e54290fea0..4af4380ec5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.element.ts @@ -28,8 +28,8 @@ export class UmbRefDataTypeElement extends UmbElementMixin(UUIRefNodeElement) { (dataType) => { if (dataType) { this.name = dataType.name ?? ''; - this.propertyEditorUiAlias = dataType.propertyEditorUiAlias ?? ''; - this.propertyEditorSchemaAlias = dataType.propertyEditorAlias ?? ''; + this.propertyEditorUiAlias = dataType.editorUiAlias ?? ''; + this.propertyEditorSchemaAlias = dataType.editorAlias ?? ''; } }, 'dataType', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts index 948cb77c1b..f4bb5545ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts @@ -39,8 +39,8 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource, }; @@ -85,15 +85,15 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource - items.filter((item) => item.propertyEditorUiAlias === propertyEditorUiAlias), - ); + return this._data.asObservablePart((items) => items.filter((item) => item.editorUiAlias === propertyEditorUiAlias)); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts index 2fd8260458..452b900470 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts @@ -3,8 +3,8 @@ export interface UmbDataTypeDetailModel { unique: string; parentUnique: string | null; name: string; - propertyEditorAlias: string | undefined; - propertyEditorUiAlias: string | null; + editorAlias: string | undefined; + editorUiAlias: string | null; values: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts index 95068965ce..71498bfea6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts @@ -32,8 +32,8 @@ export class UmbDataTypeWorkspaceContext readonly name = this.#data.asObservablePart((data) => data?.name); readonly unique = this.#data.asObservablePart((data) => data?.unique); - readonly propertyEditorUiAlias = this.#data.asObservablePart((data) => data?.propertyEditorUiAlias); - readonly propertyEditorSchemaAlias = this.#data.asObservablePart((data) => data?.propertyEditorAlias); + readonly propertyEditorUiAlias = this.#data.asObservablePart((data) => data?.editorUiAlias); + readonly propertyEditorSchemaAlias = this.#data.asObservablePart((data) => data?.editorAlias); #properties = new UmbArrayState([], (x) => x.alias); readonly properties = this.#properties.asObservable(); @@ -231,10 +231,10 @@ export class UmbDataTypeWorkspaceContext } setPropertyEditorSchemaAlias(alias?: string) { - this.#data.update({ propertyEditorAlias: alias }); + this.#data.update({ editorAlias: alias }); } setPropertyEditorUiAlias(alias?: string) { - this.#data.update({ propertyEditorUiAlias: alias }); + this.#data.update({ editorUiAlias: alias }); } async propertyValueByAlias(propertyAlias: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts index e315847fa5..d7c14bc646 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts @@ -41,11 +41,11 @@ export class UmbWorkspaceViewDataTypeInfoElement extends UmbLitElement implement
${this._dataType?.unique}
-
${this._dataType?.propertyEditorAlias}
+
${this._dataType?.editorAlias}
-
${this._dataType?.propertyEditorUiAlias}
+
${this._dataType?.editorUiAlias}
`; From a3381b3669949493677e02b4d1b2b00d7cbbbbe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 12 Jan 2024 12:35:52 +0100 Subject: [PATCH 304/786] datatype workspace modal --- .../data-type-flow-input.element.ts | 11 +++-------- .../data-type-picker-flow-modal.element.ts | 4 ++-- .../workspace/data-type-workspace.modal-token.ts | 14 ++++++++++++++ .../src/packages/core/data-type/workspace/index.ts | 1 + .../core/modal/token/workspace-modal.token.ts | 7 ++----- 5 files changed, 22 insertions(+), 15 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-flow-input/data-type-flow-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-flow-input/data-type-flow-input.element.ts index 181c11f8de..e3429f218f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-flow-input/data-type-flow-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-flow-input/data-type-flow-input.element.ts @@ -1,11 +1,8 @@ +import { UMB_DATATYPE_WORKSPACE_MODAL } from '../../index.js'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { - UmbModalRouteRegistrationController, - UMB_DATA_TYPE_PICKER_FLOW_MODAL, - UMB_WORKSPACE_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalRouteRegistrationController, UMB_DATA_TYPE_PICKER_FLOW_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; // Note: Does only support picking a single data type. But this could be developed later into this same component. To follow other picker input components. @@ -49,9 +46,7 @@ export class UmbInputDataTypeElement extends FormControlMixin(UmbLitElement) { constructor() { super(); - this.#editDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL).onSetup(() => { - return { data: { entityType: 'data-type', preset: {} } }; - }); + this.#editDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_DATATYPE_WORKSPACE_MODAL); new UmbModalRouteRegistrationController(this, UMB_DATA_TYPE_PICKER_FLOW_MODAL) .onSetup(() => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts index d20f934b85..6c30d005bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -4,7 +4,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL, - UMB_WORKSPACE_MODAL, UmbDataTypePickerFlowModalData, UmbDataTypePickerFlowModalValue, UmbModalBaseElement, @@ -13,6 +12,7 @@ import { } from '@umbraco-cms/backoffice/modal'; import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import { UMB_DATATYPE_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/data-type'; interface GroupedItems { [key: string]: Array; @@ -73,7 +73,7 @@ export class UmbDataTypePickerFlowModalElement extends UmbModalBaseElement< this.requestUpdate('_dataTypePickerModalRouteBuilder'); }); - this._createDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + this._createDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_DATATYPE_WORKSPACE_MODAL) .addAdditionalPath(':uiAlias') .onSetup((params) => { return { data: { entityType: 'data-type', preset: { editorUiAlias: params.uiAlias } } }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts new file mode 100644 index 0000000000..05f1fdc5e9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts @@ -0,0 +1,14 @@ +import { CreateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; + +export const UMB_DATATYPE_WORKSPACE_MODAL = new UmbModalToken< + UmbWorkspaceData, + UmbWorkspaceValue +>('Umb.Modal.Workspace', { + modal: { + type: 'sidebar', + size: 'large', + }, + data: { entityType: 'data-type', preset: {} }, + // Recast the type, so the entityType data prop is not required: +}) as UmbModalToken, 'entityType'>, UmbWorkspaceValue>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/index.ts index edea71c7a5..cd8d2359be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/index.ts @@ -1 +1,2 @@ export * from './data-type-workspace.context-token.js'; +export * from './data-type-workspace.modal-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/workspace-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/workspace-modal.token.ts index 3f64bfaa1f..93b568b232 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/workspace-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/workspace-modal.token.ts @@ -1,10 +1,7 @@ -import { CreateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; - -// TODO: Change model: -export interface UmbWorkspaceData { +export interface UmbWorkspaceData { entityType: string; - preset: Partial; + preset: Partial; } // TODO: It would be good with a WorkspaceValueBaseType, to avoid the hardcoded type for unique here: From fb94fb0427037b1e1c0785ab16611f9ca2890813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 12 Jan 2024 12:38:55 +0100 Subject: [PATCH 305/786] corrected misused type --- .../data-type/workspace/data-type-workspace.modal-token.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts index 05f1fdc5e9..e4af72f9ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts @@ -1,8 +1,8 @@ -import { CreateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbDataTypeDetailModel } from '../types.js'; import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; export const UMB_DATATYPE_WORKSPACE_MODAL = new UmbModalToken< - UmbWorkspaceData, + UmbWorkspaceData, UmbWorkspaceValue >('Umb.Modal.Workspace', { modal: { @@ -11,4 +11,4 @@ export const UMB_DATATYPE_WORKSPACE_MODAL = new UmbModalToken< }, data: { entityType: 'data-type', preset: {} }, // Recast the type, so the entityType data prop is not required: -}) as UmbModalToken, 'entityType'>, UmbWorkspaceValue>; +}) as UmbModalToken, 'entityType'>, UmbWorkspaceValue>; From e7c9b1ca1dd40e71eece7a7af5560878fe0b13cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 14:17:29 +0100 Subject: [PATCH 306/786] clean up --- .../modals/block-catalogue/block-catalogue-modal.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 8b1210ccd3..1cbc7a5160 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -3,7 +3,6 @@ import { UmbBlockCatalogueModalValue, UmbBlockTypeWithGroupKey, } from '@umbraco-cms/backoffice/block'; -import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/document'; import { css, html, customElement, state, repeat, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import { groupBy } from '@umbraco-cms/backoffice/external/lodash'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; From 9e47fdfc3150878c7162591db81ca65890c52296 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 12:18:10 +0000 Subject: [PATCH 307/786] MediaType picker: sets icons --- .../input-media-type/input-media-type.element.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts index aff4f78246..4b977a296d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts @@ -115,7 +115,7 @@ export class UmbInputMediaTypeElement extends FormControlMixin(UmbLitElement) { >${repeat( this._items, (item) => item.id, - (item) => this._renderItem(item), + (item) => this.#renderItem(item), )} `; @@ -134,10 +134,11 @@ export class UmbInputMediaTypeElement extends FormControlMixin(UmbLitElement) { `; } - private _renderItem(item: MediaTypeItemResponseModel) { + #renderItem(item: MediaTypeItemResponseModel) { if (!item.id) return; return html` + ${this.#renderIcon(item)} this.#pickerContext.requestRemoveItem(item.id!)} @@ -149,6 +150,11 @@ export class UmbInputMediaTypeElement extends FormControlMixin(UmbLitElement) { `; } + #renderIcon(item: MediaTypeItemResponseModel) { + if (!item.icon) return; + return html``; + } + static styles = [ css` #add-button { From e667d8845d991c482fed0fea6175277eb48e1dbb Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 13:31:59 +0000 Subject: [PATCH 308/786] DocumentType picker: sets icons --- .../input-document-type/input-document-type.element.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts index 435310ca50..d9f31b2ebe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts @@ -153,7 +153,7 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement) >${repeat( this._items, (item) => item.id, - (item) => this._renderItem(item), + (item) => this.#renderItem(item), )} `; @@ -172,10 +172,11 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement) `; } - private _renderItem(item: DocumentTypeItemResponseModel) { + #renderItem(item: DocumentTypeItemResponseModel) { if (!item.id) return; return html` + ${this.#renderIcon(item)} `; + } + static styles = [ css` #add-button { From 877cd3de14880627465db828fa89735398d9e4cc Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 13:34:59 +0000 Subject: [PATCH 309/786] MemberType picker: sets icons --- .../input-member-type/input-member-type.element.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts index 0ce146c11d..6ac9e16ad7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts @@ -115,7 +115,7 @@ export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { >${repeat( this._items, (item) => item.id, - (item) => this._renderItem(item), + (item) => this.#renderItem(item), )} `; @@ -134,10 +134,11 @@ export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { `; } - private _renderItem(item: MemberTypeItemResponseModel) { + #renderItem(item: MemberTypeItemResponseModel) { if (!item.id) return; return html` + ${this.#renderIcon(item)} this.#pickerContext.requestRemoveItem(item.id!)} @@ -149,6 +150,11 @@ export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { `; } + #renderIcon(item: MemberTypeItemResponseModel) { + if (!item.icon) return; + return html``; + } + static styles = [ css` #add-button { From 19444aaa1b29ce5d9b68b3d0662971e2b2be355b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 14:51:07 +0100 Subject: [PATCH 310/786] initial work for block workspace --- .../property-editor-ui-block-list.element.ts | 2 +- .../src/packages/block/block-manager/index.ts | 3 - .../context}/block.context.ts | 6 +- .../src/packages/block/block/context/index.ts | 1 + .../src/packages/block/block/index.ts | 3 + .../manager}/block-manager.context.ts | 4 +- .../src/packages/block/block/manager/index.ts | 1 + .../block/{block-manager => block}/types.ts | 0 .../block-workspace-editor.element.ts | 55 +++++++ .../workspace/block-workspace.context.ts | 135 ++++++++++++++++++ .../workspace/block-workspace.element.ts | 80 +++++++++++ .../block/block/workspace/manifests.ts | 29 ++++ .../src/packages/block/index.ts | 1 - .../editable-workspace-context-base.ts | 6 +- 14 files changed, 313 insertions(+), 13 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-manager/index.ts rename src/Umbraco.Web.UI.Client/src/packages/block/{block-manager => block/context}/block.context.ts (97%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts rename src/Umbraco.Web.UI.Client/src/packages/block/{block-manager => block/manager}/block-manager.context.ts (98%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts rename src/Umbraco.Web.UI.Client/src/packages/block/{block-manager => block}/types.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 7f4beab100..bcf54a602c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -1,5 +1,5 @@ import { UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS } from './manifests.js'; -import { html, customElement, property, state, repeat, css, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state, repeat, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/index.ts deleted file mode 100644 index 8a987704b4..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './block-manager.context.js'; -export * from './block.context.js'; -export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index a6fa67ec67..8c1fe6f41c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -1,6 +1,6 @@ -import type { UmbBlockTypeBase } from '../block-type/types.js'; -import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from './types.js'; -import { UMB_BLOCK_MANAGER_CONTEXT, type UmbBlockManagerContext } from './block-manager.context.js'; +import type { UmbBlockTypeBase } from '../../block-type/types.js'; +import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; +import { UMB_BLOCK_MANAGER_CONTEXT, type UmbBlockManagerContext } from '../manager/index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts new file mode 100644 index 0000000000..69c858f894 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts @@ -0,0 +1 @@ +export * from './block.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts index 9e897c4aa4..d6127f3d29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts @@ -1 +1,4 @@ +export * from './context/index.js'; +export * from './manager/index.js'; export * from './modals/index.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block-manager.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 8303e6c1b8..ca144c58b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -1,5 +1,4 @@ -import type { UmbBlockTypeBase } from '../block-type/types.js'; -import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from './types.js'; +import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '..//types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -7,6 +6,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; +import { UmbBlockTypeBase } from '@umbraco-cms/backoffice/block'; // TODO: We are using backend model here, I think we should get our own model: type ElementTypeModel = DocumentTypeResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts new file mode 100644 index 0000000000..6303015d84 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts @@ -0,0 +1 @@ +export * from './block-manager.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/types.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/block/block-manager/types.ts rename to src/Umbraco.Web.UI.Client/src/packages/block/block/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts new file mode 100644 index 0000000000..f4b12415ff --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts @@ -0,0 +1,55 @@ +import { UMB_BLOCK_WORKSPACE_CONTEXT } from './block-workspace.context.js'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { customElement, css, html, state, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; +import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, UmbDocumentTypeItemModel } from '@umbraco-cms/backoffice/document-type'; + +@customElement('umb-block-workspace-editor') +export class UmbBlockWorkspaceEditorElement extends UmbLitElement { + // + #itemManager = new UmbRepositoryItemsManager( + this, + DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, + (x) => x.id, + ); + + #workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; + + @property({ type: String, attribute: false }) + workspaceAlias?: string; + + constructor() { + super(); + + this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (instance) => { + this.#workspaceContext = instance; + this.#workspaceContext?.createPropertyDatasetContext(this); + }); + } + + render() { + return this.workspaceAlias + ? html` ` + : ''; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + width: 100%; + height: 100%; + } + `, + ]; +} + +export default UmbBlockWorkspaceEditorElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-block-workspace-editor': UmbBlockWorkspaceEditorElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts new file mode 100644 index 0000000000..4fb2a70109 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -0,0 +1,135 @@ +import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; +import { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { + UmbInvariantableWorkspaceContextInterface, + UmbEditableWorkspaceContextBase, + UmbWorkspaceContextInterface, + UmbInvariantWorkspacePropertyDatasetContext, +} from '@umbraco-cms/backoffice/workspace'; +import { UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; + +export class UmbBlockWorkspaceContext + extends UmbEditableWorkspaceContextBase + implements UmbInvariantableWorkspaceContextInterface +{ + // Just for context token safety: + public readonly IS_BLOCK_WORKSPACE_CONTEXT = true; + + #entityType: string; + + #layout = new UmbObjectState(undefined); + readonly layout = this.#layout.asObservable(); + + #content = new UmbObjectState(undefined); + readonly content = this.#content.asObservable(); + + #settings = new UmbObjectState(undefined); + readonly settings = this.#settings.asObservable(); + + // TODO: Get the name of the contentElementType.. + #label = new UmbStringState(undefined); + readonly name = this.#label.asObservable(); + readonly unique = this.#layout.asObservablePart((data) => data?.contentUdi); + + constructor(host: UmbControllerHost, workspaceArgs: { manifest: ManifestWorkspace }) { + // TODO: We don't need a repo here, so maybe we should not require this of the UmbEditableWorkspaceContextBase + super(host, workspaceArgs.manifest.alias, undefined as never); + this.#entityType = workspaceArgs.manifest.meta?.entityType; + } + + createPropertyDatasetContext(host: UmbControllerHost): UmbPropertyDatasetContext { + return new UmbInvariantWorkspacePropertyDatasetContext(host, this); + } + + async load(unique: string) { + this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (context) => { + this.observe(context.value, (value) => { + /*if (value) { + const blockTypeData = value.find((x: UmbBlockTypeBase) => x.contentElementTypeKey === unique); + if (blockTypeData) { + this.#layout.next(blockTypeData); + return; + } + } + // Fallback to undefined: + this.#layout.next(undefined); + */ + }); + }); + } + + async create(contentElementTypeId: string) { + const key = UmbId.new(); + const contentUdi = `umb://block/${key}`; + const layout: UmbBlockLayoutBaseModel = { + contentUdi: contentUdi, + }; + const content: UmbBlockDataType = { + udi: contentUdi, + contentTypeKey: contentElementTypeId, + }; + + this.setIsNew(true); + this.#layout.next(layout as LayoutDataType); + } + + getData() { + return this.#layout.getValue(); + } + + getEntityId() { + return this.getData()!.contentUdi; + } + + getEntityType() { + return this.#entityType; + } + + getName() { + return 'block name content element type here...'; + } + setName(name: string | undefined) { + alert('You cannot set a name of a block-type.'); + } + + async propertyValueByAlias(propertyAlias: string) { + return this.#layout.asObservablePart((data) => data?.[propertyAlias as keyof BlockTypeData] as ReturnType); + } + + getPropertyValue(propertyAlias: string) { + // TODO: Should be using Content, then we need a toggle or another method for getting settings. + return this.#layout.getValue()?.[propertyAlias as keyof BlockTypeData] as ReturnType; + } + + async setPropertyValue(alias: string, value: unknown) { + const currentData = this.#layout.value; + if (currentData) { + this.#layout.update({ ...currentData, [alias]: value }); + } + } + + async save() { + if (!this.#layout.value) return; + + // TODO: Save the block type, but only in non-live-editing mode. + + this.saveComplete(this.#layout.value); + } + + public destroy(): void { + this.#layout.destroy(); + } +} + +export default UmbBlockWorkspaceContext; + +export const UMB_BLOCK_WORKSPACE_CONTEXT = new UmbContextToken( + 'UmbWorkspaceContext', + undefined, + (context): context is UmbBlockWorkspaceContext => (context as any).IS_BLOCK_WORKSPACE_CONTEXT, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts new file mode 100644 index 0000000000..deb2037b50 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts @@ -0,0 +1,80 @@ +import type { UmbBlockWorkspaceContext } from './block-workspace.context.js'; +import { UmbBlockWorkspaceEditorElement } from './block-workspace-editor.element.js'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbRoute } from '@umbraco-cms/backoffice/router'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; + +import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; +import { UmbApi, UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; +import { ManifestWorkspace, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; + +@customElement('umb-block-workspace') +export class UmbBlockWorkspaceElement extends UmbLitElement { + // + #manifest?: ManifestWorkspace; + #workspaceContext?: UmbBlockWorkspaceContext; + #editorElement = () => { + const element = new UmbBlockWorkspaceEditorElement(); + element.workspaceAlias = this.#manifest!.alias; + return element; + }; + + @state() + _routes: UmbRoute[] = []; + + public set manifest(manifest: ManifestWorkspace) { + this.#manifest = manifest; + createExtensionApi(manifest, [this, { manifest: manifest }]).then((context) => { + if (context) { + this.#gotWorkspaceContext(context); + } + }); + } + + #gotWorkspaceContext(context: UmbApi) { + this.#workspaceContext = context as UmbBlockWorkspaceContext; + + this._routes = [ + { + path: 'create/:elementTypeKey', + component: this.#editorElement, + setup: async (_component, info) => { + const elementTypeKey = info.match.params.elementTypeKey; + this.#workspaceContext!.create(elementTypeKey); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#workspaceContext!, + this.shadowRoot!.querySelector('umb-router-slot')!, + ); + }, + }, + { + path: 'edit/:id', + component: this.#editorElement, + setup: (_component, info) => { + const id = info.match.params.id; + this.#workspaceContext!.load(id); + }, + }, + ]; + + // TODO: We need to recreate when ID changed? + new UmbExtensionsApiInitializer(this, umbExtensionsRegistry, 'workspaceContext', [this, this.#workspaceContext]); + } + + render() { + return html``; + } + + static styles = [UmbTextStyles]; +} + +export default UmbBlockWorkspaceElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-block-workspace': UmbBlockWorkspaceElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts new file mode 100644 index 0000000000..d97b804357 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -0,0 +1,29 @@ +import { UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS } from '../../block-grid/workspace/index.js'; +import { UMB_BLOCK_LIST_TYPE_WORKSPACE_ALIAS } from '../../block-list/workspace/index.js'; +import { UMB_BLOCK_RTE_TYPE_WORKSPACE_ALIAS } from '../../block-rte/workspace/index.js'; +import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; +import type { ManifestWorkspaceAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'workspaceAction', + alias: 'Umb.WorkspaceAction.BlockType.Save', + name: 'Save Block Type Workspace Action', + api: UmbSaveWorkspaceAction, + meta: { + label: 'Submit', + look: 'primary', + color: 'positive', + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + oneOf: [ + UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS, + UMB_BLOCK_LIST_TYPE_WORKSPACE_ALIAS, + UMB_BLOCK_RTE_TYPE_WORKSPACE_ALIAS, + ], + }, + ], + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/index.ts index 8428775ae0..36612a5435 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/index.ts @@ -1,6 +1,5 @@ export * from './block/index.js'; export * from './block-grid/index.js'; export * from './block-list/index.js'; -export * from './block-manager/index.js'; export * from './block-rte/index.js'; export * from './block-type/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index d32772a7ca..181ae88f59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -1,5 +1,5 @@ import { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @@ -9,7 +9,7 @@ export abstract class UmbEditableWorkspaceContextBase Date: Mon, 15 Jan 2024 15:11:46 +0100 Subject: [PATCH 311/786] add stylesheet-input + map items to client side model --- .../handlers/partial-view/item.handlers.ts | 5 +- .../mocks/handlers/script/item.handlers.ts | 5 +- .../handlers/stylesheet/item.handlers.ts | 5 +- .../tree-picker/tree-picker-modal.element.ts | 6 +- .../packages/core/modal/modal.interfaces.ts | 6 +- ...y-mce-stylesheets-configuration.element.ts | 61 ++------ .../repository/repository-items.manager.ts | 3 +- .../src/packages/core/store/index.ts | 7 +- .../packages/core/store/item-store-base.ts | 28 ++++ .../core/store/item-store.interface.ts | 2 +- .../stylesheet-collection.repository.ts | 26 ++-- ...tylesheet-collection.server.data-source.ts | 25 +++- .../stylesheets/collection/types.ts | 2 +- .../stylesheets/components/index.ts | 2 + .../stylesheets/components/manifests.ts | 2 +- .../stylesheet-input.context.ts | 14 ++ .../stylesheet-input.element.ts | 136 ++++++++++++++++++ .../stylesheet-picker-modal.token.ts | 18 +++ .../item/stylesheet-item.repository.ts | 4 +- .../stylesheet-item.server.data-source.ts | 41 +++++- .../repository/item/stylesheet-item.store.ts | 8 +- .../packages/templating/stylesheets/types.ts | 10 +- .../repository/template-item.store.ts | 5 +- .../repository/user-group-item.store.ts | 6 +- .../user/repository/item/user-item.store.ts | 6 +- 25 files changed, 318 insertions(+), 115 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/item.handlers.ts index abb84379ba..9869404c04 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/item.handlers.ts @@ -5,9 +5,10 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); + const paths = req.url.searchParams.getAll('path'); if (!paths) return res(ctx.status(400, 'no body found')); - const items = umbPartialViewMockDB.item.getItems(paths); + const decodedPaths = paths.map((path) => decodeURI(path)); + const items = umbPartialViewMockDB.item.getItems(decodedPaths); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/item.handlers.ts index 9af1b7bc39..34e725d86e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/item.handlers.ts @@ -5,9 +5,10 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); + const paths = req.url.searchParams.getAll('path'); if (!paths) return res(ctx.status(400, 'no body found')); - const items = umbScriptMockDb.item.getItems(paths); + const decodedPaths = paths.map((path) => decodeURI(path)); + const items = umbScriptMockDb.item.getItems(decodedPaths); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts index b1f29d39bb..5406b602bc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/item.handlers.ts @@ -5,9 +5,10 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { - const paths = req.url.searchParams.getAll('paths'); + const paths = req.url.searchParams.getAll('path'); if (!paths) return res(ctx.status(400, 'no body found')); - const items = umbStylesheetMockDb.item.getItems(paths); + const decodedPaths = paths.map((path) => decodeURI(path)); + const items = umbStylesheetMockDb.item.getItems(decodedPaths); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts index 8d0b5425d6..8de85023a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts @@ -50,7 +50,11 @@ export class UmbTreePickerModalElement
- +
`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.interfaces.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.interfaces.ts index e3a9520916..f6b81a7e1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.interfaces.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.interfaces.ts @@ -1,8 +1,8 @@ -export interface UmbPickerModalData { +export interface UmbPickerModalData { multiple?: boolean; hideTreeRoot?: boolean; - filter?: (item: ItemType) => boolean; - pickableFilter?: (item: ItemType) => boolean; + filter?: (item: TreeItemType) => boolean; + pickableFilter?: (item: TreeItemType) => boolean; } export interface UmbPickerModalValue { selection: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts index 931c3074d8..e22e70d8d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts @@ -1,9 +1,10 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbStylesheetDetailRepository } from '@umbraco-cms/backoffice/stylesheet'; -import { StylesheetOverviewResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import { + UmbPropertyEditorConfigCollection, + UmbPropertyValueChangeEvent, +} from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; /** @@ -20,30 +21,8 @@ export class UmbPropertyEditorUITinyMceStylesheetsConfigurationElement @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; - @state() - stylesheetList: Array> = []; - - #repository; - - constructor() { - super(); - this.#repository = new UmbStylesheetDetailRepository(this); - - this.#getAllStylesheets(); - } - async #getAllStylesheets() { - const { data } = await this.#repository.getAll(); - if (!data) return; - - const styles = data.items; - - this.stylesheetList = styles.map((stylesheet) => ({ - ...stylesheet, - selected: this.value?.some((path) => path === stylesheet.path), - })); - } - #onChange(event: CustomEvent) { + debugger; const checkbox = event.target as HTMLInputElement; if (checkbox.checked) { @@ -56,36 +35,14 @@ export class UmbPropertyEditorUITinyMceStylesheetsConfigurationElement this.value = this.value.filter((v) => v !== checkbox.value); } - this.dispatchEvent(new CustomEvent('property-value-change')); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); } render() { - return html`
    - ${this.stylesheetList.map( - (stylesheet) => - html`
  • - - ${stylesheet.name} - -
  • `, - )} -
`; + return html``; } - static styles = [ - UmbTextStyles, - css` - ul { - list-style: none; - padding: 0; - margin: 0; - } - `, - ]; + static styles = [UmbTextStyles, css``]; } export default UmbPropertyEditorUITinyMceStylesheetsConfigurationElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts index 9d0806d8c8..6fc12ad5af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts @@ -72,8 +72,7 @@ export class UmbRepositoryItemsManager extends UmbBaseController { // TODO: Test if its just some items that is gone now, if so then just filter them out. (maybe use code from #removeItem) // This is where this.#getUnique comes in play. Unless that can come from the repository, but that collides with the idea of having a multi-type repository. If that happens. - - const { asObservable } = await this.repository.requestItems(this.getUniques()); + const { data, asObservable } = await this.repository.requestItems(this.getUniques()); if (asObservable) { this.observe(asObservable(), (data) => this.#items.next(data), '_observeRequestedItems'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts index 7f58158607..9b03c755d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/index.ts @@ -1,10 +1,13 @@ -export * from './item-store.interface.js'; export * from './store-base.js'; export * from './store.interface.js'; export * from './store.js'; export * from './entity-item.store.js'; export * from './file-system-item.store.js'; -export { UmbStoreConnector } from './store-connector.js'; export { UmbDetailStoreBase } from './detail-store-base.js'; export type { UmbDetailStore } from './detail-store.interface.js'; + +export { UmbItemStoreBase } from './item-store-base.js'; +export type { UmbItemStore } from './item-store.interface.js'; + +export { UmbStoreConnector } from './store-connector.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts new file mode 100644 index 0000000000..a09a5e7fd6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts @@ -0,0 +1,28 @@ +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; + +/** + * @export + * @class UmbItemStoreBase + * @extends {UmbStoreBase} + * @description - Data Store for items with a unique property + */ + +export abstract class UmbItemStoreBase + extends UmbStoreBase + implements UmbItemStore +{ + /** + * Creates an instance of UmbItemStoreBase. + * @param {UmbControllerHost} host + * @memberof UmbItemStoreBase + */ + constructor(host: UmbControllerHost, storeAlias: string) { + super(host, storeAlias, new UmbArrayState([], (x) => x.unique)); + } + + items(uniques: Array) { + return this._data.asObservablePart((items) => items.filter((item) => uniques.includes(item.unique))); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts index 408617c842..0427a65879 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts @@ -2,6 +2,6 @@ import { UmbStore } from './store.interface.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export interface UmbItemStore extends UmbStore, UmbApi { +export interface UmbItemStore extends UmbStore, UmbApi { items: (uniques: Array) => Observable>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts index 66404f2c9d..3cfee0de5d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts @@ -1,34 +1,24 @@ import { UmbStylesheetCollectionFilterModel, UmbStylesheetCollectionItemModel } from '../types.js'; -import { UmbStylesheetDetailStore, UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from '../../repository/index.js'; import { UmbStylesheetCollectionServerDataSource } from './stylesheet-collection.server.data-source.js'; import { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export class UmbStylesheetCollectionRepository extends UmbBaseController implements UmbCollectionRepository { - #init; - - #detailStore?: UmbStylesheetDetailStore; #collectionSource: UmbCollectionDataSource; constructor(host: UmbControllerHost) { super(host); this.#collectionSource = new UmbStylesheetCollectionServerDataSource(this._host); - - this.#init = this.consumeContext(UMB_STYLESHEET_DETAIL_STORE_CONTEXT, (instance) => { - this.#detailStore = instance; - }).asPromise(); } - async requestCollection(filter: UmbStylesheetCollectionFilterModel = { take: 100, skip: 0 }) { - await this.#init; - - const { data, error } = await this.#collectionSource.getCollection(filter); - - if (data) { - this.#detailStore?.appendItems(data.items); - } - - return { data, error, asObservable: () => this.#detailStore!.all() }; + /** + * Requests the stylesheet collection + * @param {UmbStylesheetCollectionFilterModel} [filter={ take: 100, skip: 0 }] + * @return {*} + * @memberof UmbStylesheetCollectionRepository + */ + requestCollection(filter: UmbStylesheetCollectionFilterModel = { take: 100, skip: 0 }) { + return this.#collectionSource.getCollection(filter); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts index 57cda012e5..fb4f7e78a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts @@ -1,3 +1,4 @@ +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbStylesheetCollectionFilterModel, UmbStylesheetCollectionItemModel } from '../types.js'; import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -14,6 +15,7 @@ export class UmbStylesheetCollectionServerDataSource implements UmbCollectionDataSource { #host: UmbControllerHost; + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); /** * Creates an instance of UmbStylesheetCollectionServerDataSource. @@ -24,7 +26,26 @@ export class UmbStylesheetCollectionServerDataSource this.#host = host; } - getCollection(filter: UmbStylesheetCollectionFilterModel) { - return tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetAll(filter)); + /** + * Gets the stylesheet collection items from the server + * @param {UmbStylesheetCollectionFilterModel} filter + * @return {*} + * @memberof UmbStylesheetCollectionServerDataSource + */ + async getCollection(filter: UmbStylesheetCollectionFilterModel) { + const { data, error } = await tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetOverview(filter)); + + if (data) { + const items: Array = data.items.map((item) => { + return { + name: item.name, + unique: this.#serverFilePathUniqueSerializer.toUnique(item.path), + }; + }); + + return { data: { items, total: data.total } }; + } + + return { error }; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts index d04c8fb3f5..ade7c382f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts @@ -12,5 +12,5 @@ export interface UmbStylesheetCollectionFilterModel { export interface UmbStylesheetCollectionItemModel { name: string; - path: string; + unique: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts index d10ea30039..3307b2aa54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/index.ts @@ -1,5 +1,7 @@ +import './stylesheet-input/stylesheet-input.element.js'; import './stylesheet-rule-input/stylesheet-rule-input.element.js'; import './stylesheet-rule-ref/stylesheet-rule-ref.element.js'; +export * from './stylesheet-input/stylesheet-input.element.js'; export * from './stylesheet-rule-input/stylesheet-rule-input.element.js'; export * from './stylesheet-rule-ref/stylesheet-rule-ref.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts index fc795a1da1..0af23cccca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts @@ -1,3 +1,3 @@ import { manifests as stylesheetRuleInputManifests } from './stylesheet-rule-input/manifests.js'; -export const manifests = [...stylesheetRuleInputManifests]; +export const manifests = [...stylesheetPickerModalManifests, ...stylesheetRuleInputManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts new file mode 100644 index 0000000000..6f42004d9c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts @@ -0,0 +1,14 @@ +import { UMB_STYLESHEET_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UmbStylesheetItemModel } from '../../types.js'; +import { UMB_STYLESHEET_PICKER_MODAL } from './stylesheet-picker-modal.token.js'; +import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; + +export class UmbStylesheetPickerContext extends UmbPickerInputContext { + constructor(host: UmbControllerHostElement) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: Item and tree item types collide + super(host, UMB_STYLESHEET_ITEM_REPOSITORY_ALIAS, UMB_STYLESHEET_PICKER_MODAL, (item) => item.unique); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts new file mode 100644 index 0000000000..da82cd4f03 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts @@ -0,0 +1,136 @@ +import { UmbStylesheetItemModel } from '../../types.js'; +import { UmbStylesheetPickerContext } from './stylesheet-input.context.js'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; + +@customElement('umb-stylesheet-input') +export class UmbStylesheetInputElement extends FormControlMixin(UmbLitElement) { + /** + * This is a minimum amount of selected items in this input. + * @type {number} + * @attr + * @default 0 + */ + @property({ type: Number }) + public get min(): number { + return this.#pickerContext.min; + } + public set min(value: number) { + this.#pickerContext.min = value; + } + + /** + * Min validation message. + * @type {boolean} + * @attr + * @default + */ + @property({ type: String, attribute: 'min-message' }) + minMessage = 'This field need more items'; + + /** + * This is a maximum amount of selected items in this input. + * @type {number} + * @attr + * @default Infinity + */ + @property({ type: Number }) + public get max(): number { + return this.#pickerContext.max; + } + public set max(value: number) { + this.#pickerContext.max = value; + } + + /** + * Max validation message. + * @type {boolean} + * @attr + * @default + */ + @property({ type: String, attribute: 'min-message' }) + maxMessage = 'This field exceeds the allowed amount of items'; + + public get selectedIds(): Array { + return this.#pickerContext.getSelection(); + } + public set selectedIds(ids: Array) { + this.#pickerContext.setSelection(ids); + } + + @property() + public set value(idsString: string) { + // Its with full purpose we don't call super.value, as thats being handled by the observation of the context selection. + this.selectedIds = splitStringToArray(idsString); + } + + @state() + private _items?: Array; + + #pickerContext = new UmbStylesheetPickerContext(this); + + constructor() { + super(); + + this.addValidator( + 'rangeUnderflow', + () => this.minMessage, + () => !!this.min && this.#pickerContext.getSelection().length < this.min, + ); + + this.addValidator( + 'rangeOverflow', + () => this.maxMessage, + () => !!this.max && this.#pickerContext.getSelection().length > this.max, + ); + + this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); + } + + protected getFormElement() { + return undefined; + } + + render() { + return html` + ${this._items?.map((item) => this._renderItem(item))} + this.#pickerContext.openPicker()} label="open" + >Add + `; + } + + private _renderItem(item: UmbStylesheetItemModel) { + if (!item.unique) return; + return html` + + + this.#pickerContext.requestRemoveItem(item.unique!)} + label="Remove Data Type ${item.name}" + >Remove + + + `; + } + + static styles = [ + css` + #add-button { + width: 100%; + } + `, + ]; +} + +export default UmbStylesheetInputElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-stylesheet-input': UmbStylesheetInputElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts new file mode 100644 index 0000000000..9b689e9818 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts @@ -0,0 +1,18 @@ +import { UmbStylesheetTreeItemModel } from '../../tree/types.js'; +import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; + +export type UmbStylesheetPickerModalData = UmbTreePickerModalData; +export type UmbStylesheetPickerModalValue = UmbPickerModalValue; + +export const UMB_STYLESHEET_PICKER_MODAL = new UmbModalToken< + UmbStylesheetPickerModalData, + UmbStylesheetPickerModalValue +>('Umb.Modal.TreePicker', { + modal: { + type: 'sidebar', + size: 'small', + }, + data: { + treeAlias: 'Umb.Tree.Stylesheet', + }, +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts index 9cc0cc8198..d8a770162f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts @@ -1,10 +1,10 @@ +import { UmbStylesheetItemModel } from '../../types.js'; import { UmbStylesheetItemServerDataSource } from './stylesheet-item.server.data-source.js'; import { UMB_STYLESHEET_ITEM_STORE_CONTEXT } from './stylesheet-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { StylesheetItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; -export class UmbStylesheetItemRepository extends UmbItemRepositoryBase { +export class UmbStylesheetItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbStylesheetItemServerDataSource, UMB_STYLESHEET_ITEM_STORE_CONTEXT); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts index 2c65c2a56c..adccd19b47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts @@ -1,7 +1,10 @@ +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbStylesheetItemModel } from '../../types.js'; import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { StylesheetItemResponseModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; +import { StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; /** * A data source for stylesheet items that fetches data from the server @@ -9,8 +12,9 @@ import { StylesheetItemResponseModel, StylesheetResource } from '@umbraco-cms/ba * @class UmbStylesheetItemServerDataSource * @implements {UmbItemDataSource} */ -export class UmbStylesheetItemServerDataSource implements UmbItemDataSource { +export class UmbStylesheetItemServerDataSource implements UmbItemDataSource { #host: UmbControllerHost; + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); /** * Creates an instance of UmbStylesheetItemServerDataSource. @@ -22,19 +26,42 @@ export class UmbStylesheetItemServerDataSource implements UmbItemDataSource} paths + * Fetches the items for the given uniques from the server + * @param {Array} uniques * @return {*} * @memberof UmbStylesheetItemServerDataSource */ - async getItems(paths: Array) { - if (!paths) throw new Error('Paths are missing'); + async getItems(uniques: Array) { + if (!uniques) throw new Error('Uniques are missing'); - return tryExecuteAndNotify( + const paths = uniques + .map((unique) => { + const serverPath = this.#serverFilePathUniqueSerializer.toServerPath(unique); + return serverPath ? encodeURI(serverPath) : null; + }) + .filter((x) => x !== null) as string[]; + + const { data, error } = await tryExecuteAndNotify( this.#host, StylesheetResource.getStylesheetItem({ path: paths, }), ); + + if (data) { + const items: Array = data.map((item) => { + return { + entityType: item.isFolder ? UMB_STYLESHEET_FOLDER_ENTITY_TYPE : UMB_STYLESHEET_ENTITY_TYPE, + unique: this.#serverFilePathUniqueSerializer.toUnique(item.path), + parentUnique: item.parent ? this.#serverFilePathUniqueSerializer.toUnique(item.parent.path) : null, + name: item.name, + isFolder: item.isFolder, + }; + }); + + return { data: items }; + } + + return { error }; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts index 661cc27988..e6e463676f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts @@ -1,16 +1,16 @@ -import type { StylesheetItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbStylesheetItemModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFileSystemItemStore } from '@umbraco-cms/backoffice/store'; +import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; /** * @export * @class UmbStylesheetItemStore - * @extends {UmbFileSystemItemStore} + * @extends {UmbItemStoreBase} * @description - Data Store for Stylesheet items */ -export class UmbStylesheetItemStore extends UmbFileSystemItemStore { +export class UmbStylesheetItemStore extends UmbItemStoreBase { /** * Creates an instance of UmbStylesheetItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts index 3e78f68010..91c8e771aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetEntityType } from './entity.js'; +import { UmbStylesheetEntityType, UmbStylesheetFolderEntityType } from './entity.js'; export interface UmbStylesheetDetailModel { entityType: UmbStylesheetEntityType; @@ -9,6 +9,14 @@ export interface UmbStylesheetDetailModel { content: string; } +export interface UmbStylesheetItemModel { + entityType: UmbStylesheetEntityType | UmbStylesheetFolderEntityType; + unique: string; + parentUnique: string | null; + name: string; + isFolder: boolean; +} + export interface UmbStylesheetRule { name: string; selector: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts index dbe169ea3b..260cad4dfa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts @@ -11,10 +11,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Template items */ -export class UmbTemplateItemStore - extends UmbStoreBase - implements UmbItemStore -{ +export class UmbTemplateItemStore extends UmbStoreBase { /** * Creates an instance of UmbTemplateItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts index 4b8731794d..a91a199546 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts @@ -11,10 +11,8 @@ import type { UserGroupItemResponseModel } from '@umbraco-cms/backoffice/backend * @description - Data Store for user group items */ -export class UmbUserGroupItemStore - extends UmbStoreBase - implements UmbItemStore -{ +// TODO: add UmbItemStoreInterface when changed to uniques +export class UmbUserGroupItemStore extends UmbStoreBase { /** * Creates an instance of UmbUserGroupItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts index a14bbf062d..93c0daf2d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts @@ -11,10 +11,8 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for user items */ -export class UmbUserItemStore - extends UmbStoreBase - implements UmbItemStore -{ +// TODO: add UmbItemStoreInterface when changed to uniques +export class UmbUserItemStore extends UmbStoreBase { /** * Creates an instance of UmbUserItemStore. * @param {UmbControllerHostElement} host From bdf40eb93245dfbe7c6ca0a56cfa26a1774c5c76 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:12:00 +0100 Subject: [PATCH 312/786] remove export --- .../src/packages/templating/stylesheets/components/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts index 0af23cccca..fc795a1da1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/manifests.ts @@ -1,3 +1,3 @@ import { manifests as stylesheetRuleInputManifests } from './stylesheet-rule-input/manifests.js'; -export const manifests = [...stylesheetPickerModalManifests, ...stylesheetRuleInputManifests]; +export const manifests = [...stylesheetRuleInputManifests]; From 8f37dfbd72b0c5b3c3e1b4ea9c1836bc40ca4692 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:12:48 +0100 Subject: [PATCH 313/786] remove interface --- .../media-types/repository/item/media-type-item.store.ts | 5 +---- .../src/packages/media/media/repository/media-item.store.ts | 5 +---- .../settings/languages/repository/language-item.store.ts | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts index 0149fb57f8..c0baeee168 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts @@ -11,10 +11,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Media Type items */ -export class UmbMediaTypeItemStore - extends UmbStoreBase - implements UmbItemStore -{ +export class UmbMediaTypeItemStore extends UmbStoreBase { /** * Creates an instance of UmbMediaTypeItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts index dfb11a94c3..9c18119c74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts @@ -11,10 +11,7 @@ import { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; * @description - Data Store for Media items */ -export class UmbMediaItemStore - extends UmbStoreBase - implements UmbItemStore -{ +export class UmbMediaItemStore extends UmbStoreBase { /** * Creates an instance of UmbMediaItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts index b92105c7ff..c94169e2a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts @@ -13,10 +13,7 @@ export const UMB_LANGUAGE_ITEM_STORE_CONTEXT_TOKEN = new UmbContextToken - implements UmbItemStore -{ +export class UmbLanguageItemStore extends UmbStoreBase { constructor(host: UmbControllerHostElement) { super( host, From cfa94e2659d2b762e77b73182d05fb58e5b1ab66 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:14:40 +0100 Subject: [PATCH 314/786] remove interfaces --- .../src/packages/core/store/entity-item.store.ts | 5 +---- .../repository/item/document-type-item.store.ts | 5 +---- .../documents/documents/repository/document-item.store.ts | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts index 1dd276bb6e..264c10ebb7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts @@ -10,10 +10,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Data Type items */ -export class UmbEntityItemStore - extends UmbStoreBase - implements UmbItemStore -{ +export class UmbEntityItemStore extends UmbStoreBase { /** * Creates an instance of UmbEntityItemStore. * @param {UmbControllerHost} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts index cfb43884f6..b8154ec27f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts @@ -11,10 +11,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Document Type items */ -export class UmbDocumentTypeItemStore - extends UmbStoreBase - implements UmbItemStore -{ +export class UmbDocumentTypeItemStore extends UmbStoreBase { /** * Creates an instance of UmbDocumentTypeItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts index 53248297d8..eb1f7a9572 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts @@ -11,10 +11,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Document items */ -export class UmbDocumentItemStore - extends UmbStoreBase - implements UmbItemStore -{ +export class UmbDocumentItemStore extends UmbStoreBase { /** * Creates an instance of UmbDocumentItemStore. * @param {UmbControllerHostElement} host From 77cbf2217212cf5788a875c598f65fd9e4e04db1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:19:22 +0100 Subject: [PATCH 315/786] extend entity item store --- .../packages/core/store/entity-item.store.ts | 4 ++-- .../item/document-type-item.store.ts | 14 +++----------- .../repository/document-item.store.ts | 14 +++----------- .../repository/item/media-type-item.store.ts | 17 ++++------------- .../media/media/repository/media-item.store.ts | 13 ++++--------- .../repository/template-item.store.ts | 14 +++----------- .../repository/user-group-item.store.ts | 18 ++++-------------- .../user/repository/item/user-item.store.ts | 13 ++++--------- 8 files changed, 27 insertions(+), 80 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts index 264c10ebb7..130c4a098d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts @@ -1,6 +1,6 @@ import { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -21,6 +21,6 @@ export class UmbEntityItemStore extends Um } items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id))); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts index b8154ec27f..302f550c6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts @@ -1,7 +1,7 @@ import { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbEntityItemStore, UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -11,22 +11,14 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Document Type items */ -export class UmbDocumentTypeItemStore extends UmbStoreBase { +export class UmbDocumentTypeItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbDocumentTypeItemStore. * @param {UmbControllerHostElement} host * @memberof UmbDocumentTypeItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts index eb1f7a9572..d186d8edf3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts @@ -1,7 +1,7 @@ import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbEntityItemStore, UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -11,22 +11,14 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Document items */ -export class UmbDocumentItemStore extends UmbStoreBase { +export class UmbDocumentItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbDocumentItemStore. * @param {UmbControllerHostElement} host * @memberof UmbDocumentItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts index c0baeee168..34ffd86057 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts @@ -1,32 +1,23 @@ import { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** * @export * @class UmbMediaTypeItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for Media Type items */ -export class UmbMediaTypeItemStore extends UmbStoreBase { +export class UmbMediaTypeItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbMediaTypeItemStore. * @param {UmbControllerHostElement} host * @memberof UmbMediaTypeItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts index 9c18119c74..91e7ee347f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts @@ -1,28 +1,23 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; import { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @export * @class UmbMediaItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for Media items */ -export class UmbMediaItemStore extends UmbStoreBase { +export class UmbMediaItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbMediaItemStore. * @param {UmbControllerHostElement} host * @memberof UmbMediaItemStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_MEDIA_ITEM_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_MEDIA_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts index 260cad4dfa..1a167d099b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts @@ -1,7 +1,7 @@ import { TemplateItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -11,22 +11,14 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Template items */ -export class UmbTemplateItemStore extends UmbStoreBase { +export class UmbTemplateItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbTemplateItemStore. * @param {UmbControllerHostElement} host * @memberof UmbTemplateItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_TEMPLATE_ITEM_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_TEMPLATE_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts index a91a199546..754573fab8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts @@ -1,33 +1,23 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; import type { UserGroupItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @export * @class UmbUserGroupItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for user group items */ -// TODO: add UmbItemStoreInterface when changed to uniques -export class UmbUserGroupItemStore extends UmbStoreBase { +export class UmbUserGroupItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbUserGroupItemStore. * @param {UmbControllerHostElement} host * @memberof UmbUserGroupItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts index 93c0daf2d3..8b8a1131eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts @@ -1,29 +1,24 @@ import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** * @export * @class UmbUserItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for user items */ // TODO: add UmbItemStoreInterface when changed to uniques -export class UmbUserItemStore extends UmbStoreBase { +export class UmbUserItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbUserItemStore. * @param {UmbControllerHostElement} host * @memberof UmbUserItemStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_USER_ITEM_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_USER_ITEM_STORE_CONTEXT.toString()); } } From 48e5ae4a1273ab2b5336eaee70ee8703a219bb06 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:19:47 +0100 Subject: [PATCH 316/786] remove unused import --- .../templating/templates/repository/template-item.store.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts index 1a167d099b..6f182fcea2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts @@ -2,12 +2,11 @@ import { TemplateItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** * @export * @class UmbTemplateItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for Template items */ From 5b1ac1ac1a27dc2b646e7ad09446167d0c1a8552 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:20:24 +0100 Subject: [PATCH 317/786] remove unused imports --- .../document-types/repository/item/document-type-item.store.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts index 302f550c6a..3092161136 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts @@ -1,8 +1,7 @@ import { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityItemStore, UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** * @export From 6994b2da3b511eeb6a1e4912ccc8498c76e14455 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:21:03 +0100 Subject: [PATCH 318/786] remove interface --- .../src/packages/core/store/file-system-item.store.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts index 51e27746d3..4bc832856f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts @@ -10,7 +10,7 @@ import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; * @description - Data Store for File system items */ -export class UmbFileSystemItemStore extends UmbStoreBase implements UmbItemStore { +export class UmbFileSystemItemStore extends UmbStoreBase { constructor(host: UmbControllerHost, storeAlias: string) { super(host, storeAlias, new UmbArrayState([], (x) => x.path)); } From b0e913a9dc405ef63ad9cc97ecdf1c4b0790a432 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:23:33 +0100 Subject: [PATCH 319/786] temp typescript fix --- .../packages/core/extension-registry/models/store.model.ts | 2 +- .../src/packages/core/repository/item/item-repository-base.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts index 870dc4b06e..71e4c08ca9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts @@ -10,6 +10,6 @@ export interface ManifestTreeStore extends ManifestApi> { type: 'treeStore'; } -export interface ManifestItemStore extends ManifestApi { +export interface ManifestItemStore extends ManifestApi> { type: 'itemStore'; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts index f7a3ca00bb..914d39403a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts @@ -7,7 +7,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbItemRepositoryBase extends UmbRepositoryBase implements UmbItemRepository { protected _init: Promise; - protected _itemStore?: UmbItemStore; + protected _itemStore?: UmbItemStore; #itemSource: UmbItemDataSource; constructor( @@ -19,7 +19,7 @@ export class UmbItemRepositoryBase extends UmbRepositoryBase imp this.#itemSource = new itemSource(host); this._init = this.consumeContext(itemStoreContextAlias, (instance) => { - this._itemStore = instance as UmbItemStore; + this._itemStore = instance as UmbItemStore; }).asPromise(); } From f1b01f456ac18498c2b4979204b3edbd37d821cd Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:48:36 +0100 Subject: [PATCH 320/786] add value getter and setter --- ...y-mce-stylesheets-configuration.element.ts | 31 ++++++++++--------- .../packages/templating/stylesheets/index.ts | 1 + 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts index e22e70d8d0..5861ab828f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts @@ -1,3 +1,4 @@ +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -6,6 +7,7 @@ import { UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbStylesheetInputElement } from '@umbraco-cms/backoffice/stylesheet'; /** * @element umb-property-editor-ui-tiny-mce-stylesheets-configuration @@ -15,31 +17,30 @@ export class UmbPropertyEditorUITinyMceStylesheetsConfigurationElement extends UmbLitElement implements UmbPropertyEditorUiElement { + private _value: Array = []; @property({ type: Array }) - value: string[] = []; + public get value(): Array { + if (!this._value) return []; + return this._value.map((unique) => this.#serverFilePathUniqueSerializer.toServerPath(unique)) as string[]; + } + public set value(value: Array) { + if (!value) return; + this._value = value.map((unique) => this.#serverFilePathUniqueSerializer.toUnique(unique)); + } @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; + #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); + #onChange(event: CustomEvent) { - debugger; - const checkbox = event.target as HTMLInputElement; - - if (checkbox.checked) { - if (this.value) { - this.value = [...this.value, checkbox.value]; - } else { - this.value = [checkbox.value]; - } - } else { - this.value = this.value.filter((v) => v !== checkbox.value); - } - + const target = event.target as UmbStylesheetInputElement; + this._value = target.selectedIds; this.dispatchEvent(new UmbPropertyValueChangeEvent()); } render() { - return html``; + return html``; } static styles = [UmbTextStyles, css``]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts index c342f87b9c..a1a95ba847 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts @@ -3,3 +3,4 @@ export { UmbStylesheetTreeRepository } from './tree/index.js'; // Components export { UmbStylesheetRuleInputElement } from './components/index.js'; +export { UmbStylesheetInputElement } from './components/index.js'; From 117f80806a5b740dbeff5797d1ac9ee1948df47b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:52:56 +0100 Subject: [PATCH 321/786] remove stylesheet overview logic --- .../mocks/data/stylesheet/stylesheet.db.ts | 21 -------- .../src/mocks/handlers/stylesheet/index.ts | 10 +--- .../handlers/stylesheet/overview.handlers.ts | 16 ------ .../stylesheets/collection/index.ts | 1 - .../stylesheets/collection/manifests.ts | 3 -- .../collection/repository/index.ts | 1 - .../collection/repository/manifests.ts | 13 ----- .../stylesheet-collection.repository.ts | 24 --------- ...tylesheet-collection.server.data-source.ts | 51 ------------------- .../stylesheets/collection/types.ts | 16 ------ .../templating/stylesheets/manifests.ts | 2 - 11 files changed, 1 insertion(+), 157 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index 7c46592e1e..da40be31da 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -3,14 +3,7 @@ import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detai import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folder.manager.js'; import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; -import { textFileItemMapper } from '../utils.js'; import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; -import { PagedStylesheetOverviewResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -interface UmbMockPaginationModel { - skip?: number; - take?: number; -} class UmbStylesheetMockDb extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); @@ -21,20 +14,6 @@ class UmbStylesheetMockDb extends UmbFileSystemMockDbBase) { super(data); } - - getOverview(filterOptions: UmbMockPaginationModel = { skip: 0, take: 100 }): PagedStylesheetOverviewResponseModel { - const mockItems = this.getData(); - const files = mockItems.filter((item) => item.isFolder === false); - const paginatedFiles = files.slice(filterOptions.skip, filterOptions.skip! + filterOptions.take!); - const responseItems = paginatedFiles.map((item) => { - return { - name: item.name, - path: item.path, - }; - }); - - return { items: responseItems, total: mockItems.length }; - } } export const umbStylesheetMockDb = new UmbStylesheetMockDb(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts index 6e30e733db..34d8d576a3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/index.ts @@ -2,14 +2,6 @@ import { folderHandlers } from './folder.handlers.js'; import { treeHandlers } from './tree.handlers.js'; import { detailHandlers } from './detail.handlers.js'; import { itemHandlers } from './item.handlers.js'; -import { overviewHandlers } from './overview.handlers.js'; import { renameHandlers } from './rename.handlers.js'; -export const handlers = [ - ...treeHandlers, - ...itemHandlers, - ...folderHandlers, - ...overviewHandlers, - ...renameHandlers, - ...detailHandlers, -]; +export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...renameHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts deleted file mode 100644 index 0e914a3218..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/overview.handlers.ts +++ /dev/null @@ -1,16 +0,0 @@ -const { rest } = window.MockServiceWorker; -import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; -import { UMB_SLUG } from './slug.js'; -import { umbracoPath } from '@umbraco-cms/backoffice/utils'; - -export const overviewHandlers = [ - rest.get(umbracoPath(`${UMB_SLUG}/overview`), async (req, res, ctx) => { - const skipParam = req.url.searchParams.get('skip'); - const takeParam = req.url.searchParams.get('take'); - const response = umbStylesheetMockDb.getOverview({ - skip: skipParam ? parseInt(skipParam) : undefined, - take: takeParam ? parseInt(takeParam) : undefined, - }); - return res(ctx.status(200), ctx.json(response)); - }), -]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts deleted file mode 100644 index 3d76f338dd..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './repository/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts deleted file mode 100644 index 4e1826b900..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/manifests.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { manifests as repositoryManifests } from './repository/manifests.js'; - -export const manifests = [...repositoryManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts deleted file mode 100644 index 0759be3e3d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './stylesheet-collection.repository.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts deleted file mode 100644 index 67222a98a1..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/manifests.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { UmbStylesheetCollectionRepository } from './stylesheet-collection.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; - -export const UMB_STYLESHEET_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Collection'; - -const repository: ManifestRepository = { - type: 'repository', - alias: UMB_STYLESHEET_COLLECTION_REPOSITORY_ALIAS, - name: 'Stylesheet Collection Repository', - api: UmbStylesheetCollectionRepository, -}; - -export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts deleted file mode 100644 index 3cfee0de5d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.repository.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { UmbStylesheetCollectionFilterModel, UmbStylesheetCollectionItemModel } from '../types.js'; -import { UmbStylesheetCollectionServerDataSource } from './stylesheet-collection.server.data-source.js'; -import { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; - -export class UmbStylesheetCollectionRepository extends UmbBaseController implements UmbCollectionRepository { - #collectionSource: UmbCollectionDataSource; - - constructor(host: UmbControllerHost) { - super(host); - this.#collectionSource = new UmbStylesheetCollectionServerDataSource(this._host); - } - - /** - * Requests the stylesheet collection - * @param {UmbStylesheetCollectionFilterModel} [filter={ take: 100, skip: 0 }] - * @return {*} - * @memberof UmbStylesheetCollectionRepository - */ - requestCollection(filter: UmbStylesheetCollectionFilterModel = { take: 100, skip: 0 }) { - return this.#collectionSource.getCollection(filter); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts deleted file mode 100644 index fb4f7e78a8..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/repository/stylesheet-collection.server.data-source.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbStylesheetCollectionFilterModel, UmbStylesheetCollectionItemModel } from '../types.js'; -import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; - -/** - * A data source for the Stylesheet collection that fetches data from the server - * @export - * @class UmbStylesheetCollectionServerDataSource - * @implements {RepositoryDetailDataSource} - */ -export class UmbStylesheetCollectionServerDataSource - implements UmbCollectionDataSource -{ - #host: UmbControllerHost; - #serverFilePathUniqueSerializer = new UmbServerFilePathUniqueSerializer(); - - /** - * Creates an instance of UmbStylesheetCollectionServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbStylesheetCollectionServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Gets the stylesheet collection items from the server - * @param {UmbStylesheetCollectionFilterModel} filter - * @return {*} - * @memberof UmbStylesheetCollectionServerDataSource - */ - async getCollection(filter: UmbStylesheetCollectionFilterModel) { - const { data, error } = await tryExecuteAndNotify(this.#host, StylesheetResource.getStylesheetOverview(filter)); - - if (data) { - const items: Array = data.items.map((item) => { - return { - name: item.name, - unique: this.#serverFilePathUniqueSerializer.toUnique(item.path), - }; - }); - - return { data: { items, total: data.total } }; - } - - return { error }; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts deleted file mode 100644 index ade7c382f5..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/collection/types.ts +++ /dev/null @@ -1,16 +0,0 @@ -export interface UmbStylesheetCollectionFilterModel { - /** - * The number of items to take. - */ - take?: number; - - /** - * The number of items to skip. - */ - skip?: number; -} - -export interface UmbStylesheetCollectionItemModel { - name: string; - unique: string; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts index 9338615157..1c9fbda363 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/manifests.ts @@ -3,7 +3,6 @@ import { manifests as menuItemManifests } from './menu-item/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { manifests as entityActionManifests } from './entity-actions/manifests.js'; -import { manifests as collectionManifests } from './collection/manifests.js'; import { manifests as componentManifests } from './components/manifests.js'; export const manifests = [ @@ -12,6 +11,5 @@ export const manifests = [ ...treeManifests, ...workspaceManifests, ...entityActionManifests, - ...collectionManifests, ...componentManifests, ]; From 8653135a7a1b34ff03fca22e8309dc6222b2ef49 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 16:12:21 +0100 Subject: [PATCH 322/786] export stylesheet rule manager --- .../src/packages/templating/stylesheets/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts index a1a95ba847..6e0cc9742a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/index.ts @@ -4,3 +4,6 @@ export { UmbStylesheetTreeRepository } from './tree/index.js'; // Components export { UmbStylesheetRuleInputElement } from './components/index.js'; export { UmbStylesheetInputElement } from './components/index.js'; + +// Utils +export { UmbStylesheetRuleManager } from './utils/index.js'; From b39e85e4d2ad77bf6e61034ad08dca2c35c17070 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 16:12:48 +0100 Subject: [PATCH 323/786] user client side stylesheet rule manager to extract rules --- .../input-tiny-mce/input-tiny-mce.element.ts | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 5972303cab..cd0832c328 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -1,8 +1,8 @@ +import { umbMeta } from '@umbraco-cms/backoffice/meta'; import { defaultFallbackConfig } from './input-tiny-mce.defaults.js'; import { pastePreProcessHandler } from './input-tiny-mce.handlers.js'; import { availableLanguages } from './input-tiny-mce.languages.js'; import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js'; -import { umbMeta } from '@umbraco-cms/backoffice/meta'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { type Editor, type RawEditorOptions, renderEditor } from '@umbraco-cms/backoffice/external/tinymce'; import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; @@ -22,7 +22,7 @@ import { UmbMediaHelper } from '@umbraco-cms/backoffice/utils'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; -import { UmbStylesheetDetailRepository } from '@umbraco-cms/backoffice/stylesheet'; +import { UmbStylesheetDetailRepository, UmbStylesheetRuleManager } from '@umbraco-cms/backoffice/stylesheet'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-input-tiny-mce') @@ -38,6 +38,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { #editorRef?: Editor | null = null; #stylesheetRepository?: UmbStylesheetDetailRepository; #serverUrl?: string; + #umbStylesheetRuleManager = new UmbStylesheetRuleManager(); protected getFormElement() { return this._editorElement?.querySelector('iframe') ?? undefined; @@ -93,12 +94,15 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { } } - async getFormatStyles(stylesheetPath: Array) { + async getFormatStyles(stylesheetPaths: Array) { const rules: any[] = []; - stylesheetPath.forEach((path) => { - this.#stylesheetRepository?.getStylesheetRules(path).then(({ data }) => { - data?.rules?.forEach((rule) => { + stylesheetPaths.forEach((path) => { + this.#stylesheetRepository?.requestByUnique(path).then(({ data }) => { + if (!data) return; + const rulesFromContent = this.#umbStylesheetRuleManager.extractRules(data.content); + + rulesFromContent.forEach((rule) => { const r: { title?: string; inline?: string; @@ -140,12 +144,14 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { async #setTinyConfig() { const dimensions = this.configuration?.getValueByAlias<{ width?: number; height?: number }>('dimensions'); + const stylesheetPaths = this.configuration?.getValueByAlias('stylesheets') ?? []; + const styleFormats = await this.getFormatStyles(stylesheetPaths); + // Map the stylesheets with server url const stylesheets = - this.configuration - ?.getValueByAlias('stylesheets') - ?.map((stylesheetPath: string) => `${this.#serverUrl}/css/${stylesheetPath.replace(/\\/g, '/')}`) ?? []; - const styleFormats = await this.getFormatStyles(stylesheets); + stylesheetPaths?.map( + (stylesheetPath: string) => `${this.#serverUrl}/css/${stylesheetPath.replace(/\\/g, '/')}`, + ) ?? []; // create an object by merging the configuration onto the fallback config const configurationOptions: RawEditorOptions = { From 7d456dbfb17ec0097858d6434e8b1990ca74f472 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 16:26:57 +0100 Subject: [PATCH 324/786] await stylesheet requests --- .../input-tiny-mce/input-tiny-mce.element.ts | 76 ++++++++++--------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index cd0832c328..9015e3a44a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -36,7 +36,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { #mediaHelper = new UmbMediaHelper(); #plugins: Array UmbTinyMcePluginBase> = []; #editorRef?: Editor | null = null; - #stylesheetRepository?: UmbStylesheetDetailRepository; + #stylesheetRepository: UmbStylesheetDetailRepository; #serverUrl?: string; #umbStylesheetRuleManager = new UmbStylesheetRuleManager(); @@ -95,50 +95,52 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { } async getFormatStyles(stylesheetPaths: Array) { - const rules: any[] = []; + if (!stylesheetPaths) return []; + const formatStyles: any[] = []; - stylesheetPaths.forEach((path) => { - this.#stylesheetRepository?.requestByUnique(path).then(({ data }) => { - if (!data) return; - const rulesFromContent = this.#umbStylesheetRuleManager.extractRules(data.content); + const promises = stylesheetPaths.map((path) => this.#stylesheetRepository?.requestByUnique(path)); + const stylesheetResponses = await Promise.all(promises); - rulesFromContent.forEach((rule) => { - const r: { - title?: string; - inline?: string; - classes?: string; - attributes?: Record; - block?: string; - } = { - title: rule.name, - }; + stylesheetResponses.forEach(({ data }) => { + if (!data) return; + const rulesFromContent = this.#umbStylesheetRuleManager.extractRules(data.content); - if (!rule.selector) return; + rulesFromContent.forEach((rule) => { + const r: { + title?: string; + inline?: string; + classes?: string; + attributes?: Record; + block?: string; + } = { + title: rule.name, + }; - if (rule.selector.startsWith('.')) { - r.inline = 'span'; - r.classes = rule.selector.substring(1); - } else if (rule.selector.startsWith('#')) { - r.inline = 'span'; - r.attributes = { id: rule.selector.substring(1) }; - } else if (rule.selector.includes('.')) { - const [block, ...classes] = rule.selector.split('.'); - r.block = block; - r.classes = classes.join(' ').replace(/\./g, ' '); - } else if (rule.selector.includes('#')) { - const [block, id] = rule.selector.split('#'); - r.block = block; - r.classes = id; - } else { - r.block = rule.selector; - } + if (!rule.selector) return; - rules.push(r); - }); + if (rule.selector.startsWith('.')) { + r.inline = 'span'; + r.classes = rule.selector.substring(1); + } else if (rule.selector.startsWith('#')) { + r.inline = 'span'; + r.attributes = { id: rule.selector.substring(1) }; + } else if (rule.selector.includes('.')) { + const [block, ...classes] = rule.selector.split('.'); + r.block = block; + r.classes = classes.join(' ').replace(/\./g, ' '); + } else if (rule.selector.includes('#')) { + const [block, id] = rule.selector.split('#'); + r.block = block; + r.classes = id; + } else { + r.block = rule.selector; + } + + formatStyles.push(r); }); }); - return rules; + return formatStyles; } async #setTinyConfig() { From 90a21748ccd03931240827f36361548ad105d26a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 16:32:18 +0100 Subject: [PATCH 325/786] fix type error --- .../mocks/data/file-system/file-system-tree.manager.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts index 7d8fc4aed1..ff392ea446 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts @@ -5,21 +5,24 @@ import { PagedFileSystemTreeItemPresentationModel, } from '@umbraco-cms/backoffice/backend-api'; -export class UmbMockFileSystemTreeManager> { +export class UmbMockFileSystemTreeManager> { #db: UmbData; constructor(mockDb: UmbData) { this.#db = mockDb; } - getRoot(): PagedFileSystemTreeItemPresentationModel { + getRoot(): { items: Array>; total: number } { const items = this.#db.getData().filter((item) => item.parent === null); const treeItems = items.map((item) => createFileSystemTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getChildrenOf(parentPath: string): PagedFileSystemTreeItemPresentationModel { + getChildrenOf(parentPath: string): { + items: Array>; + total: number; + } { const items = this.#db.getData().filter((item) => item.parent?.path === parentPath); const treeItems = items.map((item) => createFileSystemTreeItem(item)); const total = items.length; From ec135d8590a7edb6328432ec446392747d6ee624 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 16:34:47 +0100 Subject: [PATCH 326/786] remove unused events --- .../detail/detail-repository-base.ts | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index ef60b07835..b0ccf7be0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -37,10 +37,6 @@ export abstract class UmbDetailRepositoryBase< this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { this.#notificationContext = instance; }).asPromise(), - - this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { - this.#actionEventContext = instance; - }).asPromise(), ]); } @@ -84,9 +80,6 @@ export abstract class UmbDetailRepositoryBase< if (!data) throw new Error('Data is missing'); await this.#init; - const requestEventData = { unique: data.unique, parentUnique: data.parentUnique }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-request', requestEventData)); - const { data: createdData, error } = await this.#detailSource.create(data); if (createdData) { @@ -95,13 +88,6 @@ export abstract class UmbDetailRepositoryBase< // TODO: how do we handle generic notifications? Is this the correct place to do it? const notification = { data: { message: `Created` } }; this.#notificationContext!.peek('positive', notification); - - const successEventData = { unique: createdData.unique, parentUnique: createdData.parentUnique }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-success', successEventData)); - } - - if (error) { - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-create-error', requestEventData)); } return { data: createdData, error }; @@ -118,9 +104,6 @@ export abstract class UmbDetailRepositoryBase< if (!data.unique) throw new Error('Unique is missing'); await this.#init; - const eventData = { unique: data.unique, parentUnique: data.parentUnique }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-save-request', eventData)); - const { data: updatedData, error } = await this.#detailSource.update(data); if (updatedData) { @@ -129,12 +112,6 @@ export abstract class UmbDetailRepositoryBase< // TODO: how do we handle generic notifications? Is this the correct place to do it? const notification = { data: { message: `Saved` } }; this.#notificationContext!.peek('positive', notification); - - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-save-success', eventData)); - } - - if (error) { - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-save-error', eventData)); } return { data, error }; @@ -150,9 +127,6 @@ export abstract class UmbDetailRepositoryBase< if (!unique) throw new Error('Unique is missing'); await this.#init; - const eventData = { unique, parentUnique: null }; - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-delete-request', eventData)); - const { error } = await this.#detailSource.delete(unique); if (!error) { @@ -161,12 +135,6 @@ export abstract class UmbDetailRepositoryBase< // TODO: how do we handle generic notifications? Is this the correct place to do it? const notification = { data: { message: `Deleted` } }; this.#notificationContext!.peek('positive', notification); - - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-delete-success', eventData)); - } - - if (error) { - this.#actionEventContext?.dispatchEvent(new UmbActionEvent('detail-delete-error', eventData)); } return { error }; From d075ad7fa7ffff13e6061b7836bbce2c1020be84 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 18:45:32 +0100 Subject: [PATCH 327/786] align media type folder creation --- ...media-type-create-options-modal.element.ts | 4 +- .../src/packages/media/media-types/entity.ts | 6 +- .../detail/media-type-detail.repository.ts | 180 +------------ .../media-type-detail.server.data-source.ts | 243 +++++++++++------- .../media-types/repository/folder/index.ts | 2 - .../repository/folder/manifests.ts | 13 - .../folder/media-type-folder.repository.ts | 86 ------- .../folder/media-type-folder.server.data.ts | 111 -------- .../media/media-types/repository/index.ts | 1 - .../media/media-types/repository/manifests.ts | 3 +- .../media/media-types/tree/folder/index.ts | 2 + .../media-types/tree/folder/manifests.ts | 44 ++++ .../folder/media-type-folder.repository.ts | 26 ++ .../media-type-folder.server.data-source.ts | 123 +++++++++ .../media/media-types/tree/folder/types.ts | 6 + .../packages/media/media-types/tree/index.ts | 1 + .../media/media-types/tree/manifests.ts | 4 +- .../tree/media-type-tree.repository.ts | 4 +- .../packages/media/media-types/tree/types.ts | 13 +- .../src/packages/media/media-types/types.ts | 27 ++ 20 files changed, 405 insertions(+), 494 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.repository.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.server.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index f65bce2728..6adab67b55 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -1,4 +1,4 @@ -import { MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../repository/index.js'; +import { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; import { UmbMediaTypeCreateOptionsModalData } from './index.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -33,7 +33,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_CREATE_MODAL, { data: { - folderRepositoryAlias: MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, + folderRepositoryAlias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, parentUnique: this.data?.parentKey, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity.ts index fdae21ac4a..2a3e91e50a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity.ts @@ -1,3 +1,7 @@ -export const UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE = 'media-type-root'; export const UMB_MEDIA_TYPE_ENTITY_TYPE = 'media-type'; +export const UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE = 'media-type-root'; export const UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE = 'media-type-folder'; + +export type UmbMediaTypeEntityType = typeof UMB_MEDIA_TYPE_ENTITY_TYPE; +export type UmbMediaTypeRootEntityType = typeof UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE; +export type UmbMediaTypeFolderEntityType = typeof UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts index d06016b560..9075fcf675 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts @@ -1,176 +1,10 @@ -import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT, UmbMediaTypeTreeStore } from '../../tree/media-type-tree.store.js'; -import { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT, UmbMediaTypeItemStore } from '../item/media-type-item.store.js'; +import { UmbMediaTypeDetailModel } from '../../types.js'; import { UmbMediaTypeServerDataSource } from './media-type-detail.server.data-source.js'; -import { UmbMediaTypeDetailStore, UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.js'; -import { type UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { - CreateMediaTypeRequestModel, - MediaTypeResponseModel, - UpdateMediaTypeRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; - -type ItemType = MediaTypeResponseModel; - -export class UmbMediaTypeDetailRepository - extends UmbBaseController - implements - UmbDetailRepository, - UmbApi -{ - #init!: Promise; - - #treeStore?: UmbMediaTypeTreeStore; - - #detailDataSource: UmbMediaTypeServerDataSource; - #detailStore?: UmbMediaTypeDetailStore; - - #itemStore?: UmbMediaTypeItemStore; - - #notificationContext?: UmbNotificationContext; - - constructor(host: UmbControllerHostElement) { - super(host); - - // TODO: figure out how spin up get the correct data source - this.#detailDataSource = new UmbMediaTypeServerDataSource(this); - - this.#init = Promise.all([ - this.consumeContext(UMB_MEDIA_TYPE_TREE_STORE_CONTEXT, (instance) => { - this.#treeStore = instance; - }), - - this.consumeContext(UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT, (instance) => { - this.#detailStore = instance; - }), - - this.consumeContext(UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT, (instance) => { - this.#itemStore = instance; - }), - - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { - this.#notificationContext = instance; - }), - ]); - } - - // DETAILS: - - async createScaffold(parentId: string | null) { - if (parentId === undefined) throw new Error('Parent id is missing'); - await this.#init; - - const { data } = await this.#detailDataSource.createScaffold(parentId); - - if (data) { - this.#detailStore?.append(data); - } - - return { data }; - } - - async requestById(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - - const { data, error } = await this.#detailDataSource.read(id); - - if (data) { - this.#detailStore?.append(data); - } - - return { data, error, asObservable: () => this.#detailStore!.byId(id) }; - } - - async byId(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - return this.#detailStore!.byId(id); - } - - // Could potentially be general methods: - - async create(mediaType: ItemType) { - if (!mediaType || !mediaType.id) throw new Error('Media Type is missing'); - await this.#init; - - const { error } = await this.#detailDataSource.create(mediaType); - - if (!error) { - this.#detailStore?.append(mediaType); - const treeItem = createTreeItem(mediaType); - this.#treeStore?.append(treeItem); - - const notification = { data: { message: `Media Type created` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; - } - - async save(id: string, item: UpdateMediaTypeRequestModel) { - if (!id) throw new Error('Id is missing'); - if (!item) throw new Error('Item is missing'); - - await this.#init; - - const { error } = await this.#detailDataSource.update(id, item); - - if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server - // Consider notify a workspace if a template is updated in the store while someone is editing it. - this.#detailStore?.updateItem(id, item); - this.#treeStore?.updateItem(id, item); - this.#itemStore?.updateItem(id, item); - - const notification = { data: { message: `Media Type saved` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; - } - - // General: - async delete(id: string) { - if (!id) throw new Error('Media Type id is missing'); - await this.#init; - - const { error } = await this.#detailDataSource.delete(id); - - if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server. - // Consider notify a workspace if a template is deleted from the store while someone is editing it. - // TODO: would be nice to align the stores on methods/methodNames. - this.#detailStore?.removeItem(id); - this.#treeStore?.removeItem(id); - this.#itemStore?.removeItem(id); - - const notification = { data: { message: `Media Type deleted` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; +import { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.js'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; +export class UmbMediaTypeDetailRepository extends UmbDetailRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbMediaTypeServerDataSource, UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT); } } - -export const createTreeItem = (item: ItemType): UmbEntityTreeItemModel => { - if (!item) throw new Error('item is null or undefined'); - if (!item.id) throw new Error('item.id is null or undefined'); - - // TODO: needs parentID, this is missing in the current model. Should be good when updated to a createModel. - return { - entityType: 'media-type', - parentId: null, - name: item.name, - id: item.id, - isFolder: false, - isContainer: false, - hasChildren: false, - }; -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index 0e4d12fe2c..e4432525e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -1,13 +1,14 @@ -import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; +import { UmbMediaTypeDetailModel } from '../../types.js'; +import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../../entity.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; import { CreateMediaTypeRequestModel, MediaTypeResource, - MediaTypeResponseModel, UpdateMediaTypeRequestModel, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbId } from '@umbraco-cms/backoffice/id'; /** * A data source for the Media Type that fetches data from the server @@ -15,133 +16,183 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; * @class UmbMediaTypeServerDataSource * @implements {RepositoryDetailDataSource} */ -export class UmbMediaTypeServerDataSource - implements UmbDataSource -{ +export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; /** - * Creates an instance of UmbMediaServerDataSource. + * Creates an instance of UmbMediaTypeServerDataSource. * @param {UmbControllerHost} host - * @memberof UmbMediaServerDataSource + * @memberof UmbMediaTypeServerDataSource */ constructor(host: UmbControllerHost) { this.#host = host; } /** - * Fetches a Media with the given id from the server - * @param {string} id - * @return {*} + * Creates a new Media Type scaffold + * @param {(string | null)} parentUnique + * @return { CreateMediaTypeRequestModel } * @memberof UmbMediaTypeServerDataSource */ - async read(id: string) { - if (!id) { - throw new Error('Id is missing'); - } - - return tryExecuteAndNotify( - this.#host, - MediaTypeResource.getMediaTypeById({ - id: id, - }), - ); - } - - /** - * Creates a new Media scaffold - * @param {(string | null)} parentId - * @return {*} - * @memberof UmbMediaTypeServerDataSource - */ - async createScaffold(parentId: string | null) { - //, parentId: string | null - const data: MediaTypeResponseModel = { - id: UmbId.new(), - //parentId: parentId, + async createScaffold(parentUnique: string | null) { + const data: UmbMediaTypeDetailModel = { + entityType: UMB_MEDIA_TYPE_ENTITY_TYPE, + unique: UmbId.new(), + parentUnique, name: '', alias: '', description: '', - icon: 'icon-picture', + icon: '', allowedAsRoot: false, variesByCulture: false, variesBySegment: false, isElement: false, - allowedContentTypes: [], - compositions: [], + containerId: null, properties: [], containers: [], + allowedContentTypes: [], + compositions: [], }; return { data }; } /** - * Creates a new Media Type on the server - * @param {CreateMediaTypeRequestModel} mediaType + * Fetches a Media Type with the given id from the server + * @param {string} unique * @return {*} * @memberof UmbMediaTypeServerDataSource */ - async create(mediaType: CreateMediaTypeRequestModel) { + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const { data, error } = await tryExecuteAndNotify(this.#host, MediaTypeResource.getMediaTypeById({ id: unique })); + + if (error || !data) { + return { error }; + } + + // TODO: make data mapper to prevent errors + const mediaType: UmbMediaTypeDetailModel = { + entityType: UMB_MEDIA_TYPE_ENTITY_TYPE, + unique: data.id, + parentUnique: data.containerId, + name: data.name, + alias: data.alias, + description: data.description || null, + icon: data.icon, + allowedAsRoot: data.allowedAsRoot, + variesByCulture: data.variesByCulture, + variesBySegment: data.variesBySegment, + isElement: data.isElement, + containerId: data.containerId, + properties: data.properties, + containers: data.containers, + allowedContentTypes: data.allowedContentTypes, + compositions: data.compositions, + }; + + return { data: mediaType }; + } + + /** + * Inserts a new Media Type on the server + * @param {UmbMediaTypeDetailModel} mediaType + * @return {*} + * @memberof UmbMediaTypeServerDataSource + */ + async create(mediaType: UmbMediaTypeDetailModel) { if (!mediaType) throw new Error('Media Type is missing'); - return tryExecuteAndNotify( + if (!mediaType.unique) throw new Error('Media Type unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: CreateMediaTypeRequestModel = { + alias: mediaType.alias, + name: mediaType.name, + description: mediaType.description, + icon: mediaType.icon, + allowedAsRoot: mediaType.allowedAsRoot, + variesByCulture: mediaType.variesByCulture, + variesBySegment: mediaType.variesBySegment, + isElement: mediaType.isElement, + properties: mediaType.properties, + containers: mediaType.containers, + allowedContentTypes: mediaType.allowedContentTypes, + compositions: mediaType.compositions, + id: mediaType.unique, + containerId: mediaType.parentUnique, + }; + + const { error: createError } = await tryExecuteAndNotify( this.#host, MediaTypeResource.postMediaType({ - requestBody: mediaType, + requestBody, + }), + ); + + if (createError) { + return { error: createError }; + } + + // We have to fetch the data type again. The server can have modified the data after creation + return this.read(mediaType.unique); + } + + /** + * Updates a MediaType on the server + * @param {UmbMediaTypeDetailModel} MediaType + * @return {*} + * @memberof UmbMediaTypeServerDataSource + */ + async update(data: UmbMediaTypeDetailModel) { + if (!data.unique) throw new Error('Unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: UpdateMediaTypeRequestModel = { + alias: data.alias, + name: data.name, + description: data.description, + icon: data.icon, + allowedAsRoot: data.allowedAsRoot, + variesByCulture: data.variesByCulture, + variesBySegment: data.variesBySegment, + isElement: data.isElement, + properties: data.properties, + containers: data.containers, + allowedContentTypes: data.allowedContentTypes, + compositions: data.compositions, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + MediaTypeResource.putMediaTypeById({ + id: data.unique, + requestBody, + }), + ); + + if (error) { + return { error }; + } + + // We have to fetch the data type again. The server can have modified the data after update + return this.read(data.unique); + } + + /** + * Deletes a Media Type on the server + * @param {string} unique + * @return {*} + * @memberof UmbMediaTypeServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + return tryExecuteAndNotify( + this.#host, + MediaTypeResource.deleteMediaTypeById({ + id: unique, }), ); } - - /** - * Updates a Media Type on the server - * @param {string} id - * @param {Media} mediaType - * @return {*} - * @memberof UmbMediaTypeServerDataSource - */ - async update(id: string, mediaType: UpdateMediaTypeRequestModel) { - if (!id) throw new Error('Id is missing'); - - mediaType = { ...mediaType }; - - // TODO: Hack to remove some props that ruins the media-type post end-point. - (mediaType as any).id = undefined; - - return tryExecuteAndNotify(this.#host, MediaTypeResource.putMediaTypeById({ id, requestBody: mediaType })); - } - - /** - * Deletes a Template on the server - * @param {string} id - * @return {*} - * @memberof UmbMediaTypeServerDataSource - */ - async delete(id: string) { - if (!id) { - throw new Error('Id is missing'); - } - - // TODO: Hack the type to avoid type-error here: - return tryExecuteAndNotify(this.#host, MediaTypeResource.deleteMediaTypeById({ id })) as any; - } - - /** - * Get the allowed media types for a given parent id - * @param {string} id - * @return {*} - * @memberof UmbMediaTypeServerDataSource - */ - async getAllowedChildrenOf(id: string) { - if (!id) throw new Error('Id is missing'); - - return tryExecuteAndNotify( - this.#host, - fetch(`/umbraco/management/api/v1/media-type/allowed-children-of/${id}`, { - method: 'GET', - headers: { - 'Content-Type': 'application/json', - }, - }).then((res) => res.json()), - ); - } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/index.ts deleted file mode 100644 index 9f104e5a13..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js'; -export { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS as MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/manifests.ts deleted file mode 100644 index 3c5228286d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/manifests.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js'; -import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; - -export const UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Folder'; - -const folderRepository: ManifestRepository = { - type: 'repository', - alias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, - name: 'Media Type Folder Repository', - api: UmbMediaTypeFolderRepository, -}; - -export const manifests = [folderRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.repository.ts deleted file mode 100644 index b7178b26e6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.repository.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { createFolderTreeItem } from '../utils.js'; -import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT, UmbMediaTypeTreeStore } from '../../tree/media-type-tree.store.js'; -import { UmbMediaTypeFolderServerDataSource } from './media-type-folder.server.data.js'; -import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { type UmbFolderRepository, type UmbFolderDataSource } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { CreateFolderRequestModel, FolderModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; -export class UmbMediaTypeFolderRepository extends UmbRepositoryBase implements UmbFolderRepository { - #init: Promise; - #folderSource: UmbFolderDataSource; - #treeStore?: UmbMediaTypeTreeStore; - #notificationContext?: UmbNotificationContext; - - constructor(host: UmbControllerHost) { - super(host); - this.#folderSource = new UmbMediaTypeFolderServerDataSource(this); - - this.#init = Promise.all([ - this.consumeContext(UMB_MEDIA_TYPE_TREE_STORE_CONTEXT, (instance) => { - this.#treeStore = instance; - }).asPromise(), - - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { - this.#notificationContext = instance; - }).asPromise(), - ]); - } - - async createFolderScaffold(parentId: string | null) { - if (parentId === undefined) throw new Error('Parent id is missing'); - await this.#init; - return this.#folderSource.createScaffold(parentId); - } - - // TODO: temp create type until backend is ready. Remove the id addition when new types are generated. - async createFolder(folderRequest: CreateFolderRequestModel) { - if (!folderRequest) throw new Error('folder request is missing'); - await this.#init; - - const { error } = await this.#folderSource.create(folderRequest); - - if (!error) { - // TODO: We need to push a new item to the tree store to update the tree. How do we want to create the tree items? - const folderTreeItem = createFolderTreeItem(folderRequest); - this.#treeStore!.append(folderTreeItem); - } - - return { error }; - } - - async deleteFolder(id: string) { - if (!id) throw new Error('Key is missing'); - await this.#init; - - const { error } = await this.#folderSource.delete(id); - - if (!error) { - this.#treeStore!.removeItem(id); - } - - return { error }; - } - - async updateFolder(id: string, folder: FolderModelBaseModel) { - if (!id) throw new Error('Key is missing'); - if (!folder) throw new Error('Folder data is missing'); - await this.#init; - - const { error } = await this.#folderSource.update(id, folder); - - if (!error) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - this.#treeStore!.updateItem(id, { name: folder.name }); - } - - return { error }; - } - - async requestFolder(id: string) { - if (!id) throw new Error('Key is missing'); - await this.#init; - return await this.#folderSource.read(id); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.server.data.ts deleted file mode 100644 index 56cb302343..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/folder/media-type-folder.server.data.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbFolderDataSource } from '@umbraco-cms/backoffice/tree'; -import { - MediaTypeResource, - FolderResponseModel, - CreateFolderRequestModel, - FolderModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for a Data Type folder that fetches data from the server - * @export - * @class UmbMediaTypeFolderServerDataSource - * @implements {RepositoryDetailDataSource} - */ -export class UmbMediaTypeFolderServerDataSource implements UmbFolderDataSource { - #host: UmbControllerHost; - - /** - * Creates an instance of UmbMediaTypeFolderServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbMediaTypeFolderServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Creates a Data Type folder with the given id from the server - * @param {string} parentId - * @return {*} - * @memberof UmbMediaTypeFolderServerDataSource - */ - async createScaffold(parentId: string | null) { - const scaffold: FolderResponseModel = { - name: '', - id: UmbId.new(), - parentId, - }; - - return { data: scaffold }; - } - - /** - * Fetches a Data Type folder with the given id from the server - * @param {string} id - * @return {*} - * @memberof UmbMediaTypeFolderServerDataSource - */ - async read(id: string) { - if (!id) throw new Error('Key is missing'); - return tryExecuteAndNotify( - this.#host, - MediaTypeResource.getMediaTypeFolderById({ - id: id, - }), - ); - } - - /** - * Inserts a new Data Type folder on the server - * @param {folder} folder - * @return {*} - * @memberof UmbMediaTypeFolderServerDataSource - */ - async create(folder: CreateFolderRequestModel) { - if (!folder) throw new Error('Folder is missing'); - return tryExecuteAndNotify( - this.#host, - MediaTypeResource.postMediaTypeFolder({ - requestBody: folder, - }), - ); - } - - /** - * Updates a Data Type folder on the server - * @param {folder} folder - * @return {*} - * @memberof UmbMediaTypeFolderServerDataSource - */ - async update(id: string, folder: FolderModelBaseModel) { - if (!id) throw new Error('Key is missing'); - if (!id) throw new Error('Folder data is missing'); - return tryExecuteAndNotify( - this.#host, - MediaTypeResource.putMediaTypeFolderById({ - id: id, - requestBody: folder, - }), - ); - } - - /** - * Deletes a Data Type folder with the given id on the server - * @param {string} id - * @return {*} - * @memberof UmbMediaTypeServerDataSource - */ - async delete(id: string) { - if (!id) throw new Error('Key is missing'); - return tryExecuteAndNotify( - this.#host, - MediaTypeResource.deleteMediaTypeFolderById({ - id: id, - }), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts index bc07bbbbd8..1f37e6d2ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/index.ts @@ -1,3 +1,2 @@ export * from './item/index.js'; export * from './detail/index.js'; -export * from './folder/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts index 168cc81b04..bb35952020 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/manifests.ts @@ -1,5 +1,4 @@ import { manifests as detailManifests } from './detail/manifests.js'; import { manifests as itemManifests } from './item/manifests.js'; -import { manifests as folderManifests } from './folder/manifests.js'; -export const manifests = [...detailManifests, ...itemManifests, ...folderManifests]; +export const manifests = [...detailManifests, ...itemManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/index.ts new file mode 100644 index 0000000000..a8cb89f93f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/index.ts @@ -0,0 +1,2 @@ +export { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js'; +export { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts new file mode 100644 index 0000000000..1b443a788a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts @@ -0,0 +1,44 @@ +import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js'; +import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Folder'; + +const folderRepository: ManifestRepository = { + type: 'repository', + alias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, + name: 'Media Type Folder Repository', + api: UmbMediaTypeFolderRepository, +}; + +const entityActions: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.MediaType.DeleteFolder', + name: 'Delete Media Type Folder Entity Action', + weight: 800, + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete Folder...', + repositoryAlias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.MediaType.RenameFolder', + name: 'Rename Media Type Folder Entity Action', + weight: 700, + api: UmbFolderUpdateEntityAction, + meta: { + icon: 'icon-edit', + label: 'Rename Folder...', + repositoryAlias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], + }, + }, +]; + +export const manifests = [folderRepository, ...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts new file mode 100644 index 0000000000..d04d867cd9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts @@ -0,0 +1,26 @@ +import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from '../index.js'; +import { UmbMediaTypeFolderServerDataSource } from './media-type-folder.server.data-source.js'; +import { UmbMediaTypeFolderTreeItemModel } from './types.js'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; + +export class UmbMediaTypeFolderRepository extends UmbFolderRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbMediaTypeFolderServerDataSource, UMB_MEDIA_TYPE_TREE_STORE_CONTEXT, folderToMediaTypeTreeItemMapper); + } +} + +const folderToMediaTypeTreeItemMapper = (folder: UmbFolderModel) => { + const folderTreeItem: UmbMediaTypeFolderTreeItemModel = { + unique: folder.unique, + parentUnique: folder.parentUnique, + name: folder.name, + entityType: UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE, + isContainer: false, + hasChildren: false, + isFolder: true, + }; + + return folderTreeItem; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts new file mode 100644 index 0000000000..0dd05854d0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts @@ -0,0 +1,123 @@ +import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for a Media Type folder that fetches data from the server + * @export + * @class UmbMediaTypeFolderServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbMediaTypeFolderServerDataSource implements UmbFolderDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbMediaTypeFolderServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbMediaTypeFolderServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Fetches a Media Type folder from the server + * @param {string} unique + * @return {*} + * @memberof UmbMediaTypeFolderServerDataSource + */ + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const { data, error } = await tryExecuteAndNotify( + this.#host, + MediaTypeResource.getMediaTypeFolderById({ + id: unique, + }), + ); + + if (data) { + const mappedData = { + unique: data.id, + name: data.name, + parentUnique: data.parentId || null, + }; + + return { data: mappedData }; + } + + return { error }; + } + + /** + * Creates a Media Type folder on the server + * @param {UmbCreateFolderModel} args + * @return {*} + * @memberof UmbMediaTypeFolderServerDataSource + */ + async create(args: UmbCreateFolderModel) { + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); + if (!args.name) throw new Error('Name is missing'); + + const requestBody = { + id: args.unique, + parentId: args.parentUnique, + name: args.name, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + MediaTypeResource.postMediaTypeFolder({ + requestBody, + }), + ); + + if (!error) { + return this.read(args.unique); + } + + return { error }; + } + + /** + * Updates a Media Type folder on the server + * @param {UmbUpdateFolderModel} args + * @return {*} + * @memberof UmbMediaTypeFolderServerDataSource + */ + async update(args: UmbUpdateFolderModel) { + if (!args.unique) throw new Error('Unique is missing'); + if (!args.name) throw new Error('Folder name is missing'); + + const { error } = await tryExecuteAndNotify( + this.#host, + MediaTypeResource.putMediaTypeFolderById({ + id: args.unique, + requestBody: { name: args.name }, + }), + ); + + if (!error) { + return this.read(args.unique); + } + + return { error }; + } + + /** + * Deletes a Media Type folder on the server + * @param {string} unique + * @return {*} + * @memberof UmbMediaTypeServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + return tryExecuteAndNotify( + this.#host, + MediaTypeResource.deleteMediaTypeFolderById({ + id: unique, + }), + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts new file mode 100644 index 0000000000..2bb3db97a8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts @@ -0,0 +1,6 @@ +import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbMediaTypeTreeItemModel } from '../types.js'; + +export interface UmbMediaTypeFolderTreeItemModel extends UmbMediaTypeTreeItemModel { + entityType: typeof UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/index.ts index c1e6582874..8f6cd31496 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/index.ts @@ -3,6 +3,7 @@ export { UMB_MEDIA_TYPE_TREE_STORE_ALIAS, UMB_MEDIA_TYPE_TREE_REPOSITORY_ALIAS, } from './manifests.js'; +export * from './folder/index.js'; export { UmbMediaTypeTreeRepository } from './media-type-tree.repository.js'; export { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts index 03cbfddbcf..857a8020b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts @@ -1,5 +1,7 @@ import { UmbMediaTypeTreeRepository } from './media-type-tree.repository.js'; import { UmbMediaTypeTreeStore } from './media-type-tree.store.js'; +import { manifests as folderManifests } from './folder/manifests.js'; + import type { ManifestRepository, ManifestTree, @@ -44,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts index 4ed8165529..022ff7222d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts @@ -15,8 +15,8 @@ export class UmbMediaTypeTreeRepository } async requestTreeRoot() { - const data = { - id: null, + const data: UmbMediaTypeTreeRootModel = { + unique: null, entityType: UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, name: 'Media Types', icon: 'icon-folder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts index 5e4acd4229..f19335e0cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts @@ -1,5 +1,10 @@ -import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import { UmbMediaTypeEntityType, UmbMediaTypeFolderEntityType, UmbMediaTypeRootEntityType } from '../entity.js'; +import { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbMediaTypeTreeItemModel extends UmbEntityTreeItemModel {} -// TODO: TREE STORE TYPE PROBLEM: -export interface UmbMediaTypeTreeRootModel extends UmbEntityTreeRootModel {} +export interface UmbMediaTypeTreeItemModel extends UmbUniqueTreeItemModel { + entityType: UmbMediaTypeEntityType | UmbMediaTypeFolderEntityType; +} + +export interface UmbMediaTypeTreeRootModel extends UmbUniqueTreeRootModel { + entityType: UmbMediaTypeRootEntityType; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts new file mode 100644 index 0000000000..4b2282d81a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts @@ -0,0 +1,27 @@ +import { UmbMediaTypeEntityType } from './entity.js'; +import { + ContentTypeCompositionModel, + ContentTypeSortModel, + MediaTypePropertyTypeContainerResponseModel, + MediaTypePropertyTypeResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbMediaTypeDetailModel { + entityType: UmbMediaTypeEntityType; + unique: string; + parentUnique: string | null; + name: string; + alias: string; + description: string | null; + icon: string; + allowedAsRoot: boolean; + variesByCulture: boolean; + variesBySegment: boolean; + isElement: boolean; + containerId: string | null; + // TODO: investigate if we need our own model for these + properties: Array; + containers: Array; + allowedContentTypes: Array; + compositions: Array; +} From 81b990ddce928bd0cb4278448ffcd2a63d76e960 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 18:49:48 +0100 Subject: [PATCH 328/786] use unique and add entity-type --- .../media-types/tree/media-type-tree.server.data-source.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts index a9d5a6761a..4b9c1824ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts @@ -1,3 +1,4 @@ +import { UMB_MEDIA_TYPE_ENTITY_TYPE, UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbMediaTypeTreeItemModel } from './types.js'; import { MediaTypeResource, MediaTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -43,10 +44,10 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: MediaTypeTreeItemResponseModel): UmbMediaTypeTreeItemModel => { return { - id: item.id, - parentId: item.parentId || null, + unique: item.id, + parentUnique: item.parentId || null, name: item.name, - entityType: 'media-type', + entityType: item.isFolder ? UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE : UMB_MEDIA_TYPE_ENTITY_TYPE, hasChildren: item.hasChildren, isContainer: item.isContainer, isFolder: item.isFolder, From bf99e20dc4272c65d09a2390faa2c5e6d25a7004 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 18:51:31 +0100 Subject: [PATCH 329/786] use unique tree item kind --- .../src/packages/media/media-types/tree/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts index 857a8020b6..74dbe22833 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts @@ -38,7 +38,7 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'entity', + kind: 'unique', alias: 'Umb.TreeItem.MediaType', name: 'Media Type Tree Item', meta: { From d3c8a3c361d53138c0b5c6b44a9c85d285bc07fa Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 18:51:43 +0100 Subject: [PATCH 330/786] Use unique tree store --- .../packages/media/media-types/tree/media-type-tree.store.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts index d00506352d..a9079bf019 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts @@ -1,6 +1,6 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; /** * @export @@ -8,7 +8,7 @@ import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; * @extends {UmbStoreBase} * @description - Tree Data Store for Media Types */ -export class UmbMediaTypeTreeStore extends UmbEntityTreeStore { +export class UmbMediaTypeTreeStore extends UmbUniqueTreeStore { /** * Creates an instance of UmbMediaTypeTreeStore. * @param {UmbControllerHostElement} host From 4cfc635d491751d72ef357bd23cfbeb747809fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 15 Jan 2024 19:05:18 +0100 Subject: [PATCH 331/786] simplify use of host argument --- .../workspace/workspace-split-view-manager.class.ts | 7 ------- .../documents/repository/document.repository.ts | 4 ++-- .../documents/workspace/document-workspace.context.ts | 11 ++++------- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts index ea72ed04e8..b7907e9277 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts @@ -1,5 +1,4 @@ import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; export type ActiveVariant = { @@ -14,15 +13,9 @@ export type ActiveVariant = { * @description - Class managing the split view state for a workspace context. */ export class UmbWorkspaceSplitViewManager { - #host: UmbControllerHostElement; - #activeVariantsInfo = new UmbArrayState([], (x) => x.index); public readonly activeVariantsInfo = this.#activeVariantsInfo.asObservable(); - constructor(host: UmbControllerHostElement) { - this.#host = host; - } - private _routeBase?: string; public getWorkspaceRoute(): string | undefined { return this._routeBase; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index 2604b0179a..e4d22685cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -4,7 +4,7 @@ import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.s import { UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, type UmbDocumentItemStore } from './document-item.store.js'; import { UmbDocumentItemServerDataSource } from './sources/document-item.server.data.js'; import type { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { DocumentResponseModel, @@ -33,7 +33,7 @@ export class UmbDocumentRepository #notificationContext?: UmbNotificationContext; - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host); // TODO: figure out how spin up get the correct data source diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 69cec97ecf..ad1b659f58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -17,7 +17,7 @@ import { UmbObjectState, UmbObserverController, } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; type EntityType = DocumentResponseModel; export class UmbDocumentWorkspaceContext @@ -50,15 +50,12 @@ export class UmbDocumentWorkspaceContext readonly structure; readonly splitView; - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { // TODO: Get Workspace Alias via Manifest. super(host, 'Umb.Workspace.Document', new UmbDocumentRepository(host)); - this.structure = new UmbContentTypePropertyStructureManager( - this.host, - new UmbDocumentTypeDetailRepository(this.host), - ); - this.splitView = new UmbWorkspaceSplitViewManager(this.host); + this.structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); + this.splitView = new UmbWorkspaceSplitViewManager(); new UmbObserverController(this.host, this.documentTypeKey, (id) => this.structure.loadType(id)); From 81bb5aa50a4c6a0c3e9f8c637b58099944bb7ed3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 19:07:31 +0100 Subject: [PATCH 332/786] clean up --- .../media-type-detail.server.data-source.ts | 4 +-- .../media-types/tree/media-type-tree.store.ts | 34 +++++++++++++++++++ .../src/packages/media/media-types/types.ts | 1 - 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index e4432525e0..dc1396a366 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -47,7 +47,6 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource( + host, + this, + UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT, + (item) => this.#createTreeItemMapper(item), + (item) => this.#updateTreeItemMapper(item), + ); } + + // TODO: revisit this when we have decided on detail model sizes + #createTreeItemMapper = (item: UmbMediaTypeDetailModel) => { + const treeItem: UmbMediaTypeTreeItemModel = { + unique: item.unique, + parentUnique: item.parentUnique, + name: item.name, + entityType: item.entityType, + isFolder: false, + isContainer: false, + hasChildren: false, + }; + + return treeItem; + }; + + // TODO: revisit this when we have decided on detail model sizes + #updateTreeItemMapper = (item: UmbMediaTypeDetailModel) => { + return { + name: item.name, + }; + }; } export const UMB_MEDIA_TYPE_TREE_STORE_CONTEXT = new UmbContextToken('UmbMediaTypeTreeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts index 4b2282d81a..49885f8cd1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts @@ -18,7 +18,6 @@ export interface UmbMediaTypeDetailModel { variesByCulture: boolean; variesBySegment: boolean; isElement: boolean; - containerId: string | null; // TODO: investigate if we need our own model for these properties: Array; containers: Array; From f806ed64d2bb5065171fb0747931c9fd1adc3037 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 19:10:20 +0100 Subject: [PATCH 333/786] remove unused --- .../packages/core/repository/detail/detail-repository-base.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index b0ccf7be0d..b5cb9b99d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -5,7 +5,6 @@ import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UMB_ACTION_EVENT_CONTEXT, UmbActionEvent, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; export abstract class UmbDetailRepositoryBase< DetailModelType extends { unique: string; entityType: string; parentUnique: string | null }, @@ -18,7 +17,6 @@ export abstract class UmbDetailRepositoryBase< #detailStore?: UmbDetailStore; #detailSource: UmbDetailDataSource; #notificationContext?: UmbNotificationContext; - #actionEventContext?: UmbActionEventContext; constructor( host: UmbControllerHost, From 1716073eab833458d0d7a3a9694b25b5b983f378 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 19:20:41 +0100 Subject: [PATCH 334/786] delete merge mistake --- ...workspace-view-rich-text-editor.element.ts | 158 ------------------ 1 file changed, 158 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.ts deleted file mode 100644 index 64908209ae..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-editor/stylesheet-workspace-view-rich-text-editor.element.ts +++ /dev/null @@ -1,158 +0,0 @@ -import { RichTextRuleModelSortable, UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; -import { UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR } from '../../manifests.js'; -import { StylesheetRichTextEditorStyleModalValue } from './stylesheet-workspace-view-rich-text-editor-style-sidebar.element.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext, UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { RichTextRuleModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; -import { css, html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; - -import './stylesheet-workspace-view-rich-text-editor-rule.element.js'; - -export const UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL = new UmbModalToken< - never, - StylesheetRichTextEditorStyleModalValue ->(UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR, { - modal: { - type: 'sidebar', - size: 'medium', - }, - value: { rule: null }, -}); - -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: RichTextRuleModel) => { - return element.getAttribute('data-umb-rule-name') === model.name; - }, - querySelectModelToElement: (container: HTMLElement, modelEntry: RichTextRuleModel) => { - return container.querySelector('[data-umb-rule-name' + modelEntry.name + ']'); - }, - identifier: 'stylesheet-rules-sorter', - itemSelector: 'umb-stylesheet-rich-text-editor-rule', - containerSelector: '#rules-container', -}; - -@customElement('umb-stylesheet-workspace-view-rich-text-editor') -export class UmbStylesheetWorkspaceViewRichTextEditorElement extends UmbLitElement { - @state() - _rules: RichTextRuleModelSortable[] = []; - - #context?: UmbStylesheetWorkspaceContext; - private _modalContext?: UmbModalManagerContext; - - #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, - // TODO: Implement correctly, this code below was not correct: - /* - performItemInsert: ({ item, newIndex }) => { - return this.#context?.findNewSortOrder(item, newIndex) ?? false; - }, - performItemRemove: () => { - //defined so the default does not run - return true; - }, - */ - // End of todo comment. - onChange: ({ model }) => { - const oldValue = this._rules; - this._rules = model; - this.requestUpdate('_rules', oldValue); - }, - }); - - constructor() { - super(); - - this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { - this.#context = workspaceContext as UmbStylesheetWorkspaceContext; - - this.observe(this.#context.rules, (rules) => { - this._rules = rules; - this.#sorter.setModel(this._rules); - }); - }); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this._modalContext = instance; - }); - } - - openModal = (rule: RichTextRuleModelSortable | null = null) => { - if (!this._modalContext) throw new Error('Modal context not found'); - const modal = this._modalContext.open(UMB_MODAL_TEMPLATING_STYLESHEET_RTF_STYLE_SIDEBAR_MODAL, { - value: { - rule, - }, - }); - modal?.onSubmit().then((result) => { - if (result.rule) { - this.#context?.setRules([...this._rules, { ...result.rule, sortOrder: this._rules.length }]); - } - }); - }; - - removeRule = (rule: RichTextRuleModelSortable) => { - const rules = this._rules?.filter((r) => r.name !== rule.name); - this.#context?.setRules(rules); - }; - - render() { - return html` -
-

Define the styles that should be available in the rich text editor for this stylesheet.

-
-
- ${repeat( - this._rules, - (rule) => rule?.name ?? '' + rule?.sortOrder ?? '', - (rule) => - html``, - )} -
- this.openModal(null)}>Add -
-
-
`; - } - - static styles = [ - UmbTextStyles, - css` - :host { - display: block; - width: 100%; - } - - #box-row { - display: flex; - gap: var(--uui-size-layout-1); - } - - #description { - margin-top: 0; - flex: 0 0 250px; - } - - #rules { - flex: 1 1 auto; - max-width: 600px; - } - - uui-box { - margin: var(--uui-size-layout-1); - } - `, - ]; -} - -export default UmbStylesheetWorkspaceViewRichTextEditorElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-stylesheet-workspace-view-rich-text-editor': UmbStylesheetWorkspaceViewRichTextEditorElement; - } -} From 468dd04b9667216b12322ff447dbe99cbccd69f3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 19:23:55 +0100 Subject: [PATCH 335/786] remove unused import --- .../core/components/input-tiny-mce/input-tiny-mce.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index ca4efd70b6..c9cad154fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -1,4 +1,3 @@ -import { umbMeta } from '@umbraco-cms/backoffice/meta'; import { defaultFallbackConfig } from './input-tiny-mce.defaults.js'; import { pastePreProcessHandler } from './input-tiny-mce.handlers.js'; import { availableLanguages } from './input-tiny-mce.languages.js'; From e483d3da118db5e715c1a7f7bf4c87f335a9da3c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 20:11:07 +0100 Subject: [PATCH 336/786] add unique to document type data --- .../data/document-type/document-type.data.ts | 21 +- .../data/document-type/document-type.db.ts | 170 +++++++++----- .../src/mocks/data/document.data.ts | 9 +- .../handlers/document-type/detail.handlers.ts | 46 ++-- .../src/mocks/handlers/document-type/index.ts | 6 +- .../handlers/document-type/item.handlers.ts | 6 +- .../handlers/document-type/tree.handlers.ts | 19 +- .../documents/document-types/entity.ts | 7 + .../detail/document-type-detail.repository.ts | 177 +------------- ...document-type-detail.server.data-source.ts | 215 ++++++++++++++++++ .../detail/document-type-detail.store.ts | 22 +- .../detail/document-type.server.data.ts | 155 ------------- .../tree/document-type-tree.repository.ts | 4 +- .../document-type.tree.server.data-source.ts | 7 +- .../tree/document-type.tree.store.ts | 6 +- .../document-types/tree/manifests.ts | 5 +- .../documents/document-types/tree/types.ts | 17 +- .../documents/document-types/types.ts | 30 +++ .../detail/media-type-detail.store.ts | 24 +- .../media-types/repository/detail/types.ts | 4 - 20 files changed, 449 insertions(+), 501 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type.server.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 921463a1ca..5331ef5c05 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -1,14 +1,18 @@ import { ContentTypeCompositionTypeModel, + DocumentTypeItemResponseModel, DocumentTypeResponseModel, DocumentTypeTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -export type UmbMockDocumentTypeModel = DocumentTypeResponseModel & DocumentTypeTreeItemResponseModel; +export type UmbMockDocumentTypeModelHack = DocumentTypeResponseModel & + DocumentTypeTreeItemResponseModel & + DocumentTypeItemResponseModel; + +export interface UmbMockDocumentTypeModel extends Omit {} export const data: Array = [ { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'all-property-editors-document-type-id', @@ -675,7 +679,6 @@ export const data: Array = [ variesByCulture: true, variesBySegment: false, isElement: false, - type: 'document-type', hasChildren: false, isContainer: false, parentId: null, @@ -732,7 +735,6 @@ export const data: Array = [ variesByCulture: true, variesBySegment: false, isElement: false, - type: 'document-type', hasChildren: false, isContainer: false, parentId: null, @@ -903,7 +905,6 @@ export const data: Array = [ variesByCulture: false, variesBySegment: false, isElement: false, - type: 'document-type', hasChildren: false, isContainer: false, parentId: null, @@ -959,7 +960,6 @@ export const data: Array = [ variesByCulture: false, variesBySegment: false, isElement: true, - type: 'document-type', hasChildren: false, isContainer: false, parentId: null, @@ -1015,7 +1015,6 @@ export const data: Array = [ variesByCulture: false, variesBySegment: false, isElement: true, - type: 'document-type', hasChildren: false, isContainer: false, parentId: null, @@ -1075,7 +1074,6 @@ export const data: Array = [ variesByCulture: false, variesBySegment: false, isElement: false, - type: 'document-type', hasChildren: false, isContainer: false, parentId: null, @@ -1134,7 +1132,6 @@ export const data: Array = [ variesByCulture: false, variesBySegment: false, isElement: false, - type: 'document-type', hasChildren: false, isContainer: false, parentId: null, @@ -1199,7 +1196,6 @@ export const data: Array = [ }, }, { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'folder-umbraco-demo-blocks-id', @@ -1226,7 +1222,6 @@ export const data: Array = [ containers: [], }, { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'coffee-umbraco-demo-block-id', @@ -1302,7 +1297,6 @@ export const data: Array = [ ], }, { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'headline-umbraco-demo-block-id', @@ -1358,7 +1352,6 @@ export const data: Array = [ ], }, { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'image-umbraco-demo-block-id', @@ -1414,7 +1407,6 @@ export const data: Array = [ ], }, { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'rich-text-umbraco-demo-block-id', @@ -1470,7 +1462,6 @@ export const data: Array = [ ], }, { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'two-column-layout-umbraco-demo-block-id', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index fa8540ac84..546af3a30e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -1,81 +1,131 @@ -import { UmbEntityData } from '../entity.data.js'; -import { createEntityTreeItem } from '../utils.js'; +import { UmbEntityMockDbBase } from '../entity/entity-base.js'; +import { UmbMockEntityFolderManager } from '../entity/entity-folder.manager.js'; +import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; +import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; +import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; import { UmbMockDocumentTypeModel, data } from './document-type.data.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; import { - DocumentTypeTreeItemResponseModel, - DocumentTypeResponseModel, + CreateDocumentTypeRequestModel, + CreateFolderRequestModel, DocumentTypeItemResponseModel, + DocumentTypeResponseModel, + DocumentTypeTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -class UmbDocumentTypeData extends UmbEntityData { - constructor() { +class UmbDocumentTypeMockDB extends UmbEntityMockDbBase { + tree = new UmbMockEntityTreeManager(this, documentTypeTreeItemMapper); + folder = new UmbMockEntityFolderManager(this, createMockDocumentTypeFolderMapper); + item = new UmbMockEntityItemManager(this, documentTypeItemMapper); + detail = new UmbMockEntityDetailManager( + this, + createMockDocumentTypeMapper, + documentTypeDetailMapper, + ); + + constructor(data: Array) { super(data); } - - // TODO: Can we do this smarter so we don't need to make this for each mock data: - insert(item: DocumentTypeResponseModel) { - const mockItem: UmbMockDocumentTypeModel = { - ...item, - type: 'document-type', - isContainer: false, - hasChildren: false, - isFolder: false, - }; - - super.insert(mockItem); - } - - update(id: string, item: DocumentTypeResponseModel) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - super.save(id, item); - } - - getTreeRoot(): Array { - const rootItems = this.data.filter((item) => item.parentId === null); - return rootItems.map((item) => createDocumentTypeTreeItem(item)); - } - - getTreeItemChildren(id: string): Array { - const childItems = this.data.filter((item) => item.parentId === id); - return childItems.map((item) => createDocumentTypeTreeItem(item)); - } - - getTreeItem(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => createDocumentTypeTreeItem(item)); - } - - getAllowedTypesOf(id: string): Array { - const documentType = this.getById(id); - const allowedTypeKeys = documentType?.allowedContentTypes?.map((documentType) => documentType.id) ?? []; - const items = this.data.filter((item) => allowedTypeKeys.includes(item.id ?? '')); - return items.map((item) => createDocumentTypeTreeItem(item)); - } - - getItems(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => createDocumentTypeItem(item)); - } } -export const createDocumentTypeTreeItem = (item: DocumentTypeResponseModel): DocumentTypeTreeItemResponseModel => { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore +const createMockDocumentTypeFolderMapper = (request: CreateFolderRequestModel): UmbMockDocumentTypeModel => { return { - ...createEntityTreeItem(item), - type: 'document-type', + name: request.name, + id: request.id ? request.id : UmbId.new(), + parentId: request.parentId, + description: '', + alias: '', + icon: '', + properties: [], + containers: [], + allowedAsRoot: false, + variesByCulture: false, + variesBySegment: false, + isElement: false, + allowedContentTypes: [], + compositions: [], + isFolder: true, + hasChildren: false, + isContainer: false, + allowedTemplateIds: [], + cleanup: { + preventCleanup: false, + keepAllVersionsNewerThanDays: null, + keepLatestVersionPerDayForDays: null, + }, + }; +}; + +const createMockDocumentTypeMapper = (request: CreateDocumentTypeRequestModel): UmbMockDocumentTypeModel => { + return { + name: request.name, + id: request.id ? request.id : UmbId.new(), + description: request.description, + alias: request.alias, + icon: request.icon, + properties: request.properties, + containers: request.containers, + allowedAsRoot: request.allowedAsRoot, + variesByCulture: request.variesByCulture, + variesBySegment: request.variesBySegment, + isElement: request.isElement, + allowedContentTypes: request.allowedContentTypes, + compositions: request.compositions, + parentId: request.containerId, + isFolder: false, + hasChildren: false, + isContainer: false, + allowedTemplateIds: [], + cleanup: { + preventCleanup: false, + keepAllVersionsNewerThanDays: null, + keepLatestVersionPerDayForDays: null, + }, + }; +}; + +const documentTypeDetailMapper = (item: UmbMockDocumentTypeModel): DocumentTypeResponseModel => { + return { + name: item.name, + id: item.id, + description: item.description, + alias: item.alias, + icon: item.icon, + properties: item.properties, + containers: item.containers, + allowedAsRoot: item.allowedAsRoot, + variesByCulture: item.variesByCulture, + variesBySegment: item.variesBySegment, + isElement: item.isElement, + allowedContentTypes: item.allowedContentTypes, + compositions: item.compositions, + allowedTemplateIds: item.allowedTemplateIds, + cleanup: item.cleanup, + }; +}; + +const documentTypeTreeItemMapper = ( + item: UmbMockDocumentTypeModel, +): Omit => { + return { + name: item.name, + hasChildren: item.hasChildren, + id: item.id, + isContainer: item.isContainer, + parentId: item.parentId, + isFolder: item.isFolder, + icon: item.icon, isElement: item.isElement, }; }; -const createDocumentTypeItem = (item: DocumentTypeResponseModel): DocumentTypeItemResponseModel => { +const documentTypeItemMapper = (item: UmbMockDocumentTypeModel): DocumentTypeItemResponseModel => { return { id: item.id, name: item.name, - isElement: item.isElement, icon: item.icon, + isElement: item.isElement, }; }; -export const umbDocumentTypeData = new UmbDocumentTypeData(); +export const umbDocumentTypeMockDb = new UmbDocumentTypeMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 416462c720..135033c2c5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -1,4 +1,4 @@ -import { umbDocumentTypeData } from './document-type/document-type.db.js'; +import { umbDocumentTypeMockDb } from './document-type/document-type.db.js'; import { umbUserPermissionData } from './user-permission.data.js'; import { UmbEntityData } from './entity.data.js'; import { createDocumentTreeItem } from './utils.js'; @@ -815,12 +815,12 @@ class UmbDocumentData extends UmbEntityData { getDocumentByIdAllowedDocumentTypes(id: string): PagedDocumentTypeResponseModel { const item = this.getById(id); if (item?.contentTypeId) { - const docType = umbDocumentTypeData.getById(item.contentTypeId); + const docType = umbDocumentTypeMockDb.read(item.contentTypeId); if (docType) { const allowedTypes = docType?.allowedContentTypes ?? []; const mockedTypes = allowedTypes - .map((allowedType) => umbDocumentTypeData.getById(allowedType.id)) + .map((allowedType) => umbDocumentTypeMockDb.read(allowedType.id)) .filter((item) => item !== undefined) as Array; const items = mockedTypes.map((item) => mapToDocumentType(item)); const total = items.length; @@ -831,7 +831,8 @@ class UmbDocumentData extends UmbEntityData { } getAllowedDocumentTypesAtRoot(): PagedDocumentTypeResponseModel { - return umbDocumentTypeData.getAll(); //.filter((docType) => docType.allowedAsRoot); + const items = umbDocumentTypeMockDb.getData(); //.filter((docType) => docType.allowedAsRoot); + return { items, total: items.length }; } getRecycleBinRoot(): PagedRecycleBinItemResponseModel { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts index fad4b1a5bf..fb9735ac11 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts @@ -1,36 +1,44 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentTypeData } from '../../data/document-type/document-type.db.js'; +import { umbDocumentTypeMockDb } from '../../data/document-type/document-type.db.js'; import { UMB_SLUG } from './slug.js'; +import { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -export const handlers = [ - rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const document = umbDocumentTypeData.getById(id); - return res(ctx.status(200), ctx.json(document)); +export const detailHandlers = [ + rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { + const requestBody = (await req.json()) as CreateMediaTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const id = umbDocumentTypeMockDb.detail.create(requestBody); + + return res( + ctx.status(201), + ctx.set({ + Location: id, + }), + ); }), - rest.delete(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { + rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - umbDocumentTypeData.delete([id]); - return res(ctx.status(200)); + if (!id) return res(ctx.status(400)); + const response = umbDocumentTypeMockDb.detail.read(id); + return res(ctx.status(200), ctx.json(response)); }), rest.put(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - umbDocumentTypeData.save(id, data); + if (!id) return res(ctx.status(400)); + const requestBody = (await req.json()) as UpdateMediaTypeRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbDocumentTypeMockDb.detail.update(id, requestBody); return res(ctx.status(200)); }), - rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; - umbDocumentTypeData.insert(data); + rest.delete(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + umbDocumentTypeMockDb.detail.delete(id); return res(ctx.status(200)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts index e691416e8c..30239f1212 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts @@ -1,5 +1,5 @@ -import { handlers as treeHandlers } from './tree.handlers.js'; -import { handlers as detailHandlers } from './detail.handlers.js'; -import { handlers as itemHandlers } from './item.handlers.js'; +import { treeHandlers } from './tree.handlers.js'; +import { detailHandlers } from './detail.handlers.js'; +import { itemHandlers } from './item.handlers.js'; export const handlers = [...treeHandlers, ...itemHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/item.handlers.ts index fb5a49bf36..81f9aa24f3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/item.handlers.ts @@ -1,13 +1,13 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentTypeData } from '../../data/document-type/document-type.db.js'; +import { umbDocumentTypeMockDb } from '../../data/document-type/document-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -export const handlers = [ +export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const ids = req.url.searchParams.getAll('id'); if (!ids) return; - const items = umbDocumentTypeData.getItems(ids); + const items = umbDocumentTypeMockDb.item.getItems(ids); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts index f6e2efacf8..79b722f63c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/tree.handlers.ts @@ -1,29 +1,18 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentTypeData } from '../../data/document-type/document-type.db.js'; +import { umbDocumentTypeMockDb } from '../../data/document-type/document-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -export const handlers = [ +export const treeHandlers = [ rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { - const rootItems = umbDocumentTypeData.getTreeRoot(); - const response = { - total: rootItems.length, - items: rootItems, - }; + const response = umbDocumentTypeMockDb.tree.getRoot(); return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - - const children = umbDocumentTypeData.getTreeItemChildren(parentId); - - const response = { - total: children.length, - items: children, - }; - + const response = umbDocumentTypeMockDb.tree.getChildrenOf(parentId); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity.ts new file mode 100644 index 0000000000..c19555dccf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity.ts @@ -0,0 +1,7 @@ +export const UMB_DOCUMENT_TYPE_ENTITY_TYPE = 'document-type'; +export const UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE = 'document-type-root'; +export const UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE = 'document-type-folder'; + +export type UmbDocumentTypeEntityType = typeof UMB_DOCUMENT_TYPE_ENTITY_TYPE; +export type UmbDocumentTypeRootEntityType = typeof UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE; +export type UmbDocumentTypeFolderEntityType = typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts index 1114a28df7..f81ed532bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts @@ -1,175 +1,10 @@ -import { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT, UmbDocumentTypeTreeStore } from '../../tree/document-type.tree.store.js'; -import { UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT, UmbDocumentTypeItemStore } from '../item/document-type-item.store.js'; -import { UmbDocumentTypeServerDataSource } from './document-type.server.data.js'; -import { UmbDocumentTypeDetailStore, UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT } from './document-type-detail.store.js'; -import { type UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; +import { UmbDocumentTypeDetailModel } from '../../types.js'; +import { UmbDocumentTypeServerDataSource } from './document-type-detail.server.data-source.js'; +import { UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT } from './document-type-detail.store.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { - CreateDocumentTypeRequestModel, - DocumentTypeResponseModel, - UpdateDocumentTypeRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; - -type ItemType = DocumentTypeResponseModel; - -export class UmbDocumentTypeDetailRepository - extends UmbBaseController - implements - UmbDetailRepository, - UmbApi -{ - #init!: Promise; - - #treeStore?: UmbDocumentTypeTreeStore; - - #detailDataSource: UmbDocumentTypeServerDataSource; - #detailStore?: UmbDocumentTypeDetailStore; - - #itemStore?: UmbDocumentTypeItemStore; - - #notificationContext?: UmbNotificationContext; - +import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; +export class UmbDocumentTypeDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { - super(host); - - // TODO: figure out how spin up get the correct data source - this.#detailDataSource = new UmbDocumentTypeServerDataSource(this); - - this.#init = Promise.all([ - this.consumeContext(UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT, (instance) => { - this.#treeStore = instance; - }), - - this.consumeContext(UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT, (instance) => { - this.#detailStore = instance; - }), - - this.consumeContext(UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT, (instance) => { - this.#itemStore = instance; - }), - - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { - this.#notificationContext = instance; - }), - ]); - } - - // DETAILS: - - async createScaffold(parentId: string | null) { - if (parentId === undefined) throw new Error('Parent id is missing'); - await this.#init; - - const { data } = await this.#detailDataSource.createScaffold(parentId); - - if (data) { - this.#detailStore?.append(data); - } - - return { data }; - } - - async requestById(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - - const { data, error } = await this.#detailDataSource.read(id); - - if (data) { - this.#detailStore?.append(data); - } - - return { data, error, asObservable: () => this.#detailStore!.byId(id) }; - } - - async byId(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - return this.#detailStore!.byId(id); - } - - // TODO: we need to figure out where to put this - async requestAllowedChildTypesOf(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - return this.#detailDataSource.getAllowedChildrenOf(id); - } - - // Could potentially be general methods: - - async create(documentType: ItemType) { - if (!documentType || !documentType.id) throw new Error('Document Type is missing'); - await this.#init; - - const { error } = await this.#detailDataSource.create(documentType); - - if (!error) { - this.#detailStore?.append(documentType); - const treeItem = createTreeItem(documentType); - this.#treeStore?.appendItems([treeItem]); - } - - return { error }; - } - - async save(id: string, item: UpdateDocumentTypeRequestModel) { - if (!id) throw new Error('Id is missing'); - if (!item) throw new Error('Item is missing'); - - await this.#init; - - const { error } = await this.#detailDataSource.update(id, item); - - if (!error) { - this.#detailStore?.updateItem(id, item); - this.#treeStore?.updateItem(id, item); - - const notification = { data: { message: `Document Type saved` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; - } - - // General: - async delete(id: string) { - if (!id) throw new Error('Document Type id is missing'); - await this.#init; - - const { error } = await this.#detailDataSource.delete(id); - - if (!error) { - const notification = { data: { message: `Document Type deleted` } }; - this.#notificationContext?.peek('positive', notification); - - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server. - // Consider notify a workspace if a template is deleted from the store while someone is editing it. - this.#detailStore?.removeItem(id); - this.#treeStore?.removeItem(id); - this.#itemStore?.removeItem(id); - } - - return { error }; + super(host, UmbDocumentTypeServerDataSource, UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT); } } - -export const createTreeItem = (item: ItemType): UmbEntityTreeItemModel => { - if (!item) throw new Error('item is null or undefined'); - if (!item.id) throw new Error('item.id is null or undefined'); - - // TODO: needs parentID, this is missing in the current model. Should be good when updated to a createModel. - return { - entityType: 'document-type', - parentId: null, - name: item.name, - id: item.id, - isFolder: false, - isContainer: false, - hasChildren: false, - }; -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts new file mode 100644 index 0000000000..20c2fdd0c1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -0,0 +1,215 @@ +import { UmbDocumentTypeDetailModel } from '../../types.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import { + CreateDocumentTypeRequestModel, + DocumentTypeResource, + UpdateDocumentTypeRequestModel, +} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for the Document Type that fetches data from the server + * @export + * @class UmbDocumentTypeServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbDocumentTypeServerDataSource implements UmbDetailDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbDocumentTypeServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbDocumentTypeServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Creates a new Document Type scaffold + * @param {(string | null)} parentUnique + * @return { CreateDocumentTypeRequestModel } + * @memberof UmbDocumentTypeServerDataSource + */ + async createScaffold(parentUnique: string | null) { + const data: UmbDocumentTypeDetailModel = { + entityType: UMB_DOCUMENT_TYPE_ENTITY_TYPE, + unique: UmbId.new(), + parentUnique, + name: '', + alias: '', + description: '', + icon: '', + allowedAsRoot: false, + variesByCulture: false, + variesBySegment: false, + isElement: false, + properties: [], + containers: [], + allowedContentTypes: [], + compositions: [], + allowedTemplateIds: [], + defaultTemplateId: null, + cleanup: { + preventCleanup: false, + keepAllVersionsNewerThanDays: null, + keepLatestVersionPerDayForDays: null, + }, + }; + + return { data }; + } + + /** + * Fetches a Media Type with the given id from the server + * @param {string} unique + * @return {*} + * @memberof UmbDocumentTypeServerDataSource + */ + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const { data, error } = await tryExecuteAndNotify( + this.#host, + DocumentTypeResource.getDocumentTypeById({ id: unique }), + ); + + if (error || !data) { + return { error }; + } + + // TODO: make data mapper to prevent errors + const DocumentType: UmbDocumentTypeDetailModel = { + entityType: UMB_DOCUMENT_TYPE_ENTITY_TYPE, + unique: data.id, + parentUnique: null, // TODO: map to parent/folder id + name: data.name, + alias: data.alias, + description: data.description || null, + icon: data.icon, + allowedAsRoot: data.allowedAsRoot, + variesByCulture: data.variesByCulture, + variesBySegment: data.variesBySegment, + isElement: data.isElement, + properties: data.properties, + containers: data.containers, + allowedContentTypes: data.allowedContentTypes, + compositions: data.compositions, + allowedTemplateIds: data.allowedTemplateIds, + defaultTemplateId: data.defaultTemplateId || null, + cleanup: data.cleanup, + }; + + return { data: DocumentType }; + } + + /** + * Inserts a new Media Type on the server + * @param {UmbDocumentTypeDetailModel} documentType + * @return {*} + * @memberof UmbDocumentTypeServerDataSource + */ + async create(documentType: UmbDocumentTypeDetailModel) { + if (!documentType) throw new Error('Media Type is missing'); + if (!documentType.unique) throw new Error('Media Type unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: CreateDocumentTypeRequestModel = { + alias: documentType.alias, + name: documentType.name, + description: documentType.description, + icon: documentType.icon, + allowedAsRoot: documentType.allowedAsRoot, + variesByCulture: documentType.variesByCulture, + variesBySegment: documentType.variesBySegment, + isElement: documentType.isElement, + properties: documentType.properties, + containers: documentType.containers, + allowedContentTypes: documentType.allowedContentTypes, + compositions: documentType.compositions, + id: documentType.unique, + containerId: documentType.parentUnique, + allowedTemplateIds: documentType.allowedTemplateIds, + defaultTemplateId: documentType.defaultTemplateId || null, + cleanup: documentType.cleanup, + }; + + const { error: createError } = await tryExecuteAndNotify( + this.#host, + DocumentTypeResource.postDocumentType({ + requestBody, + }), + ); + + if (createError) { + return { error: createError }; + } + + // We have to fetch the data type again. The server can have modified the data after creation + return this.read(documentType.unique); + } + + /** + * Updates a DocumentType on the server + * @param {UmbDocumentTypeDetailModel} DocumentType + * @return {*} + * @memberof UmbDocumentTypeServerDataSource + */ + async update(data: UmbDocumentTypeDetailModel) { + if (!data.unique) throw new Error('Unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: UpdateDocumentTypeRequestModel = { + alias: data.alias, + name: data.name, + description: data.description, + icon: data.icon, + allowedAsRoot: data.allowedAsRoot, + variesByCulture: data.variesByCulture, + variesBySegment: data.variesBySegment, + isElement: data.isElement, + properties: data.properties, + containers: data.containers, + allowedContentTypes: data.allowedContentTypes, + compositions: data.compositions, + allowedTemplateIds: data.allowedTemplateIds, + defaultTemplateId: data.defaultTemplateId || null, + cleanup: data.cleanup, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + DocumentTypeResource.putDocumentTypeById({ + id: data.unique, + requestBody, + }), + ); + + if (error) { + return { error }; + } + + // We have to fetch the data type again. The server can have modified the data after update + return this.read(data.unique); + } + + /** + * Deletes a Media Type on the server + * @param {string} unique + * @return {*} + * @memberof UmbDocumentTypeServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + return tryExecuteAndNotify( + this.#host, + DocumentTypeResource.deleteDocumentTypeById({ + id: unique, + }), + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts index 8f021c86b7..cf79d86801 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts @@ -1,7 +1,6 @@ -import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbDocumentTypeDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** @@ -10,27 +9,14 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api * @extends {UmbStoreBase} * @description - Data Store for Document Types */ -export class UmbDocumentTypeDetailStore extends UmbStoreBase { +export class UmbDocumentTypeDetailStore extends UmbDetailStoreBase { /** * Creates an instance of UmbDocumentTypeStore. * @param {UmbControllerHostElement} host * @memberof UmbDocumentTypeStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - /** - * @param {DocumentTypeResponseModel['id']} id - * @return {*} - * @memberof UmbDocumentTypeDetailStore - */ - byId(id: DocumentTypeResponseModel['id']) { - return this._data.asObservablePart((x) => x.find((y) => y.id === id)); + super(host, UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type.server.data.ts deleted file mode 100644 index 4746198854..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type.server.data.ts +++ /dev/null @@ -1,155 +0,0 @@ -import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; -import { - CreateDocumentTypeRequestModel, - DocumentTypeResource, - DocumentTypeResponseModel, - UpdateDocumentTypeRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbId } from '@umbraco-cms/backoffice/id'; - -/** - * A data source for the Document Type that fetches data from the server - * @export - * @class UmbDocumentTypeServerDataSource - * @implements {RepositoryDetailDataSource} - */ -export class UmbDocumentTypeServerDataSource - implements - UmbDataSource -{ - #host: UmbControllerHost; - - /** - * Creates an instance of UmbDocumentServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbDocumentServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches a Document with the given id from the server - * @param {string} id - * @return {*} - * @memberof UmbDocumentTypeServerDataSource - */ - async read(id: string) { - if (!id) { - throw new Error('Id is missing'); - } - - return tryExecuteAndNotify( - this.#host, - DocumentTypeResource.getDocumentTypeById({ - id: id, - }), - ); - } - - /** - * Creates a new Document scaffold - * @param {(string | null)} parentId - * @return {*} - * @memberof UmbDocumentTypeServerDataSource - */ - async createScaffold(parentId: string | null) { - //, parentId: string | null - const data: DocumentTypeResponseModel = { - id: UmbId.new(), - //parentId: parentId, - name: '', - alias: '', - description: '', - icon: 'icon-document', - allowedAsRoot: false, - variesByCulture: false, - variesBySegment: false, - isElement: false, - allowedContentTypes: [], - compositions: [], - allowedTemplateIds: [], - defaultTemplateId: null, - cleanup: { - preventCleanup: false, - keepAllVersionsNewerThanDays: null, - keepLatestVersionPerDayForDays: null, - }, - properties: [], - containers: [], - }; - - return { data }; - } - - /** - * Inserts a new Document Type on the server - * @param {CreateDocumentTypeRequestModel} documentType - * @return {*} - * @memberof UmbDocumentTypeServerDataSource - */ - async create(documentType: CreateDocumentTypeRequestModel) { - if (!documentType) throw new Error('Document Type is missing'); - return tryExecuteAndNotify( - this.#host, - DocumentTypeResource.postDocumentType({ - requestBody: documentType, - }), - ); - } - - /** - * Updates a Document Type on the server - * @param {string} id - * @param {Document} documentType - * @return {*} - * @memberof UmbDocumentTypeServerDataSource - */ - async update(id: string, documentType: UpdateDocumentTypeRequestModel) { - if (!id) throw new Error('Id is missing'); - - documentType = { ...documentType }; - - // TODO: Hack to remove some props that ruins the document-type post end-point. - (documentType as any).id = undefined; - - return tryExecuteAndNotify(this.#host, DocumentTypeResource.putDocumentTypeById({ id, requestBody: documentType })); - } - - /** - * Deletes a Template on the server - * @param {string} id - * @return {*} - * @memberof UmbDocumentTypeServerDataSource - */ - async delete(id: string) { - if (!id) { - throw new Error('Id is missing'); - } - - // TODO: Hack the type to avoid type-error here: - return tryExecuteAndNotify(this.#host, DocumentTypeResource.deleteDocumentTypeById({ id })) as any; - } - - /** - * Get the allowed document types for a given parent id - * @param {string} id - * @return {*} - * @memberof UmbDocumentTypeServerDataSource - */ - async getAllowedChildrenOf(id: string) { - if (!id) throw new Error('Id is missing'); - - return tryExecuteAndNotify( - this.#host, - fetch(`/umbraco/management/api/v1/document-type/allowed-children-of/${id}`, { - method: 'GET', - headers: { - 'Content-Type': 'application/json', - }, - }).then((res) => res.json()), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts index 88133609ac..5c6cfc441e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts @@ -15,8 +15,8 @@ export class UmbDocumentTypeTreeRepository } async requestTreeRoot() { - const data = { - id: null, + const data: UmbDocumentTypeTreeRootModel = { + unique: null, entityType: UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, name: 'Document Types', icon: 'icon-folder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts index 48c922f19c..d9ca8052e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts @@ -1,3 +1,4 @@ +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentTypeTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { DocumentTypeResource, DocumentTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -43,10 +44,10 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: DocumentTypeTreeItemResponseModel): UmbDocumentTypeTreeItemModel => { return { - id: item.id, - parentId: item.parentId || null, + unique: item.id, + parentUnique: item.parentId || null, name: item.name, - entityType: 'document-type', + entityType: item.isFolder ? UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE : UMB_DOCUMENT_TYPE_ENTITY_TYPE, isContainer: item.isContainer, hasChildren: item.hasChildren, isFolder: item.isFolder, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts index ecafc8d4dc..4305ba4d41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts @@ -1,14 +1,14 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; /** * @export * @class UmbDocumentTypeTreeStore - * @extends {UmbStoreBase} + * @extends {UmbUniqueTreeStore} * @description - Tree Data Store for Document Types */ -export class UmbDocumentTypeTreeStore extends UmbEntityTreeStore { +export class UmbDocumentTypeTreeStore extends UmbUniqueTreeStore { /** * Creates an instance of UmbDocumentTypeTreeStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts index 57f87fa37f..2f0762f7c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts @@ -1,3 +1,4 @@ +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentTypeTreeRepository } from './document-type-tree.repository.js'; import { UmbDocumentTypeTreeStore } from './document-type.tree.store.js'; import type { @@ -36,11 +37,11 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'entity', + kind: 'unique', alias: 'Umb.TreeItem.DocumentType', name: 'Document Type Tree Item', meta: { - entityTypes: ['document-type-root', 'document-type'], + entityTypes: [UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts index a862653597..243cf67e93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts @@ -1,8 +1,15 @@ -import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import { + UmbDocumentTypeEntityType, + UmbDocumentTypeFolderEntityType, + UmbDocumentTypeRootEntityType, +} from '../entity.js'; +import { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbDocumentTypeTreeItemModel extends UmbEntityTreeItemModel { +export interface UmbDocumentTypeTreeItemModel extends UmbUniqueTreeItemModel { + entityType: UmbDocumentTypeEntityType | UmbDocumentTypeFolderEntityType; isElement: boolean; - icon?: string | null; } -// TODO: TREE STORE TYPE PROBLEM: -export interface UmbDocumentTypeTreeRootModel extends UmbEntityTreeRootModel {} + +export interface UmbDocumentTypeTreeRootModel extends UmbUniqueTreeRootModel { + entityType: UmbDocumentTypeRootEntityType; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts new file mode 100644 index 0000000000..e523f1cacf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts @@ -0,0 +1,30 @@ +import { UmbDocumentTypeEntityType } from './entity.js'; +import { + ContentTypeCleanupModel, + ContentTypeCompositionModel, + ContentTypeSortModel, + MediaTypePropertyTypeContainerResponseModel, + MediaTypePropertyTypeResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbDocumentTypeDetailModel { + entityType: UmbDocumentTypeEntityType; + unique: string; + parentUnique: string | null; + name: string; + alias: string; + description: string | null; + icon: string; + allowedAsRoot: boolean; + variesByCulture: boolean; + variesBySegment: boolean; + isElement: boolean; + allowedTemplateIds: Array; + defaultTemplateId: string | null; + // TODO: investigate if we need our own model for these + properties: Array; + containers: Array; + allowedContentTypes: Array; + compositions: Array; + cleanup: ContentTypeCleanupModel; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts index dfa6a13e3e..df507bcdbe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts @@ -1,36 +1,22 @@ -import { MediaTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbMediaTypeDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export * @class UmbMediaTypeStore - * @extends {UmbStoreBase} + * @extends {UmbDetailStoreBase} * @description - Data Store for Media Types */ -export class UmbMediaTypeDetailStore extends UmbStoreBase { +export class UmbMediaTypeDetailStore extends UmbDetailStoreBase { /** * Creates an instance of UmbMediaTypeStore. * @param {UmbControllerHostElement} host * @memberof UmbMediaTypeStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - /** - * @param {MediaTypeResponseModel['id']} id - * @return {*} - * @memberof UmbMediaTypeDetailStore - */ - byId(id: MediaTypeResponseModel['id']) { - return this._data.asObservablePart((x) => x.find((y) => y.id === id)); + super(host, UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/types.ts deleted file mode 100644 index e461548b00..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/types.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../../entity.js'; -import { MediaTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -export type UmbMediaTypeDetailModel = MediaTypeResponseModel & { entityType: typeof UMB_MEDIA_TYPE_ENTITY_TYPE }; From 8f994c05d5fb18327029f61bfcbc202923b9906d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 21:30:01 +0100 Subject: [PATCH 337/786] client side document type models --- ...nt-type-property-structure-helper.class.ts | 5 +- .../content-type-structure-manager.class.ts | 72 +++++++++---------- .../src/packages/core/content-type/index.ts | 1 + .../src/packages/core/content-type/types.ts | 24 +++++++ .../common/delete/delete.action.ts | 2 +- .../repository/detail-repository.interface.ts | 20 ------ .../detail/detail-repository-base.ts | 3 +- .../detail/detail-repository.interface.ts | 14 ++++ .../src/packages/core/repository/index.ts | 2 +- .../repository/dictionary.repository.ts | 14 +--- .../entity-actions/create/manifests.ts | 2 +- .../documents/document-types/index.ts | 5 +- .../tree/document-type-tree.repository.ts | 2 +- .../documents/document-types/types.ts | 26 +------ .../document-type-workspace.context.ts | 13 ++-- .../repository/document.repository.ts | 14 +--- .../src/packages/media/media-types/types.ts | 24 +------ .../workspace/media-type-workspace.context.ts | 10 ++- .../media/repository/media.repository.ts | 7 +- .../repository/relation-type.repository.ts | 14 +--- .../repository/template.repository.ts | 8 +-- .../repository/user-group.repository.ts | 13 +--- .../user/user/repository/detail/types.ts | 16 +---- 23 files changed, 110 insertions(+), 201 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index 0f655193cc..b2222ae5f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -2,6 +2,7 @@ import { PropertyContainerTypes, UmbContentTypePropertyStructureManager, } from './content-type-structure-manager.class.js'; +import { UmbContentTypeModel } from './types.js'; import { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -11,7 +12,7 @@ export class UmbContentTypePropertyStructureHelper { #init; #initResolver?: (value: unknown) => void; - #structure?: UmbContentTypePropertyStructureManager; + #structure?: UmbContentTypePropertyStructureManager; private _containerType?: PropertyContainerTypes; private _isRoot?: boolean; @@ -33,7 +34,7 @@ export class UmbContentTypePropertyStructureHelper { return this.#structure?.contentTypes; } - public setStructureManager(structure: UmbContentTypePropertyStructureManager) { + public setStructureManager(structure: UmbContentTypePropertyStructureManager) { this.#structure = structure; this.#initResolver?.(undefined); this.#initResolver = undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index daa038d856..8487c5e8ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -1,10 +1,10 @@ +import { UmbContentTypeModel } from './types.js'; import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { DocumentTypePropertyTypeResponseModel, PropertyTypeContainerModelBaseModel, PropertyTypeModelBaseModel, - DocumentTypeResponseModel, } from '@umbraco-cms/backoffice/backend-api'; import { type UmbControllerHost, type UmbController } from '@umbraco-cms/backoffice/controller-api'; import { @@ -19,20 +19,16 @@ import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export type PropertyContainerTypes = 'Group' | 'Tab'; -type T = DocumentTypeResponseModel; - // TODO: get this type from the repository, or use some generic type. // TODO: Make this a controller on its own: -export class UmbContentTypePropertyStructureManager< - R extends UmbDetailRepository = UmbDetailRepository, -> extends UmbBaseController { +export class UmbContentTypePropertyStructureManager extends UmbBaseController { #init!: Promise; - #contentTypeRepository: R; + #contentTypeRepository: UmbDetailRepository; #ownerContentTypeId?: string; #contentTypeObservers = new Array(); - #contentTypes = new UmbArrayState([], (x) => x.id); + #contentTypes = new UmbArrayState([], (x) => x.unique); readonly contentTypes = this.#contentTypes.asObservable(); private readonly _contentTypeContainers = this.#contentTypes.asObservablePart((x) => x.flatMap((x) => x.containers ?? []), @@ -41,7 +37,7 @@ export class UmbContentTypePropertyStructureManager< #containers: UmbArrayState = new UmbArrayState([], (x) => x.id); - constructor(host: UmbControllerHost, typeRepository: R) { + constructor(host: UmbControllerHost, typeRepository: UmbDetailRepository) { super(host); this.#contentTypeRepository = typeRepository; @@ -78,7 +74,7 @@ export class UmbContentTypePropertyStructureManager< const { data } = await this.#contentTypeRepository.createScaffold(parentId); if (!data) return {}; - this.#ownerContentTypeId = data.id; + this.#ownerContentTypeId = data.unique; this.#init = this._observeContentType(data); await this.#init; @@ -87,35 +83,35 @@ export class UmbContentTypePropertyStructureManager< public async save() { const contentType = this.getOwnerContentType(); - if (!contentType || !contentType.id) return false; + if (!contentType || !contentType.unique) return false; - await this.#contentTypeRepository.save(contentType.id, contentType); + await this.#contentTypeRepository.save(contentType); return true; } public async create() { const contentType = this.getOwnerContentType(); - if (!contentType || !contentType.id) return false; + if (!contentType || !contentType.unique) return false; const { data } = await this.#contentTypeRepository.create(contentType); if (!data) return false; - await this.loadType(data.id); + await this.loadType(data.unique); return true; } - private async _ensureType(id?: string) { - if (!id) return; - if (this.#contentTypes.getValue().find((x) => x.id === id)) return; - await this._loadType(id); + private async _ensureType(unique?: string) { + if (!unique) return; + if (this.#contentTypes.getValue().find((x) => x.unique === unique)) return; + await this._loadType(unique); } - private async _loadType(id?: string) { - if (!id) return {}; + private async _loadType(unique?: string) { + if (!unique) return {}; - const { data } = await this.#contentTypeRepository.requestById(id); + const { data } = await this.#contentTypeRepository.requestByUnique(unique); if (!data) return {}; await this._observeContentType(data); @@ -123,13 +119,13 @@ export class UmbContentTypePropertyStructureManager< } private async _observeContentType(data: T) { - if (!data.id) return; + if (!data.unique) return; // Load inherited and composed types: this._loadContentTypeCompositions(data); this.#contentTypeObservers.push( - this.observe(await this.#contentTypeRepository.byId(data.id), (docType) => { + this.observe(await this.#contentTypeRepository.byUnique(data.unique), (docType) => { if (docType) { // TODO: Handle if there was changes made to the owner document type in this context. /* @@ -150,11 +146,11 @@ export class UmbContentTypePropertyStructureManager< /** Public methods for consuming structure: */ ownerContentType() { - return this.#contentTypes.asObservablePart((x) => x.find((y) => y.id === this.#ownerContentTypeId)); + return this.#contentTypes.asObservablePart((x) => x.find((y) => y.unique === this.#ownerContentTypeId)); } getOwnerContentType() { - return this.#contentTypes.getValue().find((y) => y.id === this.#ownerContentTypeId); + return this.#contentTypes.getValue().find((y) => y.unique === this.#ownerContentTypeId); } updateOwnerContentType(entry: Partial) { @@ -164,13 +160,13 @@ export class UmbContentTypePropertyStructureManager< // We could move the actions to another class? async createContainer( - contentTypeId: string | null, + contentTypeUnique: string | null, parentId: string | null = null, type: PropertyContainerTypes = 'Group', sortOrder?: number, ) { await this.#init; - contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; + contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeId!; const container: PropertyTypeContainerModelBaseModel = { id: UmbId.new(), @@ -180,10 +176,12 @@ export class UmbContentTypePropertyStructureManager< sortOrder: sortOrder ?? 0, }; - const containers = [...(this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.containers ?? [])]; + const containers = [ + ...(this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.containers ?? []), + ]; containers.push(container); - this.#contentTypes.updateOne(contentTypeId, { containers }); + this.#contentTypes.updateOne(contentTypeUnique, { containers }); return container; } @@ -192,7 +190,7 @@ export class UmbContentTypePropertyStructureManager< await this.#init; contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; - const frozenContainers = this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.containers ?? []; + const frozenContainers = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.containers ?? []; const containers = appendToFrozenArray(frozenContainers, container, (x) => x.id === container.id); @@ -226,7 +224,7 @@ export class UmbContentTypePropertyStructureManager< await this.#init; contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; - const frozenContainers = this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.containers ?? []; + const frozenContainers = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.containers ?? []; const containers = partialUpdateFrozenArray(frozenContainers, partialUpdate, (x) => x.id === containerId); @@ -237,7 +235,7 @@ export class UmbContentTypePropertyStructureManager< await this.#init; contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; - const frozenContainers = this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.containers ?? []; + const frozenContainers = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.containers ?? []; const containers = frozenContainers.filter((x) => x.id !== containerId); this.#contentTypes.updateOne(contentTypeId, { containers }); @@ -274,7 +272,7 @@ export class UmbContentTypePropertyStructureManager< const property: PropertyTypeModelBaseModel = this.createPropertyScaffold(containerId, sortOrder); - const properties = [...(this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.properties ?? [])]; + const properties = [...(this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.properties ?? [])]; properties.push(property); this.#contentTypes.updateOne(contentTypeId, { properties }); @@ -286,7 +284,7 @@ export class UmbContentTypePropertyStructureManager< await this.#init; contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; - const frozenProperties = this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.properties ?? []; + const frozenProperties = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.properties ?? []; const properties = appendToFrozenArray(frozenProperties, property, (x) => x.id === property.id); @@ -297,7 +295,7 @@ export class UmbContentTypePropertyStructureManager< await this.#init; contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; - const frozenProperties = this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.properties ?? []; + const frozenProperties = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.properties ?? []; const properties = filterFrozenArray(frozenProperties, (x) => x.id !== propertyId); @@ -312,7 +310,7 @@ export class UmbContentTypePropertyStructureManager< await this.#init; contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; - const frozenProperties = this.#contentTypes.getValue().find((x) => x.id === contentTypeId)?.properties ?? []; + const frozenProperties = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.properties ?? []; const properties = partialUpdateFrozenArray(frozenProperties, partialUpdate, (x) => x.id === propertyId); @@ -369,7 +367,7 @@ export class UmbContentTypePropertyStructureManager< ownerContentTypeObservablePart(mappingFunction: MappingFunction) { return this.#contentTypes.asObservablePart((docTypes) => { - const docType = docTypes.find((x) => x.id === this.#ownerContentTypeId); + const docType = docTypes.find((x) => x.unique === this.#ownerContentTypeId); return docType ? mappingFunction(docType) : undefined; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts index c587218a3d..1ed13f8155 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts @@ -1,3 +1,4 @@ export * from './content-type-container-structure-helper.class.js'; export * from './content-type-property-structure-helper.class.js'; export * from './content-type-structure-manager.class.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts new file mode 100644 index 0000000000..130d6a81a0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -0,0 +1,24 @@ +import { + ContentTypeCompositionModel, + ContentTypeSortModel, + MediaTypePropertyTypeContainerResponseModel, + MediaTypePropertyTypeResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbContentTypeModel { + unique: string; + parentUnique: string | null; + name: string; + alias: string; + description: string | null; + icon: string; + allowedAsRoot: boolean; + variesByCulture: boolean; + variesBySegment: boolean; + isElement: boolean; + // TODO: investigate if we need our own model for these + properties: Array; + containers: Array; + allowedContentTypes: Array; + compositions: Array; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts index 00abd856bc..8be1c44ed9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts @@ -9,7 +9,7 @@ import { import { UmbDetailRepository, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; export class UmbDeleteEntityAction< - T extends UmbDetailRepository & UmbItemRepository, + T extends UmbDetailRepository & UmbItemRepository, > extends UmbEntityActionBase { #modalManager?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts deleted file mode 100644 index 901424c69f..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail-repository.interface.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { DataSourceResponse, UmbDataSourceErrorResponse } from './data-source/index.js'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; - -export interface UmbDetailRepository< - CreateRequestType = any, - CreateResponseType = any, - UpdateRequestType = any, - ResponseType = any, - CreateScaffoldPresetType = Partial, -> { - createScaffold( - parentId: string | null, - preset?: Partial | CreateScaffoldPresetType, - ): Promise>; - requestById(id: string): Promise>; - byId(id: string): Promise>; - create(data: CreateRequestType): Promise>; - save(id: string, data: UpdateRequestType): Promise; - delete(id: string): Promise; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index b5cb9b99d8..03734e474c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -1,5 +1,6 @@ import { UmbRepositoryBase } from '../repository-base.js'; import { UmbDetailDataSource, UmbDetailDataSourceConstructor } from './detail-data-source.interface.js'; +import { UmbDetailRepository } from './detail-repository.interface.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; @@ -10,7 +11,7 @@ export abstract class UmbDetailRepositoryBase< DetailModelType extends { unique: string; entityType: string; parentUnique: string | null }, > extends UmbRepositoryBase - implements UmbApi + implements UmbDetailRepository, UmbApi { #init: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts new file mode 100644 index 0000000000..221feaa3fb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts @@ -0,0 +1,14 @@ +import type { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source/index.js'; +import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; + +export interface UmbDetailRepository { + createScaffold( + parentUnique: string | null, + preset?: Partial, + ): Promise>; + requestByUnique(unique: string): Promise>; + byUnique(unique: string): Promise>; + create(data: DetailModelType): Promise>; + save(data: DetailModelType): Promise>; + delete(unique: string): Promise; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts index cb03d6ebba..fe44883534 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts @@ -1,5 +1,5 @@ export * from './data-source/index.js'; -export * from './detail-repository.interface.js'; +export * from './detail/detail-repository.interface.js'; export * from './collection-repository.interface.js'; export * from './move-repository.interface.js'; export * from './copy-repository.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts index f03727b18d..9db83b11ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts @@ -3,27 +3,15 @@ import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT_TOKEN } from './dictio import { UmbDictionaryDetailServerDataSource } from './sources/dictionary-detail.server.data-source.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { CreateDictionaryItemRequestModel, - DictionaryItemResponseModel, UpdateDictionaryItemRequestModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbTemporaryFileRepository } from '@umbraco-cms/backoffice/temporary-file'; -export class UmbDictionaryRepository - extends UmbBaseController - implements - UmbDetailRepository< - CreateDictionaryItemRequestModel, - string, - UpdateDictionaryItemRequestModel, - DictionaryItemResponseModel - >, - UmbApi -{ +export class UmbDictionaryRepository extends UmbBaseController implements UmbApi { #init!: Promise; #treeStore?: UmbDictionaryTreeStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts index 59155cbf5b..5afc00c367 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts @@ -2,7 +2,7 @@ import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, -} from '../../index.js'; +} from '../../entity.js'; import { DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbCreateDataTypeEntityAction } from './create.action.js'; import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/index.ts index a2021fe7b9..4a54461e21 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/index.ts @@ -5,7 +5,4 @@ export * from './workspace/index.js'; export * from './repository/index.js'; export * from './tree/types.js'; - -export const UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE = 'document-type-root'; -export const UMB_DOCUMENT_TYPE_ENTITY_TYPE = 'document-type'; -export const UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE = 'document-type-folder'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts index 5c6cfc441e..4f2c1d31e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../index.js'; +import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentTypeTreeServerDataSource } from './document-type.tree.server.data-source.js'; import { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from './document-type.tree.store.js'; import { UmbDocumentTypeTreeItemModel, UmbDocumentTypeTreeRootModel } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts index e523f1cacf..054a13dabf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts @@ -1,30 +1,10 @@ import { UmbDocumentTypeEntityType } from './entity.js'; -import { - ContentTypeCleanupModel, - ContentTypeCompositionModel, - ContentTypeSortModel, - MediaTypePropertyTypeContainerResponseModel, - MediaTypePropertyTypeResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import { ContentTypeCleanupModel } from '@umbraco-cms/backoffice/backend-api'; -export interface UmbDocumentTypeDetailModel { +export interface UmbDocumentTypeDetailModel extends UmbContentTypeModel { entityType: UmbDocumentTypeEntityType; - unique: string; - parentUnique: string | null; - name: string; - alias: string; - description: string | null; - icon: string; - allowedAsRoot: boolean; - variesByCulture: boolean; - variesBySegment: boolean; - isElement: boolean; allowedTemplateIds: Array; defaultTemplateId: string | null; - // TODO: investigate if we need our own model for these - properties: Array; - containers: Array; - allowedContentTypes: Array; - compositions: Array; cleanup: ContentTypeCleanupModel; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index fb5299e882..fbb218f650 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -1,18 +1,15 @@ import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; +import { UmbDocumentTypeDetailModel } from '../types.js'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbEditableWorkspaceContextBase, UmbSaveableWorkspaceContextInterface, } from '@umbraco-cms/backoffice/workspace'; -import type { - ContentTypeCompositionModel, - ContentTypeSortModel, - DocumentTypeResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { ContentTypeCompositionModel, ContentTypeSortModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; -type EntityType = DocumentTypeResponseModel; +type EntityType = UmbDocumentTypeDetailModel; export class UmbDocumentTypeWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface @@ -46,7 +43,7 @@ export class UmbDocumentTypeWorkspaceContext constructor(host: UmbControllerHostElement) { super(host, 'Umb.Workspace.DocumentType', new UmbDocumentTypeDetailRepository(host)); - this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); + this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); // General for content types: this.data = this.structure.ownerContentType; @@ -80,7 +77,7 @@ export class UmbDocumentTypeWorkspaceContext } getEntityId() { - return this.getData()?.id; + return this.getData()?.unique; } getEntityType() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index 2604b0179a..c200ef9dbc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -3,24 +3,14 @@ import { UmbDocumentServerDataSource } from './sources/document.server.data.js'; import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.store.js'; import { UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, type UmbDocumentItemStore } from './document-item.store.js'; import { UmbDocumentItemServerDataSource } from './sources/document-item.server.data.js'; -import type { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { - DocumentResponseModel, - CreateDocumentRequestModel, - UpdateDocumentRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -export class UmbDocumentRepository - extends UmbBaseController - implements - UmbDetailRepository, - UmbApi -{ +export class UmbDocumentRepository extends UmbBaseController implements UmbApi { #init!: Promise; #treeStore?: UmbDocumentTreeStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts index 49885f8cd1..17615edc28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts @@ -1,26 +1,6 @@ import { UmbMediaTypeEntityType } from './entity.js'; -import { - ContentTypeCompositionModel, - ContentTypeSortModel, - MediaTypePropertyTypeContainerResponseModel, - MediaTypePropertyTypeResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; -export interface UmbMediaTypeDetailModel { +export interface UmbMediaTypeDetailModel extends UmbContentTypeModel { entityType: UmbMediaTypeEntityType; - unique: string; - parentUnique: string | null; - name: string; - alias: string; - description: string | null; - icon: string; - allowedAsRoot: boolean; - variesByCulture: boolean; - variesBySegment: boolean; - isElement: boolean; - // TODO: investigate if we need our own model for these - properties: Array; - containers: Array; - allowedContentTypes: Array; - compositions: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index c26132a17f..77ecb4f4d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -1,16 +1,16 @@ import { UmbMediaTypeDetailRepository } from '../repository/detail/media-type-detail.repository.js'; import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../index.js'; +import { UmbMediaTypeDetailModel } from '../types.js'; import { UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; -import { type MediaTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; -type EntityType = MediaTypeResponseModel; +type EntityType = UmbMediaTypeDetailModel; export class UmbMediaTypeWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface @@ -36,9 +36,7 @@ export class UmbMediaTypeWorkspaceContext constructor(host: UmbControllerHostElement) { super(host, 'Umb.Workspace.MediaType', new UmbMediaTypeDetailRepository(host)); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); + this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); // General for content types: this.data = this.structure.ownerContentType; @@ -64,7 +62,7 @@ export class UmbMediaTypeWorkspaceContext } getEntityId() { - return this.getData()?.id; + return this.getData()?.unique; } getEntityType() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts index 114b08de7d..3e09427f76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts @@ -1,4 +1,3 @@ -import type { UmbMediaDetailModel } from '../index.js'; import { UMB_MEDIA_TREE_STORE_CONTEXT, type UmbMediaTreeStore } from '../tree/index.js'; import { UMB_MEDIA_STORE_CONTEXT, UmbMediaStore } from './media.store.js'; import { UmbMediaDetailServerDataSource } from './sources/media-detail.server.data-source.js'; @@ -7,14 +6,10 @@ import { UMB_MEDIA_ITEM_STORE_CONTEXT, UmbMediaItemStore } from './media-item.st import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export class UmbMediaRepository - extends UmbBaseController - implements UmbDetailRepository, UmbApi -{ +export class UmbMediaRepository extends UmbBaseController implements UmbApi { #init; #treeStore?: UmbMediaTreeStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts index 2b9af764ed..199743ded9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts @@ -3,21 +3,11 @@ import { UmbRelationTypeServerDataSource } from './sources/relation-type.server. import { UmbRelationTypeStore, UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN } from './relation-type.store.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { - CreateRelationTypeRequestModel, - RelationTypeResponseModel, - UpdateRelationTypeRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; +import { CreateRelationTypeRequestModel, UpdateRelationTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -export class UmbRelationTypeRepository - extends UmbBaseController - implements - UmbDetailRepository, - UmbApi -{ +export class UmbRelationTypeRepository extends UmbBaseController implements UmbApi { #init!: Promise; #treeStore?: UmbRelationTypeTreeStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts index ed44e7295b..1f3b021242 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts @@ -4,7 +4,7 @@ import { UmbTemplateDetailServerDataSource } from './sources/template.detail.ser import { UMB_TEMPLATE_ITEM_STORE_CONTEXT, UmbTemplateItemStore } from './template-item.store.js'; import { UmbTemplateItemServerDataSource } from './sources/template.item.server.data.js'; import { UmbTemplateQueryBuilderServerDataSource } from './sources/template.query-builder.server.data.js'; -import type { UmbDetailRepository, UmbItemDataSource, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbItemDataSource, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; @@ -12,17 +12,13 @@ import type { CreateTemplateRequestModel, TemplateItemResponseModel, TemplateQueryExecuteModel, - TemplateResponseModel, UpdateTemplateRequestModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbTemplateRepository extends UmbBaseController - implements - UmbDetailRepository, - UmbItemRepository, - UmbApi + implements UmbItemRepository, UmbApi { #init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts index 0a08b643e3..26383553b3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts @@ -3,14 +3,8 @@ import { UmbUserGroupServerDataSource } from './sources/user-group.server.data-s import { UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN, UmbUserGroupItemStore } from './user-group-item.store.js'; import { UmbUserGroupItemServerDataSource } from './sources/user-group-item.server.data-source.js'; import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import { UserGroupItemResponseModel, UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { - CreateUserGroupRequestModel, - UpdateUserGroupRequestModel, - UserGroupItemResponseModel, - UserGroupResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { - UmbDetailRepository, UmbItemDataSource, UmbItemRepository, UmbDataSourceErrorResponse, @@ -24,10 +18,7 @@ import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; // TODO: implement export class UmbUserGroupRepository extends UmbBaseController - implements - UmbDetailRepository, - UmbItemRepository, - UmbApi + implements UmbItemRepository, UmbApi { #init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/types.ts index 8b45f90187..0c489315be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/types.ts @@ -1,18 +1,6 @@ -import type { - CreateUserRequestModel, - CreateUserResponseModel, - UpdateUserRequestModel, - UserResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; -import type { UmbDataSourceErrorResponse, UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; -export interface IUmbUserDetailRepository - extends UmbDetailRepository< - CreateUserRequestModel, - CreateUserResponseModel, - UpdateUserRequestModel, - UserResponseModel - > { +export interface IUmbUserDetailRepository { uploadAvatar(id: string, file: File): Promise; deleteAvatar(id: string): Promise; } From c898994c5b099cbb3f94c8ccdab1530d10e26d02 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 07:42:29 +0100 Subject: [PATCH 338/786] add type --- .../content-type-container-structure-helper.class.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index d6fa9d50d9..aa6dd02893 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -2,6 +2,7 @@ import { PropertyContainerTypes, UmbContentTypePropertyStructureManager, } from './content-type-structure-manager.class.js'; +import { UmbContentTypeModel } from './types.js'; import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -11,7 +12,7 @@ export class UmbContentTypeContainerStructureHelper { #init; #initResolver?: (value: unknown) => void; - #structure?: UmbContentTypePropertyStructureManager; + #structure?: UmbContentTypePropertyStructureManager; private _ownerType?: PropertyContainerTypes = 'Tab'; private _childType?: PropertyContainerTypes = 'Group'; From ea5d8347c37ec4002455c84aa035f8429dff11c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 08:49:08 +0100 Subject: [PATCH 339/786] Block Element Manager --- .../src/packages/block/block/types.ts | 1 + .../block/workspace/block-element-manager.ts | 81 +++++++++++++++++++ ...-element-property-dataset.context-token.ts | 6 ++ .../block-element-property-dataset.context.ts | 50 ++++++++++++ .../workspace/block-workspace.context.ts | 64 +++++++++------ .../packages/block/block/workspace/index.ts | 4 + .../block/block/workspace/manifests.ts | 27 ++++--- .../editable-workspace-context-base.ts | 6 ++ .../workspace/document-workspace.context.ts | 4 +- 9 files changed, 207 insertions(+), 36 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/types.ts index 1883faa267..8956368b42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/types.ts @@ -6,6 +6,7 @@ export interface UmbBlockLayoutBaseModel { export interface UmbBlockDataType { udi: string; contentTypeKey: string; + [key: string]: unknown; } export interface UmbBlockValueType { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts new file mode 100644 index 0000000000..933a196a99 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -0,0 +1,81 @@ +import { UmbBlockDataType } from '../types.js'; +import { UmbBlockElementPropertyDatasetContext } from './block-element-property-dataset.context.js'; +import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; +import { UmbObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; + +export class UmbBlockElementManager extends UmbBaseController { + // + #data = new UmbObjectState(undefined); + #getDataPromise = new Promise((resolve) => { + this.#getDataResolver = resolve; + }); + #getDataResolver!: () => void; + + readonly unique = this.#data.asObservablePart((data) => data?.udi); + readonly contentTypeId = this.#data.asObservablePart((data) => data?.contentTypeKey); + + readonly structure; + + constructor(host: UmbControllerHost) { + // TODO: Get Workspace Alias via Manifest. + super(host); + + this.structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); + + new UmbObserverController(this, this.contentTypeId, (id) => this.structure.loadType(id)); + } + + setData(data: UmbBlockDataType) { + this.#data.next(data); + this.#getDataResolver(); + } + + getData() { + return this.#data.getValue(); + } + + getEntityId() { + return this.getData()?.udi; + } + + getEntityType() { + return 'element'; + } + + getContentTypeId() { + return this.getData()?.contentTypeKey; + } + + async propertyValueByAlias(propertyAlias: string) { + await this.#getDataPromise; + + return this.#data.asObservablePart((data) => data?.[propertyAlias] as ReturnType); + } + + async getPropertyValue(propertyAlias: string) { + await this.#getDataPromise; + + return this.#data.getValue()?.[propertyAlias] as ReturnType; + } + + async setPropertyValue(alias: string, value: unknown) { + await this.#getDataPromise; + + this.#data.update({ [alias]: value }); + } + + public createPropertyDatasetContext(host: UmbControllerHost) { + return new UmbBlockElementPropertyDatasetContext(host, this); + } + + public destroy(): void { + this.#data.destroy(); + this.structure.destroy(); + super.destroy(); + } +} + +export default UmbBlockElementManager; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts new file mode 100644 index 0000000000..584fff6a95 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts @@ -0,0 +1,6 @@ +import { UmbBlockElementPropertyDatasetContext } from './block-element-property-dataset.context.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; + +export const UMB_BLOCK_ELEMENT_PROPERTY_DATASET_CONTEXT = new UmbContextToken( + 'UmbPropertyDatasetContext', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts new file mode 100644 index 0000000000..9f83a366ac --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts @@ -0,0 +1,50 @@ +import { UmbBlockElementManager } from './block-element-manager.js'; +import { UMB_BLOCK_ELEMENT_PROPERTY_DATASET_CONTEXT } from './block-element-property-dataset.context-token.js'; +import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import { type Observable } from '@umbraco-cms/backoffice/external/rxjs'; + +export class UmbBlockElementPropertyDatasetContext extends UmbBaseController implements UmbPropertyDatasetContext { + #elementManager: UmbBlockElementManager; + + // default data: + + getVariantId() { + return UmbVariantId.CreateInvariant(); + } + getEntityType() { + return this.#elementManager.getEntityType(); + } + getUnique() { + return this.#elementManager.getEntityId(); + } + + getName(): string | undefined { + return 'TODO: get label'; + } + readonly name: Observable = 'TODO: get label observable' as any; + + constructor(host: UmbControllerHost, elementManager: UmbBlockElementManager) { + // The controller alias, is a very generic name cause we want only one of these for this controller host. + super(host, UMB_PROPERTY_DATASET_CONTEXT.toString()); + this.#elementManager = elementManager; + + this.provideContext(UMB_BLOCK_ELEMENT_PROPERTY_DATASET_CONTEXT, this); + } + + /** + * TODO: Write proper JSDocs here. + */ + async propertyValueByAlias(propertyAlias: string) { + return await this.#elementManager.propertyValueByAlias(propertyAlias); + } + + /** + * TODO: Write proper JSDocs here. + */ + async setPropertyValue(propertyAlias: string, value: unknown) { + return this.#elementManager.setPropertyValue(propertyAlias, value); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 4fb2a70109..a70eeea9a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -1,12 +1,11 @@ import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; -import { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { UmbBlockElementManager } from './block-element-manager.js'; import { - UmbInvariantableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, + UmbSaveableWorkspaceContextInterface, UmbWorkspaceContextInterface, - UmbInvariantWorkspacePropertyDatasetContext, } from '@umbraco-cms/backoffice/workspace'; -import { UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbBooleanState, UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; @@ -14,22 +13,32 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; export class UmbBlockWorkspaceContext - extends UmbEditableWorkspaceContextBase - implements UmbInvariantableWorkspaceContextInterface + extends UmbEditableWorkspaceContextBase + implements UmbSaveableWorkspaceContextInterface { // Just for context token safety: public readonly IS_BLOCK_WORKSPACE_CONTEXT = true; + // + readonly workspaceAlias: string = 'Umb.Workspace.Block'; #entityType: string; + #isNew = new UmbBooleanState(undefined); + readonly isNew = this.#isNew.asObservable(); + #layout = new UmbObjectState(undefined); readonly layout = this.#layout.asObservable(); - #content = new UmbObjectState(undefined); - readonly content = this.#content.asObservable(); + // Consider not storing this here: + //#content = new UmbObjectState(undefined); + //readonly content = this.#content.asObservable(); - #settings = new UmbObjectState(undefined); - readonly settings = this.#settings.asObservable(); + // Consider not storing this here: + //#settings = new UmbObjectState(undefined); + //readonly settings = this.#settings.asObservable(); + + readonly content = new UmbBlockElementManager(this); + readonly settings = new UmbBlockElementManager(this); // TODO: Get the name of the contentElementType.. #label = new UmbStringState(undefined); @@ -38,14 +47,10 @@ export class UmbBlockWorkspaceContext { this.observe(context.value, (value) => { @@ -64,6 +69,8 @@ export class UmbBlockWorkspaceContext(propertyAlias: propertyAliasType) { + return this.#layout.asObservablePart( + (layout) => layout?.[propertyAlias as keyof LayoutDataType] as LayoutDataType[propertyAliasType], + ); } - async propertyValueByAlias(propertyAlias: string) { - return this.#layout.asObservablePart((data) => data?.[propertyAlias as keyof BlockTypeData] as ReturnType); - } - - getPropertyValue(propertyAlias: string) { + getPropertyValue(propertyAlias: propertyAliasType) { // TODO: Should be using Content, then we need a toggle or another method for getting settings. - return this.#layout.getValue()?.[propertyAlias as keyof BlockTypeData] as ReturnType; + return this.#layout.getValue()?.[propertyAlias as keyof LayoutDataType] as LayoutDataType[propertyAliasType]; } async setPropertyValue(alias: string, value: unknown) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts new file mode 100644 index 0000000000..be726e193c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts @@ -0,0 +1,4 @@ +export * from './block-element-property-dataset.context-token.js'; +export * from './block-workspace.context.js'; + +export const UMB_BLOCK_WORKSPACE_ALIAS = 'Umb.Workspace.Block'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index d97b804357..85454e80de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -1,13 +1,11 @@ -import { UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS } from '../../block-grid/workspace/index.js'; -import { UMB_BLOCK_LIST_TYPE_WORKSPACE_ALIAS } from '../../block-list/workspace/index.js'; -import { UMB_BLOCK_RTE_TYPE_WORKSPACE_ALIAS } from '../../block-rte/workspace/index.js'; +import { UMB_BLOCK_WORKSPACE_ALIAS } from './index.js'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; -import type { ManifestWorkspaceAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests: Array = [ +export const manifests: Array = [ { type: 'workspaceAction', - alias: 'Umb.WorkspaceAction.BlockType.Save', + alias: 'Umb.WorkspaceAction.Block.Save', name: 'Save Block Type Workspace Action', api: UmbSaveWorkspaceAction, meta: { @@ -18,12 +16,19 @@ export const manifests: Array = [ conditions: [ { alias: 'Umb.Condition.WorkspaceAlias', - oneOf: [ - UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS, - UMB_BLOCK_LIST_TYPE_WORKSPACE_ALIAS, - UMB_BLOCK_RTE_TYPE_WORKSPACE_ALIAS, - ], + oneOf: [UMB_BLOCK_WORKSPACE_ALIAS], }, ], }, + { + type: 'workspace', + name: 'Block List Type Workspace', + alias: UMB_BLOCK_WORKSPACE_ALIAS, + element: () => import('./block-workspace.element.js'), + api: () => import('./block-workspace.context.js'), + weight: 900, + meta: { + entityType: 'block', + }, + }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index 181ae88f59..096de98eb8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -11,6 +11,12 @@ export abstract class UmbEditableWorkspaceContextBase data?.id); - readonly documentTypeKey = this.#currentData.asObservablePart((data) => data?.contentTypeId); + readonly contentTypeId = this.#currentData.asObservablePart((data) => data?.contentTypeId); readonly variants = this.#currentData.asObservablePart((data) => data?.variants || []); readonly urls = this.#currentData.asObservablePart((data) => data?.urls || []); @@ -57,7 +57,7 @@ export class UmbDocumentWorkspaceContext this.structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); this.splitView = new UmbWorkspaceSplitViewManager(); - new UmbObserverController(this.host, this.documentTypeKey, (id) => this.structure.loadType(id)); + new UmbObserverController(this.host, this.contentTypeId, (id) => this.structure.loadType(id)); /* TODO: Make something to ensure all variants are present in data? Seems like a good idea?. From e410d61aa7a4da7393f0f46a62e6fba4bb67857b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 08:49:28 +0100 Subject: [PATCH 340/786] clean up --- .../documents/workspace/document-workspace.context.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 50ccef4db9..b7ffb8a22f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -24,13 +24,6 @@ export class UmbDocumentWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbVariantableWorkspaceContextInterface, UmbPublishableWorkspaceContextInterface { - /** - * The document is the current stored version of the document. - * For now lets not share this publicly as it can become confusing. - * TODO: This concept is to be able to compare if there is changes since the saved one. - */ - //#persistedData = new UmbObjectState(undefined); - /** * The document is the current state/draft version of the document. */ From c4f1d1f1afc154042c8dd573b5ad40c1b4c4272b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 09:01:53 +0100 Subject: [PATCH 341/786] move repository ownership to each specific workspace --- .../workspace/block-type-workspace.context.ts | 4 ++-- .../workspace/data-type-workspace.context.ts | 9 +++++---- .../editable-workspace-context-base.ts | 13 ++----------- .../workspace/dictionary-workspace.context.ts | 9 +++++---- .../workspace/document-workspace.context.ts | 5 +++-- .../workspace/media-type-workspace.context.ts | 9 +++++---- .../media/workspace/media-workspace.context.ts | 9 +++++---- .../workspace/member-group-workspace.context.ts | 7 +++++-- .../workspace/member-type-workspace.context.ts | 10 ++++++---- .../members/workspace/member-workspace.context.ts | 11 +++++++---- .../workspace/relation-type-workspace.context.ts | 11 +++++++---- .../language/language-workspace.context.ts | 7 +++++-- .../workspace/partial-view-workspace.context.ts | 11 +++++++---- .../scripts/workspace/script-workspace.context.ts | 14 +++++++------- .../workspace/stylesheet-workspace.context.ts | 11 +++++++---- .../workspace/template-workspace.context.ts | 11 +++++++---- .../workspace/user-group-workspace.context.ts | 11 +++++++---- .../user/user/workspace/user-workspace.context.ts | 11 +++++++---- 18 files changed, 99 insertions(+), 74 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index d866fb7ebf..3f18cb53c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -12,7 +12,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { ManifestWorkspace, PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; export class UmbBlockTypeWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbInvariantableWorkspaceContextInterface { // Just for context token safety: @@ -31,7 +31,7 @@ export class UmbBlockTypeWorkspaceContext + extends UmbEditableWorkspaceContextBase implements UmbInvariantableWorkspaceContextInterface { + public readonly repository: UmbDataTypeDetailRepository = new UmbDataTypeDetailRepository(this); #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); #getDataPromise?: Promise; @@ -59,8 +60,8 @@ export class UmbDataTypeWorkspaceContext #propertyEditorUiName = new UmbStringState(null); readonly propertyEditorUiName = this.#propertyEditorUiName.asObservable(); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.DataType', new UmbDataTypeDetailRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.DataType'); this.#observePropertyEditorUIAlias(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index 096de98eb8..9e8ac0fa0a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -5,20 +5,12 @@ import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; -export abstract class UmbEditableWorkspaceContextBase +export abstract class UmbEditableWorkspaceContextBase extends UmbBaseController implements UmbSaveableWorkspaceContextInterface { public readonly host: UmbControllerHost; public readonly workspaceAlias: string; - /* - * - * HER SKAL DU FORTSÆTTE I MORGEN, Det vil kræve ændringer i mange workspace contexts. - * - */ - // TODO: Get rid of the repository, as it prevents flexibility needed for Blocks and other workspaces that like to borrow the features of EditableWorkspace but not using one repository. - // TODO: I think we should get rid of the repository from this one. - public readonly repository: RepositoryType; // TODO: We could make a base type for workspace modal data, and use this here: As well as a base for the result, to make sure we always include the unique (instead of the object type) public readonly modalContext?: UmbModalContext<{ preset: object }>; @@ -26,11 +18,10 @@ export abstract class UmbEditableWorkspaceContextBase { (this.modalContext as UmbModalContext) = context; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts index 8565317de1..522faa75ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts @@ -3,23 +3,24 @@ import { type UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbDictionaryWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + public readonly repository: UmbDictionaryRepository = new UmbDictionaryRepository(this); #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); readonly name = this.#data.asObservablePart((data) => data?.name); readonly dictionary = this.#data.asObservablePart((data) => data); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.Dictionary', new UmbDictionaryRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.Dictionary'); } getData() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index b7ffb8a22f..666b6832de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -21,9 +21,10 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; type EntityType = DocumentResponseModel; export class UmbDocumentWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbVariantableWorkspaceContextInterface, UmbPublishableWorkspaceContextInterface { + public readonly repository: UmbDocumentRepository = new UmbDocumentRepository(this); /** * The document is the current state/draft version of the document. */ @@ -45,7 +46,7 @@ export class UmbDocumentWorkspaceContext constructor(host: UmbControllerHost) { // TODO: Get Workspace Alias via Manifest. - super(host, 'Umb.Workspace.Document', new UmbDocumentRepository(host)); + super(host, 'Umb.Workspace.Document'); this.structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); this.splitView = new UmbWorkspaceSplitViewManager(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index c26132a17f..eb0f474925 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -6,15 +6,16 @@ import { } from '@umbraco-cms/backoffice/workspace'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { type MediaTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; type EntityType = MediaTypeResponseModel; export class UmbMediaTypeWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + public readonly repository: UmbMediaTypeDetailRepository = new UmbMediaTypeDetailRepository(this); // Draft is located in structure manager // General for content types: @@ -33,8 +34,8 @@ export class UmbMediaTypeWorkspaceContext #isSorting = new UmbBooleanState(undefined); isSorting = this.#isSorting.asObservable(); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.MediaType', new UmbMediaTypeDetailRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.MediaType'); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index 906e3bb52d..4aa7016a1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -5,21 +5,22 @@ import { UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import { appendToFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; type EntityType = UmbMediaDetailModel; export class UmbMediaWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface, UmbApi { + public readonly repository: UmbMediaRepository = new UmbMediaRepository(this); #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.asObservablePart((data) => data?.name); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.Media', new UmbMediaRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.Media'); } getData() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts index 73c2e9c8b0..0e831ad172 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts @@ -10,11 +10,14 @@ import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controlle import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbMemberGroupWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbMemberGroupDetailRepository = new UmbMemberGroupDetailRepository(this); + constructor(host: UmbControllerHostElement) { - super(host, UMB_MEMBER_GROUP_WORKSPACE_ALIAS, new UmbMemberGroupDetailRepository(host)); + super(host, UMB_MEMBER_GROUP_WORKSPACE_ALIAS); } getEntityType(): string { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts index 17d2d43800..12b00f6861 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts @@ -4,21 +4,23 @@ import { UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; // TODO => use correct tpye type EntityType = any; export class UmbMemberTypeWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + public readonly repository: UmbMemberTypeRepository = new UmbMemberTypeRepository(this); + #data = new UmbObjectState(undefined); name = this.#data.asObservablePart((data) => data?.name); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.MemberType', new UmbMemberTypeRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.MemberType'); } async load(entityId: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts index 4d0252fed3..8aa6cf082f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts @@ -6,15 +6,18 @@ import { type UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbMemberWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { - constructor(host: UmbControllerHostElement) { - super(host, UMB_MEMBER_WORKSPACE_ALIAS, new UmbMemberDetailRepository(host)); + // + public readonly repository: UmbMemberDetailRepository = new UmbMemberDetailRepository(this); + + constructor(host: UmbControllerHost) { + super(host, UMB_MEMBER_WORKSPACE_ALIAS); } getEntityType(): string { diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts index f18b7574a8..2e1ed8db2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts @@ -5,20 +5,23 @@ import { } from '@umbraco-cms/backoffice/workspace'; import type { RelationTypeBaseModel, RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbRelationTypeWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbRelationTypeRepository = new UmbRelationTypeRepository(this); + #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); readonly name = this.#data.asObservablePart((data) => data?.name); readonly id = this.#data.asObservablePart((data) => data?.id); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.RelationType', new UmbRelationTypeRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.RelationType'); } async load(id: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts index e0fd57e2bc..9e8965d1e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts @@ -9,9 +9,12 @@ import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controlle import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbLanguageWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbLanguageRepository = new UmbLanguageRepository(this); + #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); @@ -20,7 +23,7 @@ export class UmbLanguageWorkspaceContext readonly validationErrors = this.#validationErrors.asObservable(); constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.Language', new UmbLanguageRepository(host)); + super(host, 'Umb.Workspace.Language'); } async load(isoCode: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index 3d61580c78..2ffb2c5e48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -2,7 +2,7 @@ import { UmbPartialViewRepository } from '../repository/partial-view.repository. import type { UmbPartialViewDetailModel } from '../types.js'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, @@ -12,9 +12,12 @@ import type { UpdatePartialViewRequestModel } from '@umbraco-cms/backoffice/back import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbPartialViewWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbPartialViewRepository = new UmbPartialViewRepository(this); + getEntityId(): string | undefined { return this.getData()?.path; } @@ -55,8 +58,8 @@ export class UmbPartialViewWorkspaceContext #isCodeEditorReady = new UmbBooleanState(false); readonly isCodeEditorReady = this.#isCodeEditorReady.asObservable(); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.PartialView', new UmbPartialViewRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.PartialView'); this.#loadCodeEditor(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 5ba3d3f7c9..2f24695b2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -2,15 +2,15 @@ import { UmbScripDetailModel } from '../types.js'; import { UmbScriptRepository } from '../repository/script.repository.js'; import { UMB_SCRIPT_WORKSPACE_ALIAS } from './manifests.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import { TextFileResponseModelBaseModel, UpdateScriptRequestModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< - UmbScriptRepository, - UmbScripDetailModel -> { +export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase { + // + public readonly repository: UmbScriptRepository = new UmbScriptRepository(this); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.asObservablePart((data) => data?.name); @@ -20,8 +20,8 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase< #isCodeEditorReady = new UmbBooleanState(false); isCodeEditorReady = this.#isCodeEditorReady.asObservable(); - constructor(host: UmbControllerHostElement) { - super(host, UMB_SCRIPT_WORKSPACE_ALIAS, new UmbScriptRepository(host)); + constructor(host: UmbControllerHost) { + super(host, UMB_SCRIPT_WORKSPACE_ALIAS); this.#loadCodeEditor(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index f6ba36b4ff..be2a197065 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -4,7 +4,7 @@ import { type UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import type { RichTextRuleModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; @@ -13,9 +13,12 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export type RichTextRuleModelSortable = RichTextRuleModel & { sortOrder?: number }; export class UmbStylesheetWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbStylesheetRepository = new UmbStylesheetRepository(this); + #data = new UmbObjectState(undefined); #rules = new UmbArrayState([], (rule) => rule.name); readonly data = this.#data.asObservable(); @@ -27,8 +30,8 @@ export class UmbStylesheetWorkspaceContext #isCodeEditorReady = new UmbBooleanState(false); readonly isCodeEditorReady = this.#isCodeEditorReady.asObservable(); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.StyleSheet', new UmbStylesheetRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.StyleSheet'); this.#rules.sortBy((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)); this.#loadCodeEditor(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index 25f6b50ac5..a2599d72e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -7,13 +7,16 @@ import { } from '@umbraco-cms/backoffice/workspace'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { TemplateItemResponseModel, TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbTemplateWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbTemplateRepository = new UmbTemplateRepository(this); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); #masterTemplate = new UmbObjectState(null); @@ -30,8 +33,8 @@ export class UmbTemplateWorkspaceContext // TODO: temp solution until we have automatic tree updates #treeRepository = new UmbTemplateTreeRepository(this.host); - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.Template', new UmbTemplateRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.Template'); this.#loadCodeEditor(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts index 66469140a3..1ad042cfca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts @@ -6,13 +6,16 @@ import { } from '@umbraco-cms/backoffice/workspace'; import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbArrayState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbUserGroupWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbUserGroupRepository = new UmbUserGroupRepository(this); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); @@ -21,8 +24,8 @@ export class UmbUserGroupWorkspaceContext #userRepository: UmbUserRepository; - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.UserGroup', new UmbUserGroupRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.UserGroup'); this.#userRepository = new UmbUserRepository(host); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts index aa684641ac..b66160bc72 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts @@ -5,7 +5,7 @@ import { UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UpdateUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextConsumerController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; @@ -13,13 +13,16 @@ import { UMB_CURRENT_USER_CONTEXT } from '@umbraco-cms/backoffice/current-user'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; export class UmbUserWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // + public readonly repository: UmbUserDetailRepository = new UmbUserDetailRepository(this); + #currentUserContext?: typeof UMB_CURRENT_USER_CONTEXT.TYPE; - constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.User', new UmbUserDetailRepository(host)); + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.User'); new UmbContextConsumerController(host, UMB_CURRENT_USER_CONTEXT, (instance) => { this.#currentUserContext = instance; From 214b86f284be9f209ef410d1c6c6cf623b22438f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 09:54:48 +0100 Subject: [PATCH 342/786] added some spacing --- .../core/data-type/workspace/data-type-workspace.context.ts | 2 ++ .../dictionary/workspace/dictionary-workspace.context.ts | 2 ++ .../documents/documents/workspace/document-workspace.context.ts | 1 + .../media/media-types/workspace/media-type-workspace.context.ts | 1 + .../packages/media/media/workspace/media-workspace.context.ts | 2 ++ .../member-types/workspace/member-type-workspace.context.ts | 1 + 6 files changed, 9 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts index 2dde4cd360..1681fcbf50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts @@ -25,7 +25,9 @@ export class UmbDataTypeWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbInvariantableWorkspaceContextInterface { + // public readonly repository: UmbDataTypeDetailRepository = new UmbDataTypeDetailRepository(this); + #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); #getDataPromise?: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts index 522faa75ed..88ae09b795 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts @@ -12,7 +12,9 @@ export class UmbDictionaryWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // public readonly repository: UmbDictionaryRepository = new UmbDictionaryRepository(this); + #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 666b6832de..917543cfaa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -24,6 +24,7 @@ export class UmbDocumentWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbVariantableWorkspaceContextInterface, UmbPublishableWorkspaceContextInterface { + // public readonly repository: UmbDocumentRepository = new UmbDocumentRepository(this); /** * The document is the current state/draft version of the document. diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index eb0f474925..0ce3082866 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -15,6 +15,7 @@ export class UmbMediaTypeWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // public readonly repository: UmbMediaTypeDetailRepository = new UmbMediaTypeDetailRepository(this); // Draft is located in structure manager diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index 4aa7016a1a..a01190998e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -14,7 +14,9 @@ export class UmbMediaWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface, UmbApi { + // public readonly repository: UmbMediaRepository = new UmbMediaRepository(this); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.asObservablePart((data) => data?.name); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts index 12b00f6861..c078c85f0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts @@ -14,6 +14,7 @@ export class UmbMemberTypeWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { + // public readonly repository: UmbMemberTypeRepository = new UmbMemberTypeRepository(this); #data = new UmbObjectState(undefined); From 94fdb63daa7be6bed777cfff5a7fa07e74da0087 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 10:32:37 +0100 Subject: [PATCH 343/786] pass in type models to structure managers --- ...ntent-type-container-structure-helper.class.ts | 6 +++--- ...ontent-type-property-structure-helper.class.ts | 6 +++--- ...type-workspace-view-edit-properties.element.ts | 15 ++++++--------- ...cument-type-workspace-view-edit-tab.element.ts | 3 ++- .../document-type-workspace-view-edit.element.ts | 3 ++- ...type-workspace-view-edit-properties.element.ts | 15 ++++++--------- .../media-type-workspace-view-edit-tab.element.ts | 3 ++- .../media-type-workspace-view-edit.element.ts | 3 ++- 8 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index aa6dd02893..85b3c016ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -7,12 +7,12 @@ import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/bac import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -export class UmbContentTypeContainerStructureHelper { +export class UmbContentTypeContainerStructureHelper { #host: UmbControllerHostElement; #init; #initResolver?: (value: unknown) => void; - #structure?: UmbContentTypePropertyStructureManager; + #structure?: UmbContentTypePropertyStructureManager; private _ownerType?: PropertyContainerTypes = 'Tab'; private _childType?: PropertyContainerTypes = 'Group'; @@ -42,7 +42,7 @@ export class UmbContentTypeContainerStructureHelper { this.#containers.sortBy((a, b) => (a.sortOrder || 0) - (b.sortOrder || 0)); } - public setStructureManager(structure: UmbContentTypePropertyStructureManager) { + public setStructureManager(structure: UmbContentTypePropertyStructureManager) { this.#structure = structure; this.#initResolver?.(undefined); this.#initResolver = undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index b2222ae5f8..d743d66d88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -7,12 +7,12 @@ import { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } fro import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -export class UmbContentTypePropertyStructureHelper { +export class UmbContentTypePropertyStructureHelper { #host: UmbControllerHostElement; #init; #initResolver?: (value: unknown) => void; - #structure?: UmbContentTypePropertyStructureManager; + #structure?: UmbContentTypePropertyStructureManager; private _containerType?: PropertyContainerTypes; private _isRoot?: boolean; @@ -34,7 +34,7 @@ export class UmbContentTypePropertyStructureHelper { return this.#structure?.contentTypes; } - public setStructureManager(structure: UmbContentTypePropertyStructureManager) { + public setStructureManager(structure: UmbContentTypePropertyStructureManager) { this.#structure = structure; this.#initResolver?.(undefined); this.#initResolver = undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index fbfee1c86f..682a48130c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -1,15 +1,12 @@ import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; import './document-type-workspace-view-edit-property.element.js'; +import { UmbDocumentTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; import { UmbSorterController, UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { - DocumentTypePropertyTypeResponseModel, - DocumentTypeResponseModel, - PropertyTypeModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @@ -89,13 +86,13 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle this._propertyStructureHelper.setContainerType(value); } - _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); + _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() _propertyStructure: Array = []; @state() - _ownerDocumentTypes?: DocumentTypeResponseModel[]; + _ownerDocumentTypes?: UmbDocumentTypeDetailModel[]; @state() protected _modalRouteNewProperty?: string; @@ -129,7 +126,7 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle .onSetup(async () => { const documentTypeId = this._ownerDocumentTypes?.find( (types) => types.containers?.find((containers) => containers.id === this.containerId), - )?.id; + )?.unique; if (documentTypeId === undefined) return false; const propertyData = await this._propertyStructureHelper.createPropertyScaffold(this._containerId); if (propertyData === undefined) return false; @@ -185,7 +182,7 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle return html`(this); @state() _groups: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index c6a496ad70..536ee6d5f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -1,4 +1,5 @@ import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import { UmbDocumentTypeDetailModel } from '../../../types.js'; import type { UmbDocumentTypeWorkspaceViewEditTabElement } from './document-type-workspace-view-edit-tab.element.js'; import { css, html, customElement, state, repeat, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; @@ -85,7 +86,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement extends UmbLitElement imple private _workspaceContext?: UmbDocumentTypeWorkspaceContext; - private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); + private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT_TOKEN.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index 84dd842b41..e7616aa919 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -1,15 +1,12 @@ import { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; import './media-type-workspace-view-edit-property.element.js'; +import { UmbMediaTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; import { UmbSorterController, UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { - MediaTypePropertyTypeResponseModel, - MediaTypeResponseModel, - PropertyTypeModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { MediaTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @@ -89,13 +86,13 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen this._propertyStructureHelper.setContainerType(value); } - _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); + _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() _propertyStructure: Array = []; @state() - _ownerMediaTypes?: MediaTypeResponseModel[]; + _ownerMediaTypes?: UmbMediaTypeDetailModel[]; @state() protected _modalRouteNewProperty?: string; @@ -127,7 +124,7 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen .onSetup(async () => { const mediaTypeId = this._ownerMediaTypes?.find( (types) => types.containers?.find((containers) => containers.id === this.containerId), - )?.id; + )?.unique; if (mediaTypeId === undefined) return false; const propertyData = await this._propertyStructureHelper.createPropertyScaffold(this._containerId); if (propertyData === undefined) return false; @@ -182,7 +179,7 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen return html`(this); @state() _groups: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts index 86b41a2c33..00498b7b8b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts @@ -1,4 +1,5 @@ import { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; +import { UmbMediaTypeDetailModel } from '../../../types.js'; import type { UmbMediaTypeWorkspaceViewEditTabElement } from './media-type-workspace-view-edit-tab.element.js'; import { css, html, customElement, state, repeat, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; @@ -85,7 +86,7 @@ export class UmbMediaTypeWorkspaceViewEditElement extends UmbLitElement implemen private _workspaceContext?: UmbMediaTypeWorkspaceContext; - private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); + private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT_TOKEN.TYPE; From f7ea51b8143dfe011e43ede3a29b76fb8bab0bff Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 10:42:28 +0100 Subject: [PATCH 344/786] temp ignore typescript --- .../content-type-structure-manager.class.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 8487c5e8ef..3fa912952d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -195,6 +195,9 @@ export class UmbContentTypePropertyStructureManager x.id === container.id); console.log(frozenContainers, containers); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: fix TS partial complaint this.#contentTypes.updateOne(contentTypeId, { containers }); } @@ -228,6 +231,9 @@ export class UmbContentTypePropertyStructureManager x.id === containerId); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: fix TS partial complaint this.#contentTypes.updateOne(contentTypeId, { containers }); } @@ -238,6 +244,9 @@ export class UmbContentTypePropertyStructureManager x.unique === contentTypeId)?.containers ?? []; const containers = frozenContainers.filter((x) => x.id !== containerId); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: fix TS partial complaint this.#contentTypes.updateOne(contentTypeId, { containers }); } @@ -275,6 +284,9 @@ export class UmbContentTypePropertyStructureManager x.unique === contentTypeId)?.properties ?? [])]; properties.push(property); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: fix TS partial complaint this.#contentTypes.updateOne(contentTypeId, { properties }); return property; @@ -288,6 +300,9 @@ export class UmbContentTypePropertyStructureManager x.id === property.id); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: fix TS partial complaint this.#contentTypes.updateOne(contentTypeId, { properties }); } @@ -299,6 +314,9 @@ export class UmbContentTypePropertyStructureManager x.id !== propertyId); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: fix TS partial complaint this.#contentTypes.updateOne(contentTypeId, { properties }); } @@ -314,6 +332,9 @@ export class UmbContentTypePropertyStructureManager x.id === propertyId); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: fix TS partial complaint this.#contentTypes.updateOne(contentTypeId, { properties }); } From 9c38b04b95a17ad9f123f21c00c8b5a32376cb91 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 10:43:23 +0100 Subject: [PATCH 345/786] temp ignore its error --- .../core/content-type/content-type-structure-manager.class.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 3fa912952d..febfae6e65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -181,6 +181,9 @@ export class UmbContentTypePropertyStructureManager Date: Tue, 16 Jan 2024 10:46:22 +0100 Subject: [PATCH 346/786] temp set type to any --- .../edit/document-workspace-view-edit-properties.element.ts | 2 +- .../views/edit/document-workspace-view-edit-tab.element.ts | 2 +- .../views/edit/document-workspace-view-edit.element.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts index b55a832368..9be6ded828 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts @@ -22,7 +22,7 @@ export class UmbDocumentWorkspaceViewEditPropertiesElement extends UmbLitElement this._propertyStructureHelper.setContainerType(value); } - _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); + _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() _propertyStructure: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts index fb1197c49e..c05bbbaa78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts @@ -41,7 +41,7 @@ export class UmbDocumentWorkspaceViewEditTabElement extends UmbLitElement { this._groupStructureHelper.setOwnerId(value); } - _groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); + _groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); @state() _groups: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts index 46259a0340..f51ea89ce3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts @@ -32,7 +32,7 @@ export class UmbDocumentWorkspaceViewEditElement extends UmbLitElement implement private _workspaceContext?: typeof UMB_DOCUMENT_WORKSPACE_CONTEXT.TYPE; - private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); + private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); constructor() { super(); From 5486e58d799b95b76918990a26f9c58f9bb3ac53 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 10:53:34 +0100 Subject: [PATCH 347/786] update to get content types from unique --- .../block-manager/block-manager.context.ts | 29 +++++++++---------- .../input-block-type.element.ts | 2 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block-manager.context.ts index 8303e6c1b8..1427d8d5fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-manager/block-manager.context.ts @@ -4,12 +4,11 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; -import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbDocumentTypeDetailModel, UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; // TODO: We are using backend model here, I think we should get our own model: -type ElementTypeModel = DocumentTypeResponseModel; +type ElementTypeModel = UmbDocumentTypeDetailModel; export class UmbBlockManagerContext< BlockType extends UmbBlockTypeBase = UmbBlockTypeBase, @@ -18,7 +17,7 @@ export class UmbBlockManagerContext< // #contentTypeRepository = new UmbDocumentTypeDetailRepository(this); - #contentTypes = new UmbArrayState(>[], (x) => x.id); + #contentTypes = new UmbArrayState(>[], (x) => x.unique); public readonly contentTypes = this.#contentTypes.asObservable(); #blockTypes = new UmbArrayState(>[], (x) => x.contentElementTypeKey); @@ -55,17 +54,17 @@ export class UmbBlockManagerContext< super(host, UMB_BLOCK_MANAGER_CONTEXT); } - async ensureContentType(id?: string) { - if (!id) return; - if (this.#contentTypes.getValue().find((x) => x.id === id)) return; - const contentType = await this.#loadContentType(id); + async ensureContentType(unique?: string) { + if (!unique) return; + if (this.#contentTypes.getValue().find((x) => x.unique === unique)) return; + const contentType = await this.#loadContentType(unique); return contentType; } - async #loadContentType(id?: string) { - if (!id) return {}; + async #loadContentType(unique?: string) { + if (!unique) return {}; - const { data } = await this.#contentTypeRepository.requestById(id); + const { data } = await this.#contentTypeRepository.requestByUnique(unique); if (!data) return {}; // We could have used the global store of Document Types, but to ensure we first react ones the latest is loaded then we have our own local store: @@ -76,12 +75,12 @@ export class UmbBlockManagerContext< } contentTypeOf(contentTypeUdi: string) { - const contentTypeId = getKeyFromUdi(contentTypeUdi); - return this.#contentTypes.asObservablePart((source) => source.find((x) => x.id === contentTypeId)); + const contentTypeUnique = getKeyFromUdi(contentTypeUdi); + return this.#contentTypes.asObservablePart((source) => source.find((x) => x.unique === contentTypeUnique)); } contentTypeNameOf(contentTypeUdi: string) { - const contentTypeId = getKeyFromUdi(contentTypeUdi); - return this.#contentTypes.asObservablePart((source) => source.find((x) => x.id === contentTypeId)?.name); + const contentTypeUnique = getKeyFromUdi(contentTypeUdi); + return this.#contentTypes.asObservablePart((source) => source.find((x) => x.unique === contentTypeUnique)?.name); } blockTypeOf(contentTypeKey: string) { return this.#blockTypes.asObservablePart((source) => diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 3936422192..011907bdfc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -72,7 +72,7 @@ export class UmbInputBlockTypeElement x.contentElementTypeKey === docType.id) === undefined, + this._items.find((x) => x.contentElementTypeKey === docType.unique) === undefined, }, }); From f66013afe31c1429ea444dabc54698eb2cc422df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 10:55:19 +0100 Subject: [PATCH 348/786] plumbing block data --- .../block/manager/block-manager.context.ts | 11 +++++ .../block/workspace/block-element-manager.ts | 2 +- .../workspace/block-workspace.context.ts | 44 +++++++++++++------ 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index ca144c58b4..cbda82520e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -88,6 +88,7 @@ export class UmbBlockManagerContext< source.find((x) => x.contentElementTypeKey === contentTypeKey), ); } + layoutOf(contentUdi: string) { return this.#layouts.asObservablePart((source) => source.find((x) => x.contentUdi === contentUdi)); } @@ -98,6 +99,16 @@ export class UmbBlockManagerContext< return this.#settings.asObservablePart((source) => source.find((x) => x.udi === udi)); } + updateLayout(contentUdi: string, layoutData: Partial) { + return this.#layouts.updateOne(contentUdi, layoutData); + } + updateContent(udi: string, contentData: Partial) { + return this.#contents.updateOne(udi, contentData); + } + updateSettings(udi: string, settingsData: Partial) { + return this.#settings.updateOne(udi, settingsData); + } + createBlock(layoutEntry: BlockLayoutType, contentElementTypeKey: string) { // Find block type. const blockType = this.#blockTypes.value.find((x) => x.contentElementTypeKey === contentElementTypeKey); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts index 933a196a99..e31a4adc59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -28,7 +28,7 @@ export class UmbBlockElementManager extends UmbBaseController { new UmbObserverController(this, this.contentTypeId, (id) => this.structure.loadType(id)); } - setData(data: UmbBlockDataType) { + setData(data: UmbBlockDataType | undefined) { this.#data.next(data); this.#getDataResolver(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index a70eeea9a8..35f9628419 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -13,7 +13,7 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; export class UmbBlockWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase> implements UmbSaveableWorkspaceContextInterface { // Just for context token safety: @@ -47,24 +47,42 @@ export class UmbBlockWorkspaceContext { - this.observe(context.value, (value) => { - /*if (value) { - const blockTypeData = value.find((x: UmbBlockTypeBase) => x.contentElementTypeKey === unique); - if (blockTypeData) { - this.#layout.next(blockTypeData); - return; + this.observe( + context.layoutOf(unique), + (layoutData) => { + // + // Content: + const contentUdi = layoutData?.contentUdi; + if (contentUdi) { + this.observe( + context.contentOf(contentUdi), + (contentData) => { + this.content.setData(contentData); + }, + 'observeContent', + ); } - } - // Fallback to undefined: - this.#layout.next(undefined); - */ - }); + + // Settings: + const settingsUdi = layoutData?.settingsUdi; + if (settingsUdi) { + this.observe( + context.contentOf(settingsUdi), + (settingsData) => { + this.content.setData(settingsData); + }, + 'observeSettings', + ); + } + }, + 'observeLayout', + ); }); } From f2f8380884f5c0c1d4e4906c86447047fde03697 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 11:49:29 +0100 Subject: [PATCH 349/786] generate new server models --- .../src/external/backend-api/src/index.ts | 18 +++++- .../models/CopyDocumentTypeRequestModel.ts | 9 +++ .../src/models/CopyMediaTypeRequestModel.ts | 9 +++ .../CurrenUserConfigurationResponseModel.ts | 13 +++++ .../models/DynamicRootContextRequestModel.ts | 12 ++++ .../DynamicRootQueryOriginRequestModel.ts | 10 ++++ .../models/DynamicRootQueryRequestModel.ts | 13 +++++ .../DynamicRootQueryStepRequestModel.ts | 10 ++++ .../src/models/DynamicRootRequestModel.ts | 13 +++++ .../src/models/DynamicRootResponseModel.ts | 9 +++ .../models/MoveDocumentTypeRequestModel.ts | 9 +++ .../src/models/MoveMediaTypeRequestModel.ts | 9 +++ .../PagedStylesheetOverviewResponseModel.ts | 12 ---- .../PartialViewSnippetItemResponseModel.ts | 2 +- .../PasswordConfigurationResponseModel.ts | 13 +++++ .../SecurityConfigurationResponseModel.ts | 11 ++++ .../models/StylesheetOverviewResponseModel.ts | 11 ---- .../models/UserConfigurationResponseModel.ts | 12 ++++ .../src/services/DataTypeResource.ts | 4 +- .../src/services/DictionaryResource.ts | 4 +- .../src/services/DocumentTypeResource.ts | 57 +++++++++++++++++++ .../src/services/DynamicRootResource.ts | 48 ++++++++++++++++ .../src/services/MediaTypeResource.ts | 57 +++++++++++++++++++ .../src/services/PartialViewResource.ts | 10 ++-- .../src/services/PreviewResource.ts | 39 +++++++++++++ .../src/services/SecurityResource.ts | 15 +++++ .../src/services/StylesheetResource.ts | 25 -------- .../src/services/TemporaryFileResource.ts | 14 +++++ .../backend-api/src/services/UserResource.ts | 30 ++++++++++ 29 files changed, 438 insertions(+), 60 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index 2c368ccb4d..8151b79486 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -25,6 +25,8 @@ export type { ContentTypeSortModel } from './models/ContentTypeSortModel'; export type { ContentUrlInfoModel } from './models/ContentUrlInfoModel'; export type { CopyDataTypeRequestModel } from './models/CopyDataTypeRequestModel'; export type { CopyDocumentRequestModel } from './models/CopyDocumentRequestModel'; +export type { CopyDocumentTypeRequestModel } from './models/CopyDocumentTypeRequestModel'; +export type { CopyMediaTypeRequestModel } from './models/CopyMediaTypeRequestModel'; export type { CreateContentForDocumentRequestModel } from './models/CreateContentForDocumentRequestModel'; export type { CreateContentForMediaRequestModel } from './models/CreateContentForMediaRequestModel'; export type { CreateContentTypeForDocumentTypeRequestModel } from './models/CreateContentTypeForDocumentTypeRequestModel'; @@ -56,6 +58,7 @@ export type { CreateUserRequestModel } from './models/CreateUserRequestModel'; export type { CreateUserResponseModel } from './models/CreateUserResponseModel'; export type { CultureReponseModel } from './models/CultureReponseModel'; export type { CurrentUserResponseModel } from './models/CurrentUserResponseModel'; +export type { CurrenUserConfigurationResponseModel } from './models/CurrenUserConfigurationResponseModel'; export type { DatabaseInstallResponseModel } from './models/DatabaseInstallResponseModel'; export type { DatabaseSettingsPresentationModel } from './models/DatabaseSettingsPresentationModel'; export type { DataTypeItemResponseModel } from './models/DataTypeItemResponseModel'; @@ -91,6 +94,12 @@ export type { DocumentVariantResponseModel } from './models/DocumentVariantRespo export type { DomainPresentationModel } from './models/DomainPresentationModel'; export type { DomainsPresentationModelBaseModel } from './models/DomainsPresentationModelBaseModel'; export type { DomainsResponseModel } from './models/DomainsResponseModel'; +export type { DynamicRootContextRequestModel } from './models/DynamicRootContextRequestModel'; +export type { DynamicRootQueryOriginRequestModel } from './models/DynamicRootQueryOriginRequestModel'; +export type { DynamicRootQueryRequestModel } from './models/DynamicRootQueryRequestModel'; +export type { DynamicRootQueryStepRequestModel } from './models/DynamicRootQueryStepRequestModel'; +export type { DynamicRootRequestModel } from './models/DynamicRootRequestModel'; +export type { DynamicRootResponseModel } from './models/DynamicRootResponseModel'; export type { EnableUserRequestModel } from './models/EnableUserRequestModel'; export type { EntityTreeItemResponseModel } from './models/EntityTreeItemResponseModel'; export type { FieldPresentationModel } from './models/FieldPresentationModel'; @@ -154,7 +163,9 @@ export { ModelsModeModel } from './models/ModelsModeModel'; export type { MoveDataTypeRequestModel } from './models/MoveDataTypeRequestModel'; export type { MoveDictionaryRequestModel } from './models/MoveDictionaryRequestModel'; export type { MoveDocumentRequestModel } from './models/MoveDocumentRequestModel'; +export type { MoveDocumentTypeRequestModel } from './models/MoveDocumentTypeRequestModel'; export type { MoveMediaRequestModel } from './models/MoveMediaRequestModel'; +export type { MoveMediaTypeRequestModel } from './models/MoveMediaTypeRequestModel'; export type { ObjectTypeResponseModel } from './models/ObjectTypeResponseModel'; export type { OkResult } from './models/OkResult'; export { OperatorModel } from './models/OperatorModel'; @@ -196,7 +207,6 @@ export type { PagedRelationResponseModel } from './models/PagedRelationResponseM export type { PagedSavedLogSearchResponseModel } from './models/PagedSavedLogSearchResponseModel'; export type { PagedSearcherResponseModel } from './models/PagedSearcherResponseModel'; export type { PagedSearchResultResponseModel } from './models/PagedSearchResultResponseModel'; -export type { PagedStylesheetOverviewResponseModel } from './models/PagedStylesheetOverviewResponseModel'; export type { PagedTagResponseModel } from './models/PagedTagResponseModel'; export type { PagedTelemetryResponseModel } from './models/PagedTelemetryResponseModel'; export type { PagedUserGroupResponseModel } from './models/PagedUserGroupResponseModel'; @@ -206,6 +216,7 @@ export type { PartialViewItemResponseModel } from './models/PartialViewItemRespo export type { PartialViewResponseModel } from './models/PartialViewResponseModel'; export type { PartialViewSnippetItemResponseModel } from './models/PartialViewSnippetItemResponseModel'; export type { PartialViewSnippetResponseModel } from './models/PartialViewSnippetResponseModel'; +export type { PasswordConfigurationResponseModel } from './models/PasswordConfigurationResponseModel'; export type { ProblemDetails } from './models/ProblemDetails'; export type { ProblemDetailsBuilderModel } from './models/ProblemDetailsBuilderModel'; export type { ProfilingStatusRequestModel } from './models/ProfilingStatusRequestModel'; @@ -245,6 +256,7 @@ export type { ScriptItemResponseModel } from './models/ScriptItemResponseModel'; export type { ScriptResponseModel } from './models/ScriptResponseModel'; export type { SearcherResponseModel } from './models/SearcherResponseModel'; export type { SearchResultResponseModel } from './models/SearchResultResponseModel'; +export type { SecurityConfigurationResponseModel } from './models/SecurityConfigurationResponseModel'; export type { ServerConfigurationBaseModel } from './models/ServerConfigurationBaseModel'; export type { ServerConfigurationItemResponseModel } from './models/ServerConfigurationItemResponseModel'; export type { ServerConfigurationResponseModel } from './models/ServerConfigurationResponseModel'; @@ -258,7 +270,6 @@ export type { StaticFileItemResponseModel } from './models/StaticFileItemRespons export { StatusResultTypeModel } from './models/StatusResultTypeModel'; export type { StylesheetFolderResponseModel } from './models/StylesheetFolderResponseModel'; export type { StylesheetItemResponseModel } from './models/StylesheetItemResponseModel'; -export type { StylesheetOverviewResponseModel } from './models/StylesheetOverviewResponseModel'; export type { StylesheetResponseModel } from './models/StylesheetResponseModel'; export type { TagResponseModel } from './models/TagResponseModel'; export { TelemetryLevelModel } from './models/TelemetryLevelModel'; @@ -311,6 +322,7 @@ export type { UpdateUserGroupRequestModel } from './models/UpdateUserGroupReques export type { UpdateUserGroupsOnUserRequestModel } from './models/UpdateUserGroupsOnUserRequestModel'; export type { UpdateUserRequestModel } from './models/UpdateUserRequestModel'; export type { UpgradeSettingsResponseModel } from './models/UpgradeSettingsResponseModel'; +export type { UserConfigurationResponseModel } from './models/UserConfigurationResponseModel'; export type { UserGroupBaseModel } from './models/UserGroupBaseModel'; export type { UserGroupItemResponseModel } from './models/UserGroupItemResponseModel'; export type { UserGroupResponseModel } from './models/UserGroupResponseModel'; @@ -338,6 +350,7 @@ export { DictionaryResource } from './services/DictionaryResource'; export { DocumentResource } from './services/DocumentResource'; export { DocumentBlueprintResource } from './services/DocumentBlueprintResource'; export { DocumentTypeResource } from './services/DocumentTypeResource'; +export { DynamicRootResource } from './services/DynamicRootResource'; export { HealthCheckResource } from './services/HealthCheckResource'; export { HelpResource } from './services/HelpResource'; export { IndexerResource } from './services/IndexerResource'; @@ -353,6 +366,7 @@ export { ModelsBuilderResource } from './services/ModelsBuilderResource'; export { ObjectTypesResource } from './services/ObjectTypesResource'; export { PackageResource } from './services/PackageResource'; export { PartialViewResource } from './services/PartialViewResource'; +export { PreviewResource } from './services/PreviewResource'; export { ProfilingResource } from './services/ProfilingResource'; export { PropertyTypeResource } from './services/PropertyTypeResource'; export { PublishedCacheResource } from './services/PublishedCacheResource'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts new file mode 100644 index 0000000000..2cdb0456a8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CopyDocumentTypeRequestModel = { + targetId?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts new file mode 100644 index 0000000000..03b5dbcb8e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CopyMediaTypeRequestModel = { + targetId?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts new file mode 100644 index 0000000000..4b398efa9d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + +export type CurrenUserConfigurationResponseModel = { + keepUserLoggedIn: boolean; + usernameIsEmail: boolean; + passwordConfiguration: PasswordConfigurationResponseModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts new file mode 100644 index 0000000000..fb40f6012e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DynamicRootContextRequestModel = { + id?: string | null; + parentId: string; + culture?: string | null; + segment?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts new file mode 100644 index 0000000000..916d280a5e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DynamicRootQueryOriginRequestModel = { + alias: string; + key?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts new file mode 100644 index 0000000000..429c72a4d4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DynamicRootQueryOriginRequestModel } from './DynamicRootQueryOriginRequestModel'; +import type { DynamicRootQueryStepRequestModel } from './DynamicRootQueryStepRequestModel'; + +export type DynamicRootQueryRequestModel = { + origin: DynamicRootQueryOriginRequestModel; + steps: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts new file mode 100644 index 0000000000..fad5ca362e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DynamicRootQueryStepRequestModel = { + alias: string; + documentTypeIds: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts new file mode 100644 index 0000000000..14d3647bc1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DynamicRootContextRequestModel } from './DynamicRootContextRequestModel'; +import type { DynamicRootQueryRequestModel } from './DynamicRootQueryRequestModel'; + +export type DynamicRootRequestModel = { + context: DynamicRootContextRequestModel; + query: DynamicRootQueryRequestModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts new file mode 100644 index 0000000000..da6a956c7b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DynamicRootResponseModel = { + roots: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts new file mode 100644 index 0000000000..ac8f344a4f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type MoveDocumentTypeRequestModel = { + targetId?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts new file mode 100644 index 0000000000..ea0f0e56ed --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type MoveMediaTypeRequestModel = { + targetId?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts deleted file mode 100644 index 72d0259304..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { StylesheetOverviewResponseModel } from './StylesheetOverviewResponseModel'; - -export type PagedStylesheetOverviewResponseModel = { - total: number; - items: Array; -}; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts index f3b4e084e4..0e4707e702 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts @@ -4,7 +4,7 @@ /* eslint-disable */ export type PartialViewSnippetItemResponseModel = { + id: string; name: string; - fileName: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts new file mode 100644 index 0000000000..090f5de3c9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type PasswordConfigurationResponseModel = { + minimumPasswordLength: number; + requireNonLetterOrDigit: boolean; + requireDigit: boolean; + requireLowercase: boolean; + requireUppercase: boolean; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts new file mode 100644 index 0000000000..560327a3a7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + +export type SecurityConfigurationResponseModel = { + passwordConfiguration: PasswordConfigurationResponseModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts deleted file mode 100644 index f7d446d806..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { FileSystemItemViewModelBaseModel } from './FileSystemItemViewModelBaseModel'; - -export type StylesheetOverviewResponseModel = (FileSystemItemViewModelBaseModel & { - name: string; -}); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts new file mode 100644 index 0000000000..03b2a5c612 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + +export type UserConfigurationResponseModel = { + canInviteUsers: boolean; + passwordConfiguration: PasswordConfigurationResponseModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts index 9bf3aa8360..7981a21e8f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts @@ -168,7 +168,7 @@ export class DataTypeResource { * @returns any Success * @throws ApiError */ - public static postDataTypeByIdMove({ + public static putDataTypeByIdMove({ id, requestBody, }: { @@ -176,7 +176,7 @@ export class DataTypeResource { requestBody?: MoveDataTypeRequestModel, }): CancelablePromise { return __request(OpenAPI, { - method: 'POST', + method: 'PUT', url: '/umbraco/management/api/v1/data-type/{id}/move', path: { 'id': id, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts index 1d32c33e6d..67a351992d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts @@ -168,7 +168,7 @@ export class DictionaryResource { * @returns any Success * @throws ApiError */ - public static postDictionaryByIdMove({ + public static putDictionaryByIdMove({ id, requestBody, }: { @@ -176,7 +176,7 @@ export class DictionaryResource { requestBody?: MoveDictionaryRequestModel, }): CancelablePromise { return __request(OpenAPI, { - method: 'POST', + method: 'PUT', url: '/umbraco/management/api/v1/dictionary/{id}/move', path: { 'id': id, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index c0720a7845..4fbf44ce69 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -2,11 +2,13 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { CopyDocumentTypeRequestModel } from '../models/CopyDocumentTypeRequestModel'; import type { CreateDocumentTypeRequestModel } from '../models/CreateDocumentTypeRequestModel'; import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; import type { DocumentTypeItemResponseModel } from '../models/DocumentTypeItemResponseModel'; import type { DocumentTypeResponseModel } from '../models/DocumentTypeResponseModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; +import type { MoveDocumentTypeRequestModel } from '../models/MoveDocumentTypeRequestModel'; import type { PagedDocumentTypeTreeItemResponseModel } from '../models/PagedDocumentTypeTreeItemResponseModel'; import type { UpdateDocumentTypeRequestModel } from '../models/UpdateDocumentTypeRequestModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; @@ -111,6 +113,61 @@ export class DocumentTypeResource { }); } + /** + * @returns string Created + * @throws ApiError + */ + public static postDocumentTypeByIdCopy({ + id, + requestBody, + }: { + id: string, + requestBody?: CopyDocumentTypeRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/document-type/{id}/copy', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + responseHeader: 'Location', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static putDocumentTypeByIdMove({ + id, + requestBody, + }: { + id: string, + requestBody?: MoveDocumentTypeRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'PUT', + url: '/umbraco/management/api/v1/document-type/{id}/move', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns string Created * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts new file mode 100644 index 0000000000..8b91f9bf26 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts @@ -0,0 +1,48 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { DynamicRootRequestModel } from '../models/DynamicRootRequestModel'; +import type { DynamicRootResponseModel } from '../models/DynamicRootResponseModel'; + +import type { CancelablePromise } from '../core/CancelablePromise'; +import { OpenAPI } from '../core/OpenAPI'; +import { request as __request } from '../core/request'; + +export class DynamicRootResource { + + /** + * @returns any Success + * @throws ApiError + */ + public static postDynamicRootQuery({ + requestBody, + }: { + requestBody?: DynamicRootRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/dynamic-root/query', + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + + /** + * @returns string Success + * @throws ApiError + */ + public static getDynamicRootSteps(): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/dynamic-root/steps', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + +} diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts index 3e8a455b1c..aed5c6885f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts @@ -2,11 +2,13 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { CopyMediaTypeRequestModel } from '../models/CopyMediaTypeRequestModel'; import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; import type { CreateMediaTypeRequestModel } from '../models/CreateMediaTypeRequestModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; import type { MediaTypeItemResponseModel } from '../models/MediaTypeItemResponseModel'; import type { MediaTypeResponseModel } from '../models/MediaTypeResponseModel'; +import type { MoveMediaTypeRequestModel } from '../models/MoveMediaTypeRequestModel'; import type { PagedMediaTypeTreeItemResponseModel } from '../models/PagedMediaTypeTreeItemResponseModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; import type { UpdateMediaTypeRequestModel } from '../models/UpdateMediaTypeRequestModel'; @@ -111,6 +113,61 @@ export class MediaTypeResource { }); } + /** + * @returns string Created + * @throws ApiError + */ + public static postMediaTypeByIdCopy({ + id, + requestBody, + }: { + id: string, + requestBody?: CopyMediaTypeRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/media-type/{id}/copy', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + responseHeader: 'Location', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static putMediaTypeByIdMove({ + id, + requestBody, + }: { + id: string, + requestBody?: MoveMediaTypeRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'PUT', + url: '/umbraco/management/api/v1/media-type/{id}/move', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns string Created * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts index f5be44f6c8..749b937918 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts @@ -259,16 +259,16 @@ export class PartialViewResource { * @returns any Success * @throws ApiError */ - public static getPartialViewSnippetByFileName({ - fileName, + public static getPartialViewSnippetById({ + id, }: { - fileName: string, + id: string, }): CancelablePromise { return __request(OpenAPI, { method: 'GET', - url: '/umbraco/management/api/v1/partial-view/snippet/{fileName}', + url: '/umbraco/management/api/v1/partial-view/snippet/{id}', path: { - 'fileName': fileName, + 'id': id, }, errors: { 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts new file mode 100644 index 0000000000..c3e7e42a75 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts @@ -0,0 +1,39 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CancelablePromise } from '../core/CancelablePromise'; +import { OpenAPI } from '../core/OpenAPI'; +import { request as __request } from '../core/request'; + +export class PreviewResource { + + /** + * @returns any Success + * @throws ApiError + */ + public static deletePreview(): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/preview', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static postPreview(): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/preview', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + +} diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts index e50f16374c..ac7de89f58 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts @@ -4,6 +4,7 @@ /* eslint-disable */ import type { ResetPasswordRequestModel } from '../models/ResetPasswordRequestModel'; import type { ResetPasswordTokenRequestModel } from '../models/ResetPasswordTokenRequestModel'; +import type { SecurityConfigurationResponseModel } from '../models/SecurityConfigurationResponseModel'; import type { VerifyResetPasswordTokenRequestModel } from '../models/VerifyResetPasswordTokenRequestModel'; import type { CancelablePromise } from '../core/CancelablePromise'; @@ -12,6 +13,20 @@ import { request as __request } from '../core/request'; export class SecurityResource { + /** + * @returns any Success + * @throws ApiError + */ + public static getSecurityConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/security/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts index 70101c3192..3c6984fc12 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts @@ -5,7 +5,6 @@ import type { CreateStylesheetFolderRequestModel } from '../models/CreateStylesheetFolderRequestModel'; import type { CreateStylesheetRequestModel } from '../models/CreateStylesheetRequestModel'; import type { PagedFileSystemTreeItemPresentationModel } from '../models/PagedFileSystemTreeItemPresentationModel'; -import type { PagedStylesheetOverviewResponseModel } from '../models/PagedStylesheetOverviewResponseModel'; import type { RenameStylesheetRequestModel } from '../models/RenameStylesheetRequestModel'; import type { StylesheetFolderResponseModel } from '../models/StylesheetFolderResponseModel'; import type { StylesheetItemResponseModel } from '../models/StylesheetItemResponseModel'; @@ -230,30 +229,6 @@ export class StylesheetResource { }); } - /** - * @returns PagedStylesheetOverviewResponseModel Success - * @throws ApiError - */ - public static getStylesheetOverview({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/stylesheet/overview', - query: { - 'skip': skip, - 'take': take, - }, - errors: { - 401: `The resource is protected and requires an authentication token`, - }, - }); - } - /** * @returns PagedFileSystemTreeItemPresentationModel Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts index 4e11a15af8..f4d68864f0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts @@ -81,4 +81,18 @@ export class TemporaryFileResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getTemporaryfileConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/temporaryfile/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 212388f45a..95cd03041d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -7,6 +7,7 @@ import type { CreateInitialPasswordUserRequestModel } from '../models/CreateInit import type { CreateUserRequestModel } from '../models/CreateUserRequestModel'; import type { CreateUserResponseModel } from '../models/CreateUserResponseModel'; import type { CurrentUserResponseModel } from '../models/CurrentUserResponseModel'; +import type { CurrenUserConfigurationResponseModel } from '../models/CurrenUserConfigurationResponseModel'; import type { DeleteUsersRequestModel } from '../models/DeleteUsersRequestModel'; import type { DirectionModel } from '../models/DirectionModel'; import type { DisableUserRequestModel } from '../models/DisableUserRequestModel'; @@ -19,6 +20,7 @@ import type { SetAvatarRequestModel } from '../models/SetAvatarRequestModel'; import type { UnlockUsersRequestModel } from '../models/UnlockUsersRequestModel'; import type { UpdateUserGroupsOnUserRequestModel } from '../models/UpdateUserGroupsOnUserRequestModel'; import type { UpdateUserRequestModel } from '../models/UpdateUserRequestModel'; +import type { UserConfigurationResponseModel } from '../models/UserConfigurationResponseModel'; import type { UserItemResponseModel } from '../models/UserItemResponseModel'; import type { UserOrderModel } from '../models/UserOrderModel'; import type { UserPermissionsResponseModel } from '../models/UserPermissionsResponseModel'; @@ -243,6 +245,20 @@ export class UserResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getUserConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/user/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -299,6 +315,20 @@ export class UserResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getUserCurrentConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/user/current/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError From c88a4ea0bbaaca79adfe8364afa08b6e03b80433 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 11:53:24 +0100 Subject: [PATCH 350/786] update mock data --- .../data/partial-view/partial-view.data.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts index b64026c89e..691e399ac9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts @@ -123,12 +123,12 @@ export const data: Array = [ export const snippets: Array = [ { name: 'Empty', - fileName: 'Empty', + id: '37f8786b-0b9b-466f-97b6-e736126fc545', content: '@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage', }, { name: 'Breadcrumb', - fileName: 'Breadcrumb', + id: '4ed59952-d0aa-4583-9c3d-9f6b7068dcea', content: `@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @using Umbraco.Cms.Core.Routing @using Umbraco.Extensions @@ -160,7 +160,7 @@ export const snippets: Array = [ }, { name: 'EditProfile', - fileName: 'EditProfile', + id: 'a3a41f2d-0891-49f6-b2a1-d75e342fe14e', content: `@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @using Umbraco.Cms.Core.Services @@ -293,32 +293,32 @@ export const snippets: Array = [ }, { name: 'Login', - fileName: 'Login', + id: 'd5a4f7fb-ca4f-4452-9071-0795db207103', content: 'login', }, { name: 'Login Status', - fileName: 'LoginStatus', + id: '5d0683c8-50b4-4f54-817f-60992ca2a92a', content: 'loginStatus', }, { name: 'Multinode Tree-picker', - fileName: 'MultinodeTree-picker', + id: 'c9e264c6-6281-4c94-a7cb-de2fb7c81c04', content: 'MultinodeTree-picker', }, { name: 'Navigation', - fileName: 'Navigation', + id: '1b836d87-969b-4f58-807e-c959a1175c65', content: 'Navigation', }, { name: 'Register Member', - fileName: 'RegisterMember', + id: '2f49f869-e382-4e7b-baa4-9da5cfbb134b', content: 'RegisterMember', }, { name: 'Site Map', - fileName: 'SiteMap', + id: 'e4a8577a-abf6-4bb1-a942-2a99b10558b4', content: 'SiteMap', }, ]; From 0939c10f2b338f1ecc1406c9ab1c321a440bb2d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 12:18:31 +0100 Subject: [PATCH 351/786] arragement --- .../block/block/workspace/block-element-manager.ts | 8 +++----- .../block/block/workspace/block-workspace.context.ts | 12 ++++-------- .../workspace/document-type-workspace.context.ts | 12 ++++++------ .../workspace/document-workspace.context.ts | 7 ++----- 4 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts index e31a4adc59..d6bd4723a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -1,7 +1,7 @@ import { UmbBlockDataType } from '../types.js'; import { UmbBlockElementPropertyDatasetContext } from './block-element-property-dataset.context.js'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; -import { UmbObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; @@ -17,15 +17,13 @@ export class UmbBlockElementManager extends UmbBaseController { readonly unique = this.#data.asObservablePart((data) => data?.udi); readonly contentTypeId = this.#data.asObservablePart((data) => data?.contentTypeKey); - readonly structure; + readonly structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); constructor(host: UmbControllerHost) { // TODO: Get Workspace Alias via Manifest. super(host); - this.structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); - - new UmbObserverController(this, this.contentTypeId, (id) => this.structure.loadType(id)); + this.observe(this.contentTypeId, (id) => this.structure.loadType(id)); } setData(data: UmbBlockDataType | undefined) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 35f9628419..aaaa6254f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -28,16 +28,10 @@ export class UmbBlockWorkspaceContext(undefined); readonly layout = this.#layout.asObservable(); - - // Consider not storing this here: - //#content = new UmbObjectState(undefined); - //readonly content = this.#content.asObservable(); - - // Consider not storing this here: - //#settings = new UmbObjectState(undefined); - //readonly settings = this.#settings.asObservable(); + readonly contentUdi = this.#layout.asObservablePart((x) => x?.contentUdi); readonly content = new UmbBlockElementManager(this); + readonly settings = new UmbBlockElementManager(this); // TODO: Get the name of the contentElementType.. @@ -56,6 +50,8 @@ export class UmbBlockWorkspaceContext { + this.#layout.next(layoutData as LayoutDataType); + // // Content: const contentUdi = layoutData?.contentUdi; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index fb5299e882..7f8a06a8ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -14,10 +14,12 @@ import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; type EntityType = DocumentTypeResponseModel; export class UmbDocumentTypeWorkspaceContext - extends UmbEditableWorkspaceContextBase + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { - // Draft is located in structure manager + // + readonly repository = new UmbDocumentTypeDetailRepository(this); + // Data/Draft is located in structure manager // General for content types: readonly data; @@ -38,15 +40,13 @@ export class UmbDocumentTypeWorkspaceContext readonly defaultTemplateId; readonly cleanup; - readonly structure; + readonly structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); #isSorting = new UmbBooleanState(undefined); isSorting = this.#isSorting.asObservable(); constructor(host: UmbControllerHostElement) { - super(host, 'Umb.Workspace.DocumentType', new UmbDocumentTypeDetailRepository(host)); - - this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); + super(host, 'Umb.Workspace.DocumentType'); // General for content types: this.data = this.structure.ownerContentType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 917543cfaa..93c7683289 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -42,16 +42,13 @@ export class UmbDocumentWorkspaceContext readonly urls = this.#currentData.asObservablePart((data) => data?.urls || []); readonly templateId = this.#currentData.asObservablePart((data) => data?.templateId || null); - readonly structure; - readonly splitView; + readonly structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); + readonly splitView = new UmbWorkspaceSplitViewManager(); constructor(host: UmbControllerHost) { // TODO: Get Workspace Alias via Manifest. super(host, 'Umb.Workspace.Document'); - this.structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); - this.splitView = new UmbWorkspaceSplitViewManager(); - new UmbObserverController(this.host, this.contentTypeId, (id) => this.structure.loadType(id)); /* From ab1baf6e9fa5219b2f5c6f69afd6a51a7b05887d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 12:31:46 +0100 Subject: [PATCH 352/786] update partial view snippets to support new snippet id --- .../data/partial-view/partial-view.db.ts | 6 ++-- .../move/data-type-move.server.data-source.ts | 2 +- ...rtial-view-create-options-modal.element.ts | 2 +- .../create-from-snippet-modal.ts | 4 +-- .../partial-view-workspace.context.ts | 16 ++++++---- .../partial-view-workspace.element.ts | 30 +++++++++++++------ 6 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts index 8ef9315b19..aa7c29dc42 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts @@ -26,15 +26,15 @@ class UmbPartialViewMockDB extends UmbFileSystemMockDbBase item.fileName === fileName); + getSnippet(id: string): PartialViewSnippetResponseModel | undefined { + return snippets.find((item) => item.id === id); } } const createSnippetItem = (item: PartialViewSnippetResponseModel): PartialViewSnippetItemResponseModel => { return { name: item.name, - fileName: item.fileName, + id: item.id, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts index 852385bd5f..2d31037380 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts @@ -33,7 +33,7 @@ export class UmbDataTypeMoveServerDataSource implements UmbMoveDataSource { return tryExecuteAndNotify( this.#host, - DataTypeResource.postDataTypeByIdMove({ + DataTypeResource.putDataTypeByIdMove({ id: unique, requestBody: { targetId: targetUnique, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts index 9f1f368c2e..1f437c1c42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -76,7 +76,7 @@ export class UmbPartialViewCreateOptionsModalElement extends UmbModalBaseElement } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts index 98c736ada6..ca284fee0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts @@ -25,8 +25,8 @@ export class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseEle this._snippets = data.items.map((snippet) => { return { name: snippet.name, - path: `section/settings/workspace/partial-view/create/${this.data?.parentUnique || 'null'}/${ - snippet.fileName + path: `section/settings/workspace/partial-view/create/${this.data?.parentUnique || 'null'}/snippet/${ + snippet.id }`, }; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index ab0efaaa5b..95c48c16cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -69,9 +69,13 @@ export class UmbPartialViewWorkspaceContext } } - async create(parentUnique: string | null, snippetName = 'Empty') { - const { data: snippet } = await this.#getSnippet(snippetName); - const snippetContent = snippet?.content ?? ''; + async create(parentUnique: string | null, snippetId?: string) { + let snippetContent = ''; + + if (snippetId) { + const { data: snippet } = await this.#getSnippet(snippetId); + snippetContent = snippet?.content || ''; + } const { data } = await this.repository.createScaffold(parentUnique, { content: snippetContent }); @@ -104,11 +108,11 @@ export class UmbPartialViewWorkspaceContext this.#data.destroy(); } - #getSnippet(snippetFileName: string) { + #getSnippet(snippetId: string) { return tryExecuteAndNotify( this, - PartialViewResource.getPartialViewSnippetByFileName({ - fileName: snippetFileName, + PartialViewResource.getPartialViewSnippetById({ + id: snippetId, }), ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index c27fb89fe6..9a18abcd41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -17,18 +17,20 @@ export class UmbPartialViewWorkspaceElement extends UmbLitElement { @state() _routes: UmbRoute[] = [ { - path: 'create/:parentUnique/:snippetName', + path: 'create/:parentUnique/snippet/:snippetId', component: this.#createElement, setup: async (component: PageComponent, info: IRoutingInfo) => { const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; - const snippetName = info.match.params.snippetName; - await this.#workspaceContext.create(parentUnique, snippetName); - - new UmbWorkspaceIsNewRedirectController( - this, - this.#workspaceContext, - this.shadowRoot!.querySelector('umb-router-slot')!, - ); + const snippetId = info.match.params.snippetId; + await this.#onCreate(parentUnique, snippetId); + }, + }, + { + path: 'create/:parentUnique', + component: this.#createElement, + setup: async (component: PageComponent, info: IRoutingInfo) => { + const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique; + await this.#onCreate(parentUnique); }, }, { @@ -41,6 +43,16 @@ export class UmbPartialViewWorkspaceElement extends UmbLitElement { }, ]; + #onCreate = async (parentUnique: string | null, snippetId: string | undefined) => { + await this.#workspaceContext.create(parentUnique, snippetId); + + new UmbWorkspaceIsNewRedirectController( + this, + this.#workspaceContext, + this.shadowRoot!.querySelector('umb-router-slot')!, + ); + }; + render() { return html``; } From 5f295991e5736e9cfb4d09dcaebcaf1b34d41445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 12:31:57 +0100 Subject: [PATCH 353/786] workspace views --- .../block-workspace-editor.element.ts | 2 +- .../block/block/workspace/manifests.ts | 18 ++ ...-workspace-view-edit-properties.element.ts | 72 ++++++++ .../block-workspace-view-edit-tab.element.ts | 112 ++++++++++++ .../edit/block-workspace-view-edit.element.ts | 171 ++++++++++++++++++ 5 files changed, 374 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts index f4b12415ff..939579de9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts @@ -24,7 +24,7 @@ export class UmbBlockWorkspaceEditorElement extends UmbLitElement { this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (instance) => { this.#workspaceContext = instance; - this.#workspaceContext?.createPropertyDatasetContext(this); + this.#workspaceContext?.content.createPropertyDatasetContext(this); }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index 85454e80de..3afce80e47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -31,4 +31,22 @@ export const manifests: Array = [ entityType: 'block', }, }, + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.Block.Content', + name: 'Block Workspace Content View', + js: () => import('./views/edit/block-workspace-view-edit.element.js'), + weight: 1000, + meta: { + label: 'Content', + pathname: 'content', + icon: 'icon-document', + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_BLOCK_WORKSPACE_ALIAS, + }, + ], + }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts new file mode 100644 index 0000000000..cf683c464a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -0,0 +1,72 @@ +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; +import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; + +@customElement('umb-block-workspace-view-edit-properties') +export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { + @property({ type: String, attribute: 'container-name', reflect: false }) + public get containerName(): string | undefined { + return this._propertyStructureHelper.getContainerName(); + } + public set containerName(value: string | undefined) { + this._propertyStructureHelper.setContainerName(value); + } + + @property({ type: String, attribute: 'container-type', reflect: false }) + public get containerType(): PropertyContainerTypes | undefined { + return this._propertyStructureHelper.getContainerType(); + } + public set containerType(value: PropertyContainerTypes | undefined) { + this._propertyStructureHelper.setContainerType(value); + } + + _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); + + @state() + _propertyStructure: Array = []; + + constructor() { + super(); + + this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { + this._propertyStructureHelper.setStructureManager(workspaceContext.content.structure); + }); + this.observe(this._propertyStructureHelper.propertyStructure, (propertyStructure) => { + this._propertyStructure = propertyStructure; + }); + } + + render() { + return repeat( + this._propertyStructure, + (property) => property.alias, + (property) => + html` `, + ); + } + + static styles = [ + UmbTextStyles, + css` + .property { + border-bottom: 1px solid var(--uui-color-divider); + } + .property:last-child { + border-bottom: 0; + } + `, + ]; +} + +export default UmbBlockWorkspaceViewEditPropertiesElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-block-workspace-view-edit-properties': UmbBlockWorkspaceViewEditPropertiesElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts new file mode 100644 index 0000000000..315bdc107a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts @@ -0,0 +1,112 @@ +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; +import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; + +import './block-workspace-view-edit-properties.element.js'; + +@customElement('umb-block-workspace-view-edit-tab') +export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { + private _tabName?: string | undefined; + + @property({ type: String }) + public get tabName(): string | undefined { + return this._groupStructureHelper.getName(); + } + public set tabName(value: string | undefined) { + if (value === this._tabName) return; + const oldValue = this._tabName; + this._tabName = value; + this._groupStructureHelper.setName(value); + this.requestUpdate('tabName', oldValue); + } + + @property({ type: Boolean }) + public get noTabName(): boolean { + return this._groupStructureHelper.getIsRoot(); + } + public set noTabName(value: boolean) { + this._groupStructureHelper.setIsRoot(value); + } + + private _ownerTabId?: string | null; + @property({ type: String }) + public get ownerTabId(): string | null | undefined { + return this._ownerTabId; + } + public set ownerTabId(value: string | null | undefined) { + if (value === this._ownerTabId) return; + this._ownerTabId = value; + this._groupStructureHelper.setOwnerId(value); + } + + _groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); + + @state() + _groups: Array = []; + + @state() + _hasProperties = false; + + constructor() { + super(); + + this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { + this._groupStructureHelper.setStructureManager(workspaceContext.content.structure); + }); + this.observe(this._groupStructureHelper.containers, (groups) => { + this._groups = groups; + }); + this.observe(this._groupStructureHelper.hasProperties, (hasProperties) => { + this._hasProperties = hasProperties; + }); + } + + render() { + return html` + ${this._hasProperties + ? html` + + + + ` + : ''} + ${repeat( + this._groups, + (group) => group.name, + (group) => + html` + + `, + )} + `; + } + + static styles = [ + UmbTextStyles, + css` + uui-box { + --uui-box-default-padding: 0 var(--uui-size-space-5); + } + uui-box:not(:first-child) { + margin-top: var(--uui-size-layout-1); + } + `, + ]; +} + +export default UmbBlockWorkspaceViewEditTabElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-block-workspace-view-edit-tab': UmbBlockWorkspaceViewEditTabElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts new file mode 100644 index 0000000000..ddb4f3b067 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts @@ -0,0 +1,171 @@ +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; +import type { UmbBlockWorkspaceViewEditTabElement } from './block-workspace-view-edit-tab.element.js'; +import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import { + encodeFolderName, + UmbRoute, + UmbRouterSlotChangeEvent, + UmbRouterSlotInitEvent, +} from '@umbraco-cms/backoffice/router'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; + +@customElement('umb-block-workspace-view-edit') +export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements UmbWorkspaceViewElement { + //private _hasRootProperties = false; + private _hasRootGroups = false; + + @state() + private _routes: UmbRoute[] = []; + + @state() + _tabs?: Array; + + @state() + private _routerPath?: string; + + @state() + private _activePath = ''; + + private _workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; + + private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); + + constructor() { + super(); + + this._tabsStructureHelper.setIsRoot(true); + this._tabsStructureHelper.setContainerChildType('Tab'); + this.observe(this._tabsStructureHelper.containers, (tabs) => { + this._tabs = tabs; + this._createRoutes(); + }); + + // _hasRootProperties can be gotten via _tabsStructureHelper.hasProperties. But we do not support root properties currently. + + this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { + this._workspaceContext = workspaceContext; + this._tabsStructureHelper.setStructureManager(workspaceContext.content.structure); + this._observeRootGroups(); + }); + } + + private _observeRootGroups() { + if (!this._workspaceContext) return; + + this.observe( + this._workspaceContext.content.structure.hasRootContainers('Group'), + (hasRootGroups) => { + this._hasRootGroups = hasRootGroups; + this._createRoutes(); + }, + '_observeGroups', + ); + } + + private _createRoutes() { + if (!this._tabs || !this._workspaceContext) return; + const routes: UmbRoute[] = []; + + if (this._tabs.length > 0) { + this._tabs?.forEach((tab) => { + const tabName = tab.name ?? ''; + routes.push({ + path: `tab/${encodeFolderName(tabName).toString()}`, + component: () => import('./block-workspace-view-edit-tab.element.js'), + setup: (component) => { + (component as UmbBlockWorkspaceViewEditTabElement).tabName = tabName; + // TODO: Consider if we can link these more simple, and not parse this on. + // Instead have the structure manager looking at wether one of the OwnerALikecontainers is in the owner document. + (component as UmbBlockWorkspaceViewEditTabElement).ownerTabId = + this._workspaceContext?.content.structure.isOwnerContainer(tab.id!) ? tab.id : undefined; + }, + }); + }); + } + + if (this._hasRootGroups) { + routes.push({ + path: '', + component: () => import('./block-workspace-view-edit-tab.element.js'), + setup: (component) => { + (component as UmbBlockWorkspaceViewEditTabElement).noTabName = true; + (component as UmbBlockWorkspaceViewEditTabElement).ownerTabId = null; + }, + }); + } + + if (routes.length !== 0) { + routes.push({ + path: '', + redirectTo: routes[0]?.path, + }); + } + + this._routes = routes; + } + + render() { + if (!this._routes || !this._tabs) return; + return html` + + ${this._routerPath && (this._tabs.length > 1 || (this._tabs.length === 1 && this._hasRootGroups)) + ? html` + ${this._hasRootGroups && this._tabs.length > 0 + ? html` + Content + ` + : ''} + ${repeat( + this._tabs, + (tab) => tab.name, + (tab) => { + const path = this._routerPath + '/tab/' + encodeFolderName(tab.name || ''); + return html`${tab.name}`; + }, + )} + ` + : ''} + + { + this._routerPath = event.target.absoluteRouterPath; + }} + @change=${(event: UmbRouterSlotChangeEvent) => { + this._activePath = event.target.absoluteActiveViewPath || ''; + }}> + + + `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + height: 100%; + --uui-tab-background: var(--uui-color-surface); + } + `, + ]; +} + +export default UmbBlockWorkspaceViewEditElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-block-workspace-view-edit': UmbBlockWorkspaceViewEditElement; + } +} From 6fbbdb614dfd8f4716bf748f16401cf216c07f1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 12:44:26 +0100 Subject: [PATCH 354/786] tsc fixes --- .../block/workspace/block-workspace.context.ts | 2 +- .../editable-workspace-context-base.ts | 2 -- .../workspace-is-new-redirect-controller.ts | 2 +- .../repository/dictionary.repository.ts | 16 ++++++---------- .../workspace/dictionary-workspace.context.ts | 2 +- .../workspace/document-type-workspace.context.ts | 2 +- .../workspace/document-workspace.context.ts | 2 +- .../detail/media-type-detail.repository.ts | 4 ++-- .../media/media/repository/media.repository.ts | 4 ++-- .../repository/partial-view.repository.ts | 4 ++-- .../repository/stylesheet.repository.ts | 4 ++-- .../workspace/template-workspace.context.ts | 2 +- 12 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index aaaa6254f9..972e7dfdb0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -13,7 +13,7 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; export class UmbBlockWorkspaceContext - extends UmbEditableWorkspaceContextBase> + extends UmbEditableWorkspaceContextBase implements UmbSaveableWorkspaceContextInterface { // Just for context token safety: diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index 9e8ac0fa0a..392a1c2791 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -9,7 +9,6 @@ export abstract class UmbEditableWorkspaceContextBase extends UmbBaseController implements UmbSaveableWorkspaceContextInterface { - public readonly host: UmbControllerHost; public readonly workspaceAlias: string; // TODO: We could make a base type for workspace modal data, and use this here: As well as a base for the result, to make sure we always include the unique (instead of the object type) @@ -20,7 +19,6 @@ export abstract class UmbEditableWorkspaceContextBase constructor(host: UmbControllerHost, workspaceAlias: string) { super(host); - this.host = host; this.workspaceAlias = workspaceAlias; this.provideContext(UMB_WORKSPACE_CONTEXT, this); this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts index 1dbcb85695..b32ff1cd27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts @@ -16,7 +16,7 @@ import { ensurePathEndsWithSlash } from '@umbraco-cms/backoffice/utils'; export class UmbWorkspaceIsNewRedirectController extends UmbBaseController { constructor( host: UmbControllerHost, - workspaceContext: UmbEditableWorkspaceContextBase, + workspaceContext: UmbEditableWorkspaceContextBase, router: UmbRouterSlotElement, ) { super(host, 'isNewRedirectController'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts index f03727b18d..119fdcdd91 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts @@ -1,15 +1,15 @@ import { type UmbDictionaryTreeStore, UMB_DICTIONARY_TREE_STORE_CONTEXT } from '../tree/index.js'; import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT_TOKEN } from './dictionary.store.js'; import { UmbDictionaryDetailServerDataSource } from './sources/dictionary-detail.server.data-source.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; -import { +import type { CreateDictionaryItemRequestModel, DictionaryItemResponseModel, UpdateDictionaryItemRequestModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { type UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbTemporaryFileRepository } from '@umbraco-cms/backoffice/temporary-file'; @@ -28,20 +28,16 @@ export class UmbDictionaryRepository #treeStore?: UmbDictionaryTreeStore; - #detailSource: UmbDictionaryDetailServerDataSource; + #detailSource: UmbDictionaryDetailServerDataSource = new UmbDictionaryDetailServerDataSource(this); #detailStore?: UmbDictionaryStore; - #temporaryFileRepository: UmbTemporaryFileRepository; + #temporaryFileRepository: UmbTemporaryFileRepository = new UmbTemporaryFileRepository(this); #notificationContext?: UmbNotificationContext; - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host); - // TODO: figure out how spin up get the correct data source - this.#detailSource = new UmbDictionaryDetailServerDataSource(this); - this.#temporaryFileRepository = new UmbTemporaryFileRepository(host); - this.#init = Promise.all([ this.consumeContext(UMB_DICTIONARY_STORE_CONTEXT_TOKEN, (instance) => { this.#detailStore = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts index 88ae09b795..7324e5ae02 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts @@ -13,7 +13,7 @@ export class UmbDictionaryWorkspaceContext implements UmbSaveableWorkspaceContextInterface { // - public readonly repository: UmbDictionaryRepository = new UmbDictionaryRepository(this); + public readonly repository = new UmbDictionaryRepository(this); #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index 7f8a06a8ac..723232259b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -40,7 +40,7 @@ export class UmbDocumentTypeWorkspaceContext readonly defaultTemplateId; readonly cleanup; - readonly structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); + readonly structure = new UmbContentTypePropertyStructureManager(this, this.repository); #isSorting = new UmbBooleanState(undefined); isSorting = this.#isSorting.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 93c7683289..e63769fb36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -49,7 +49,7 @@ export class UmbDocumentWorkspaceContext // TODO: Get Workspace Alias via Manifest. super(host, 'Umb.Workspace.Document'); - new UmbObserverController(this.host, this.contentTypeId, (id) => this.structure.loadType(id)); + this.observe(this.contentTypeId, (id) => this.structure.loadType(id)); /* TODO: Make something to ensure all variants are present in data? Seems like a good idea?. diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts index d06016b560..65d269ad6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts @@ -3,7 +3,7 @@ import { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT, UmbMediaTypeItemStore } from '../ite import { UmbMediaTypeServerDataSource } from './media-type-detail.server.data-source.js'; import { UmbMediaTypeDetailStore, UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.js'; import { type UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { CreateMediaTypeRequestModel, @@ -33,7 +33,7 @@ export class UmbMediaTypeDetailRepository #notificationContext?: UmbNotificationContext; - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host); // TODO: figure out how spin up get the correct data source diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts index 114b08de7d..00a3b6fe1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts @@ -4,7 +4,7 @@ import { UMB_MEDIA_STORE_CONTEXT, UmbMediaStore } from './media.store.js'; import { UmbMediaDetailServerDataSource } from './sources/media-detail.server.data-source.js'; import { UmbMediaItemServerDataSource } from './sources/media-item.server.data-source.js'; import { UMB_MEDIA_ITEM_STORE_CONTEXT, UmbMediaItemStore } from './media-item.store.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; @@ -27,7 +27,7 @@ export class UmbMediaRepository #notificationContext?: UmbNotificationContext; - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host); // TODO: figure out how spin up get the correct data source diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts index dc93248c61..5cc2254a74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view.repository.ts @@ -2,7 +2,7 @@ import { UmbPartialViewTreeRepository } from '../tree/index.js'; import { UmbPartialViewDetailServerDataSource } from './sources/partial-view-detail.server.data-source.js'; import { UmbPartialViewFolderServerDataSource } from './sources/partial-view-folder.server.data-source.js'; import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { CreateFolderRequestModel, @@ -42,7 +42,7 @@ export class UmbPartialViewRepository // TODO: temp solution until it is automated #treeRepository = new UmbPartialViewTreeRepository(this); - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host); this.#detailDataSource = new UmbPartialViewDetailServerDataSource(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts index f1ec6a02dc..e9f8c14201 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts @@ -3,7 +3,7 @@ import { UmbStylesheetTreeRepository } from '../tree/index.js'; import { UmbStylesheetServerDataSource } from './sources/stylesheet.server.data.js'; import { UmbStylesheetFolderServerDataSource } from './sources/stylesheet.folder.server.data.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { DataSourceResponse, UmbDataSourceErrorResponse, @@ -40,7 +40,7 @@ export class UmbStylesheetRepository // TODO: temp solution until it is automated #treeRepository = new UmbStylesheetTreeRepository(this); - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host); // TODO: figure out how spin up get the correct data source diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index a2599d72e2..f126f151e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -31,7 +31,7 @@ export class UmbTemplateWorkspaceContext isCodeEditorReady = this.#isCodeEditorReady.asObservable(); // TODO: temp solution until we have automatic tree updates - #treeRepository = new UmbTemplateTreeRepository(this.host); + #treeRepository = new UmbTemplateTreeRepository(this); constructor(host: UmbControllerHost) { super(host, 'Umb.Workspace.Template'); From cc3310cc0c2516be51fc1edb2f32f68bc14abd16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 13:27:45 +0100 Subject: [PATCH 355/786] simple block list editor implementation --- .../src/mocks/data/document.data.ts | 1 + .../block-list-block.element.ts | 17 +++++++++++ .../property-editor-ui-block-list.element.ts | 10 ++++++- .../block/block/context/block.context.ts | 10 +++++++ .../block/manager/block-manager.context.ts | 30 ++++++++++++++----- .../src/packages/block/block/manifests.ts | 3 +- .../workspace/block-workspace.context.ts | 24 +++++++++++++-- 7 files changed, 84 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index c96160d14c..2073ead14a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -183,6 +183,7 @@ export const data: Array = [ { udi: '1234', contentTypeKey: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c', + elementProperty: 'Hello world', }, ], settingsData: [], diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 86e118e519..a05882a878 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -24,12 +24,24 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl #context = new UmbBlockContext(this); + @state() + _contentUdi?: string; + @state() _label = ''; + @state() + _workspacePath?: string; + constructor() { super(); + this.observe(this.#context.workspacePath, (workspacePath) => { + this._workspacePath = workspacePath; + }); + this.observe(this.#context.contentUdi, (contentUdi) => { + this._contentUdi = contentUdi; + }); this.observe(this.#context.label, (label) => { this._label = label; }); @@ -65,6 +77,11 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl return html` ${this.#renderRefBlock()} + ${this._workspacePath + ? html` + + ` + : ''} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index bcf54a602c..59ae5b03eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -15,7 +15,12 @@ import '../../components/block-list-block/index.js'; import { buildUdi } from '@umbraco-cms/backoffice/utils'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { + UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_WORKSPACE_MODAL, + UmbModalManagerContext, + UmbModalRouteRegistrationController, +} from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} @@ -78,6 +83,9 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement @state() _layouts: Array = []; + @state() + _workspacePath?: string; + #modalContext?: UmbModalManagerContext; constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index 8c1fe6f41c..01e19fab1f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -19,6 +19,9 @@ export class UmbBlockContext< #label = new UmbStringState(''); public readonly label = this.#label.asObservable(); + #workspacePath = new UmbStringState(undefined); + public readonly workspacePath = this.#workspacePath.asObservable(); + #blockType = new UmbObjectState(undefined); public readonly blockType = this.#blockType.asObservable(); public readonly blockTypeContentElementTypeKey = this.#blockType.asObservablePart((x) => x?.contentElementTypeKey); @@ -51,6 +54,13 @@ export class UmbBlockContext< // Consume block manager: this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (manager) => { this.#manager = manager; + this.observe( + manager.workspacePath, + (workspacePath) => { + this.#workspacePath.next(workspacePath); + }, + 'observeWorkspacePath', + ); this.#observeBlockType(); this.#observeData(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index cbda82520e..6a665b4c3b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -2,11 +2,12 @@ import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '..//types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; import { UmbBlockTypeBase } from '@umbraco-cms/backoffice/block'; +import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; // TODO: We are using backend model here, I think we should get our own model: type ElementTypeModel = DocumentTypeResponseModel; @@ -18,6 +19,9 @@ export class UmbBlockManagerContext< // #contentTypeRepository = new UmbDocumentTypeDetailRepository(this); + #workspacePath = new UmbStringState(undefined); + workspacePath = this.#workspacePath.asObservable(); + #contentTypes = new UmbArrayState(>[], (x) => x.id); public readonly contentTypes = this.#contentTypes.asObservable(); @@ -53,6 +57,18 @@ export class UmbBlockManagerContext< constructor(host: UmbControllerHost) { super(host, UMB_BLOCK_MANAGER_CONTEXT); + + // TODO: Make specific modal token that requires data. + // IDEA: Make a Workspace registration controller that can be used to register a workspace, which does both edit and create?. + new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath('block') + .onSetup(() => { + return { data: { entityType: 'block', preset: {} }, modal: { size: 'medium' } }; + }) + .observeRouteBuilder((routeBuilder) => { + const newPath = routeBuilder({}); + this.#workspacePath.next(newPath); + }); } async ensureContentType(id?: string) { @@ -99,14 +115,14 @@ export class UmbBlockManagerContext< return this.#settings.asObservablePart((source) => source.find((x) => x.udi === udi)); } - updateLayout(contentUdi: string, layoutData: Partial) { - return this.#layouts.updateOne(contentUdi, layoutData); + setOneLayout(layoutData: BlockLayoutType) { + return this.#layouts.appendOne(layoutData); } - updateContent(udi: string, contentData: Partial) { - return this.#contents.updateOne(udi, contentData); + setOneContent(contentData: UmbBlockDataType) { + this.#contents.appendOne(contentData); } - updateSettings(udi: string, settingsData: Partial) { - return this.#settings.updateOne(udi, settingsData); + setOneSettings(settingsData: UmbBlockDataType) { + this.#settings.appendOne(settingsData); } createBlock(layoutEntry: BlockLayoutType, contentElementTypeKey: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts index 684effeb51..e3939d3921 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts @@ -1,3 +1,4 @@ import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; -export const manifests = [...modalManifests]; +export const manifests = [...modalManifests, ...workspaceManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 972e7dfdb0..5dd401feee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -21,13 +21,17 @@ export class UmbBlockWorkspaceContext(undefined); readonly isNew = this.#isNew.asObservable(); #layout = new UmbObjectState(undefined); readonly layout = this.#layout.asObservable(); + //readonly unique = this.#layout.asObservablePart((x) => x?.contentUdi); readonly contentUdi = this.#layout.asObservablePart((x) => x?.contentUdi); readonly content = new UmbBlockElementManager(this); @@ -37,16 +41,21 @@ export class UmbBlockWorkspaceContext(undefined); readonly name = this.#label.asObservable(); - readonly unique = this.#layout.asObservablePart((data) => data?.contentUdi); constructor(host: UmbControllerHost, workspaceArgs: { manifest: ManifestWorkspace }) { // TODO: We don't need a repo here, so maybe we should not require this of the UmbEditableWorkspaceContextBase super(host, 'Umb.Workspace.Block'); this.#entityType = workspaceArgs.manifest.meta?.entityType; + + this.observe(this.contentUdi, (contentUdi) => { + this.#contentUdi = contentUdi ?? ''; + }); } async load(unique: string) { this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (context) => { + this.#blockManager = context; + this.observe( context.layoutOf(unique), (layoutData) => { @@ -146,9 +155,20 @@ export class UmbBlockWorkspaceContext Date: Tue, 16 Jan 2024 13:41:14 +0100 Subject: [PATCH 356/786] sort imports --- .../property-editor-ui-radio-button-list.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts index aafbbe3b6d..0be36e91f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts @@ -1,8 +1,8 @@ +import type { UmbInputRadioButtonListElement } from '../../../components/input-radio-button-list/input-radio-button-list.element.js'; +import '../../../components/input-radio-button-list/input-radio-button-list.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import '../../../components/input-radio-button-list/input-radio-button-list.element.js'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import type { UmbInputRadioButtonListElement } from '../../../components/input-radio-button-list/input-radio-button-list.element.js'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; From 988e49fc43614fcaf7272dafae3f7b102de6568b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 16 Jan 2024 13:45:18 +0100 Subject: [PATCH 357/786] clean up --- .../block/workspace/block-workspace.context.ts | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 5dd401feee..ba8b96f3ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -19,12 +19,11 @@ export class UmbBlockWorkspaceContext(undefined); readonly isNew = this.#isNew.asObservable(); @@ -46,10 +45,7 @@ export class UmbBlockWorkspaceContext { - this.#contentUdi = contentUdi ?? ''; - }); + this.workspaceAlias = workspaceArgs.manifest.alias; } async load(unique: string) { @@ -155,11 +151,11 @@ export class UmbBlockWorkspaceContext Date: Tue, 16 Jan 2024 14:15:24 +0100 Subject: [PATCH 358/786] clean up --- .../block/workspace/block-workspace-editor.element.ts | 10 +--------- .../block/block/workspace/block-workspace.context.ts | 2 +- .../core/property/property/property.context.ts | 1 - 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts index 939579de9c..5613084f53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts @@ -1,19 +1,11 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from './block-workspace.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { customElement, css, html, state, property } from '@umbraco-cms/backoffice/external/lit'; +import { customElement, css, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; -import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, UmbDocumentTypeItemModel } from '@umbraco-cms/backoffice/document-type'; @customElement('umb-block-workspace-editor') export class UmbBlockWorkspaceEditorElement extends UmbLitElement { // - #itemManager = new UmbRepositoryItemsManager( - this, - DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, - (x) => x.id, - ); - #workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; @property({ type: String, attribute: false }) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index ba8b96f3ed..64a2523ebe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -43,7 +43,7 @@ export class UmbBlockWorkspaceContext extends UmbBaseController { this._observePropertyValue?.destroy(); if (subject) { this._observePropertyValue = this.observe(subject, (value) => { - // Note: Do not try to compare new / old value, as it can of any type. We trust the UmbObjectState in doing such. this.#value.next(value); }); } From deaac8325755df68682a49f6149baab8c0c44547 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 16 Jan 2024 15:20:32 +0100 Subject: [PATCH 359/786] fix style imports --- .../input-markdown-editor/input-markdown.element.ts | 5 +++-- .../scripts/workspace/script-workspace-edit.element.ts | 5 +++-- .../workspace/stylesheet-workspace-editor.element.ts | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts index 22ebd381df..780019cb83 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts @@ -3,7 +3,7 @@ import { marked } from '@umbraco-cms/backoffice/external/marked'; import { monaco } from '@umbraco-cms/backoffice/external/monaco-editor'; import { UmbCodeEditorController, UmbCodeEditorElement, loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import { css, html, customElement, query, property, unsafeHTML, when } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIModalSidebarSize, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin, UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { @@ -13,6 +13,7 @@ import { UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; /** * @element umb-input-markdown @@ -560,7 +561,7 @@ export class UmbInputMarkdownElement extends FormControlMixin(UmbLitElement) { } static styles = [ - UUITextStyles, + UmbTextStyles, css` :host { display: flex; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts index edf2b89730..073e86e3f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-edit.element.ts @@ -1,11 +1,12 @@ import { UmbScriptWorkspaceContext } from './script-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; -import { UUITextStyles, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-script-workspace-edit') export class UmbScriptWorkspaceEditElement extends UmbLitElement { @@ -130,7 +131,7 @@ export class UmbScriptWorkspaceEditElement extends UmbLitElement { } static styles = [ - UUITextStyles, + UmbTextStyles, css` :host { display: block; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts index 0885a18713..e0282cdb30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts @@ -1,9 +1,10 @@ import { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js'; -import { UUIInputElement, UUIInputEvent, UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-stylesheet-workspace-editor') export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { @@ -87,7 +88,7 @@ export class UmbStylesheetWorkspaceEditorElement extends UmbLitElement { } static styles = [ - UUITextStyles, + UmbTextStyles, css` :host { display: block; From 89cba32f31ab4621f337a3cdd156f35fd0309782 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 15:27:54 +0100 Subject: [PATCH 360/786] Delete stylesheet.repository.ts --- .../repository/stylesheet.repository.ts | 159 ------------------ 1 file changed, 159 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts deleted file mode 100644 index e9f8c14201..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet.repository.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { UmbStylesheetDetailModel } from '../index.js'; -import { UmbStylesheetTreeRepository } from '../tree/index.js'; -import { UmbStylesheetServerDataSource } from './sources/stylesheet.server.data.js'; -import { UmbStylesheetFolderServerDataSource } from './sources/stylesheet.folder.server.data.js'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { - DataSourceResponse, - UmbDataSourceErrorResponse, - UmbDetailRepository, - UmbFolderRepository, -} from '@umbraco-cms/backoffice/repository'; -import { - CreateFolderRequestModel, - CreateStylesheetRequestModel, - ExtractRichTextStylesheetRulesRequestModel, - ExtractRichTextStylesheetRulesResponseModel, - FolderResponseModel, - InterpolateRichTextStylesheetRequestModel, - InterpolateRichTextStylesheetResponseModel, - PagedStylesheetOverviewResponseModel, - ProblemDetails, - RichTextStylesheetRulesResponseModel, - UpdateStylesheetRequestModel, - UpdateTextFileViewModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbId } from '@umbraco-cms/backoffice/id'; - -export class UmbStylesheetRepository - extends UmbBaseController - implements - UmbDetailRepository, - UmbFolderRepository, - UmbApi -{ - #dataSource; - #folderDataSource; - - // TODO: temp solution until it is automated - #treeRepository = new UmbStylesheetTreeRepository(this); - - constructor(host: UmbControllerHost) { - super(host); - - // TODO: figure out how spin up get the correct data source - this.#dataSource = new UmbStylesheetServerDataSource(this); - this.#folderDataSource = new UmbStylesheetFolderServerDataSource(this); - } - - //#region FOLDER: - - createFolderScaffold(parentId: string | null) { - const data: FolderResponseModel = { - id: UmbId.new(), - name: '', - parentId, - }; - return Promise.resolve({ data, error: undefined }); - } - - async createFolder(folderRequest: CreateFolderRequestModel) { - const req = { - parentPath: folderRequest.parentId, - name: folderRequest.name, - }; - const promise = this.#folderDataSource.create(req); - await promise; - this.#treeRepository.requestTreeItemsOf(folderRequest.parentId ? folderRequest.parentId : null); - return promise; - } - - async requestFolder(unique: string) { - return this.#folderDataSource.read(unique); - } - - updateFolder(): any { - throw new Error('Method not implemented.'); - } - - async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> { - const { data } = await this.requestFolder(path); - const promise = this.#folderDataSource.delete(path); - await promise; - this.#treeRepository.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null); - return promise; - } - - //#endregion - - //#region DETAIL: - - createScaffold(): any { - throw new Error('Method not implemented.'); - } - - async requestById(id: string) { - if (!id) throw new Error('id is missing'); - return this.#dataSource.read(id); - } - - byId(id: string): any { - throw new Error('Method not implemented.'); - } - - async create(data: CreateStylesheetRequestModel) { - const promise = this.#dataSource.create(data); - await promise; - this.#treeRepository.requestTreeItemsOf(data.parentPath ? data.parentPath : null); - return promise; - } - - save(id: string, data: UpdateTextFileViewModelBaseModel) { - return this.#dataSource.update(id, data); - } - - delete(id: string): Promise { - const promise = this.#dataSource.delete(id); - const parentPath = id.substring(0, id.lastIndexOf('/')); - this.#treeRepository.requestTreeItemsOf(parentPath ? parentPath : null); - return promise; - } - - async getAll(skip?: number, take?: number): Promise> { - return this.#dataSource.getAll(skip, take); - } - - getStylesheetRules( - path: string, - ): Promise> { - return this.#dataSource.getStylesheetRichTextRules(path); - } - /** - * Existing content + array of rules => new content string - * - * @param {InterpolateRichTextStylesheetRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetRepository - */ - interpolateStylesheetRules( - data: InterpolateRichTextStylesheetRequestModel, - ): Promise> { - return this.#dataSource.postStylesheetRichTextInterpolateRules(data); - } - /** - * content string => array of rules - * - * @param {ExtractRichTextStylesheetRulesRequestModel} data - * @return {*} {Promise>} - * @memberof UmbStylesheetRepository - */ - extractStylesheetRules( - data: ExtractRichTextStylesheetRulesRequestModel, - ): Promise> { - return this.#dataSource.postStylesheetRichTextExtractRules(data); - } - - //#endregion -} From 636553131a5dff9d22e885afd18a17c20c586568 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 15:36:41 +0100 Subject: [PATCH 361/786] use correct type --- .../stylesheets/repository/stylesheet-detail.repository.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts index 09ed2417b1..8c17059df0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts @@ -1,11 +1,11 @@ import { UmbStylesheetDetailModel } from '../types.js'; import { UmbStylesheetDetailServerDataSource } from './stylesheet-detail.server.data-source.js'; import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbStylesheetDetailRepository extends UmbDetailRepositoryBase { - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host, UmbStylesheetDetailServerDataSource, UMB_STYLESHEET_DETAIL_STORE_CONTEXT); } } From d5c009816f56ca36e8f8cd13cde5ffb013a5ace5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 15:36:51 +0100 Subject: [PATCH 362/786] make snippet id optional --- .../partial-views/workspace/partial-view-workspace.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index 9a18abcd41..be2dc7f67f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -43,7 +43,7 @@ export class UmbPartialViewWorkspaceElement extends UmbLitElement { }, ]; - #onCreate = async (parentUnique: string | null, snippetId: string | undefined) => { + #onCreate = async (parentUnique: string | null, snippetId?: string) => { await this.#workspaceContext.create(parentUnique, snippetId); new UmbWorkspaceIsNewRedirectController( From 0708bececa4f6c0ba1f8844722516cac966b0f12 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 15:38:21 +0100 Subject: [PATCH 363/786] use correct type --- .../repository/partial-view-detail.repository.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts index b84afbd377..7b8311f208 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts @@ -1,11 +1,11 @@ import { UmbPartialViewDetailModel } from '../types.js'; import { UmbPartialViewDetailServerDataSource } from './partial-view-detail.server.data-source.js'; import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbPartialViewDetailRepository extends UmbDetailRepositoryBase { - constructor(host: UmbControllerHostElement) { + constructor(host: UmbControllerHost) { super(host, UmbPartialViewDetailServerDataSource, UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT); } } From 855a8392d9289446eef1545a6b32056cf11e4613 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 15:38:33 +0100 Subject: [PATCH 364/786] pass host directly to structure manager --- .../media/media-types/workspace/media-type-workspace.context.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index 89efcd611c..cd3471c528 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -38,7 +38,7 @@ export class UmbMediaTypeWorkspaceContext constructor(host: UmbControllerHost) { super(host, 'Umb.Workspace.MediaType'); - this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); + this.structure = new UmbContentTypePropertyStructureManager(host, this.repository); // General for content types: this.data = this.structure.ownerContentType; From 65a52d35e07c5df6dfcc88118f28cda598f77cff Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 16:03:52 +0100 Subject: [PATCH 365/786] make typescript happy --- .../packages/block/block/manager/block-manager.context.ts | 5 +++-- .../block/block/workspace/block-element-manager.ts | 7 +++++-- .../edit/block-workspace-view-edit-properties.element.ts | 8 ++++++-- .../views/edit/block-workspace-view-edit-tab.element.ts | 4 ++-- .../views/edit/block-workspace-view-edit.element.ts | 4 ++-- .../workspace/document-type-workspace.context.ts | 3 +-- .../media-types/workspace/media-type-workspace.context.ts | 4 +--- 7 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index e59cd26612..8a10c07e35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -3,13 +3,14 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbDocumentTypeDetailModel, UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; +import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; import { UmbBlockTypeBase } from '@umbraco-cms/backoffice/block'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; // TODO: We are using backend model here, I think we should get our own model: -type ElementTypeModel = UmbDocumentTypeDetailModel; +type ElementTypeModel = UmbContentTypeModel; export class UmbBlockManagerContext< BlockType extends UmbBlockTypeBase = UmbBlockTypeBase, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts index d6bd4723a9..ed49b74ac1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -1,6 +1,6 @@ import { UmbBlockDataType } from '../types.js'; import { UmbBlockElementPropertyDatasetContext } from './block-element-property-dataset.context.js'; -import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypeModel, UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; @@ -17,7 +17,10 @@ export class UmbBlockElementManager extends UmbBaseController { readonly unique = this.#data.asObservablePart((data) => data?.udi); readonly contentTypeId = this.#data.asObservablePart((data) => data?.contentTypeKey); - readonly structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); + readonly structure = new UmbContentTypePropertyStructureManager( + this, + new UmbDocumentTypeDetailRepository(this), + ); constructor(host: UmbControllerHost) { // TODO: Get Workspace Alias via Manifest. diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index cf683c464a..4636b26d6f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -1,7 +1,11 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import { + UmbContentTypePropertyStructureHelper, + PropertyContainerTypes, + UmbContentTypeModel, +} from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -23,7 +27,7 @@ export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { this._propertyStructureHelper.setContainerType(value); } - _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); + _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() _propertyStructure: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts index 315bdc107a..dcd0f3177d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts @@ -1,7 +1,7 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypeContainerStructureHelper, UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -42,7 +42,7 @@ export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { this._groupStructureHelper.setOwnerId(value); } - _groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); + _groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); @state() _groups: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts index ddb4f3b067..e32a0a573f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts @@ -2,7 +2,7 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; import type { UmbBlockWorkspaceViewEditTabElement } from './block-workspace-view-edit-tab.element.js'; import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypeContainerStructureHelper, UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; import { encodeFolderName, UmbRoute, @@ -32,7 +32,7 @@ export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements U private _workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; - private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); + private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index f618bb3a16..0c33c0a788 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -37,14 +37,13 @@ export class UmbDocumentTypeWorkspaceContext readonly defaultTemplateId; readonly cleanup; - readonly structure = new UmbContentTypePropertyStructureManager(this, this.repository); + readonly structure = new UmbContentTypePropertyStructureManager(this, this.repository); #isSorting = new UmbBooleanState(undefined); isSorting = this.#isSorting.asObservable(); constructor(host: UmbControllerHostElement) { super(host, 'Umb.Workspace.DocumentType'); - this.structure = new UmbContentTypePropertyStructureManager(this.host, this.repository); // General for content types: this.data = this.structure.ownerContentType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index cd3471c528..3697bc9ce4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -30,7 +30,7 @@ export class UmbMediaTypeWorkspaceContext readonly allowedContentTypes; readonly compositions; - readonly structure; + readonly structure = new UmbContentTypePropertyStructureManager(this, this.repository); #isSorting = new UmbBooleanState(undefined); isSorting = this.#isSorting.asObservable(); @@ -38,8 +38,6 @@ export class UmbMediaTypeWorkspaceContext constructor(host: UmbControllerHost) { super(host, 'Umb.Workspace.MediaType'); - this.structure = new UmbContentTypePropertyStructureManager(host, this.repository); - // General for content types: this.data = this.structure.ownerContentType; this.name = this.structure.ownerContentTypeObservablePart((data) => data?.name); From 01c513a5b84bfaa35927de5ef6494d02fdfc0a92 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 14:57:36 +0000 Subject: [PATCH 366/786] TreePickerSourceTypes: Value need to be a CSV rather than a `string[]`, as the API is expecting a flat string format. --- ...-tree-picker-source-type-picker.element.ts | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index af31d985d0..70677c7631 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -19,8 +19,17 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement { #datasetContext?: typeof UMB_PROPERTY_DATASET_CONTEXT.TYPE; - @property({ type: Array }) - value?: string[]; + @property() + public set value(value: string) { + if (value) { + this.#selectedIds = value.split(','); + } else { + this.#selectedIds = []; + } + } + public get value(): string { + return this.#selectedIds.join(','); + } @state() private sourceType: string = 'content'; @@ -76,8 +85,10 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement } } + #selectedIds: Array = []; + #setValue(value: string[]) { - this.value = value; + this.value = value.join(','); this.dispatchEvent(new UmbPropertyValueChangeEvent()); } @@ -101,19 +112,19 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement #renderTypeContent() { return html``; + .selectedIds=${this.#selectedIds}>`; } #renderTypeMedia() { return html``; + .selectedIds=${this.#selectedIds}>`; } #renderTypeMember() { return html``; + .selectedIds=${this.#selectedIds}>`; } static styles = [UmbTextStyles]; From edcaa24a11e82128d733e0045001370163668f8f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 16:26:16 +0100 Subject: [PATCH 367/786] import from entity file --- .../media/media-types/tree/media-type-tree.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts index 022ff7222d..a287edb595 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts @@ -1,4 +1,4 @@ -import { UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE } from '../index.js'; +import { UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMediaTypeTreeServerDataSource } from './media-type-tree.server.data-source.js'; import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.js'; import { UmbMediaTypeTreeItemModel, UmbMediaTypeTreeRootModel } from './types.js'; From 5bb717be545f954b0687b1e9d0932b5bb2c29d4c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 16:26:27 +0100 Subject: [PATCH 368/786] render media type folders --- .../src/packages/media/media-types/tree/manifests.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts index 74dbe22833..b53de760d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts @@ -1,3 +1,8 @@ +import { + UMB_MEDIA_TYPE_ENTITY_TYPE, + UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, + UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE, +} from '../entity.js'; import { UmbMediaTypeTreeRepository } from './media-type-tree.repository.js'; import { UmbMediaTypeTreeStore } from './media-type-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; @@ -42,7 +47,7 @@ const treeItem: ManifestTreeItem = { alias: 'Umb.TreeItem.MediaType', name: 'Media Type Tree Item', meta: { - entityTypes: ['media-type-root', 'media-type'], + entityTypes: [UMB_MEDIA_TYPE_ENTITY_TYPE, UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], }, }; From 1a94b0d9adbd11f826116211e567ef50fe92c5af Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 16:26:39 +0100 Subject: [PATCH 369/786] sync document type tree --- .../tree/document-type.tree.store.ts | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts index 4305ba4d41..007dd1ca2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts @@ -1,6 +1,10 @@ +import { UmbDocumentTypeDetailModel } from '../types.js'; +import { UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT } from '../repository/index.js'; +import { UmbDocumentTypeTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; /** * @export @@ -16,7 +20,38 @@ export class UmbDocumentTypeTreeStore extends UmbUniqueTreeStore { */ constructor(host: UmbControllerHostElement) { super(host, UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT.toString()); + + new UmbStoreConnector( + host, + this, + UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT, + (item) => this.#createTreeItemMapper(item), + (item) => this.#updateTreeItemMapper(item), + ); } + + // TODO: revisit this when we have decided on detail model sizes + #createTreeItemMapper = (item: UmbDocumentTypeDetailModel) => { + const treeItem: UmbDocumentTypeTreeItemModel = { + unique: item.unique, + parentUnique: item.parentUnique, + name: item.name, + entityType: item.entityType, + isElement: item.isElement, + isFolder: false, + isContainer: false, + hasChildren: false, + }; + + return treeItem; + }; + + // TODO: revisit this when we have decided on detail model sizes + #updateTreeItemMapper = (item: UmbDocumentTypeDetailModel) => { + return { + name: item.name, + }; + }; } export const UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT = new UmbContextToken( From bca5d6de03c72ed7a26232e5b6846458baa42c06 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 16:34:37 +0100 Subject: [PATCH 370/786] remove test --- .../server-file-system/server-path-unique-serializer.test.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts index 0045f4c35b..233a3d06c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/server-path-unique-serializer.test.ts @@ -16,10 +16,6 @@ describe('UmbServerFilePathUniqueSerializer', () => { expect(serializer).to.have.property('toUnique').that.is.a('function'); }); - it('has a toParentUnique method', () => { - expect(serializer).to.have.property('toParentUnique').that.is.a('function'); - }); - it('has a toServerPath method', () => { expect(serializer).to.have.property('toServerPath').that.is.a('function'); }); From 3c048377841d5405102131630843f676a5f67a9d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 16:45:39 +0100 Subject: [PATCH 371/786] use unique instead of content type id --- .../content-type-structure-manager.class.ts | 91 ++++++++++--------- 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index febfae6e65..e25201db22 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -26,7 +26,7 @@ export class UmbContentTypePropertyStructureManager; - #ownerContentTypeId?: string; + #ownerContentTypeUnique?: string; #contentTypeObservers = new Array(); #contentTypes = new UmbArrayState([], (x) => x.unique); readonly contentTypes = this.#contentTypes.asObservable(); @@ -55,29 +55,30 @@ export class UmbContentTypePropertyStructureManager x.find((y) => y.unique === this.#ownerContentTypeId)); + return this.#contentTypes.asObservablePart((x) => x.find((y) => y.unique === this.#ownerContentTypeUnique)); } getOwnerContentType() { - return this.#contentTypes.getValue().find((y) => y.unique === this.#ownerContentTypeId); + return this.#contentTypes.getValue().find((y) => y.unique === this.#ownerContentTypeUnique); } updateOwnerContentType(entry: Partial) { - this.#contentTypes.updateOne(this.#ownerContentTypeId, entry); + this.#contentTypes.updateOne(this.#ownerContentTypeUnique, entry); } // We could move the actions to another class? @@ -166,7 +167,7 @@ export class UmbContentTypePropertyStructureManager x.unique === contentTypeId)?.containers ?? []; + const frozenContainers = + this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.containers ?? []; const containers = appendToFrozenArray(frozenContainers, container, (x) => x.id === container.id); @@ -201,7 +203,7 @@ export class UmbContentTypePropertyStructureManager, ) { await this.#init; - contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; + contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique!; - const frozenContainers = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.containers ?? []; + const frozenContainers = + this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.containers ?? []; const containers = partialUpdateFrozenArray(frozenContainers, partialUpdate, (x) => x.id === containerId); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore // TODO: fix TS partial complaint - this.#contentTypes.updateOne(contentTypeId, { containers }); + this.#contentTypes.updateOne(contentTypeUnique, { containers }); } - async removeContainer(contentTypeId: string | null, containerId: string | null = null) { + async removeContainer(contentTypeUnique: string | null, containerId: string | null = null) { await this.#init; - contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; + contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique!; - const frozenContainers = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.containers ?? []; + const frozenContainers = + this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.containers ?? []; const containers = frozenContainers.filter((x) => x.id !== containerId); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore // TODO: fix TS partial complaint - this.#contentTypes.updateOne(contentTypeId, { containers }); + this.#contentTypes.updateOne(contentTypeUnique, { containers }); } createPropertyScaffold(containerId: string | null = null, sortOrder?: number) { @@ -278,67 +282,72 @@ export class UmbContentTypePropertyStructureManager x.unique === contentTypeId)?.properties ?? [])]; + const properties = [ + ...(this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.properties ?? []), + ]; properties.push(property); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore // TODO: fix TS partial complaint - this.#contentTypes.updateOne(contentTypeId, { properties }); + this.#contentTypes.updateOne(contentTypeUnique, { properties }); return property; } - async insertProperty(contentTypeId: string | null, property: PropertyTypeModelBaseModel) { + async insertProperty(contentTypeUnique: string | null, property: PropertyTypeModelBaseModel) { await this.#init; - contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; + contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique!; - const frozenProperties = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.properties ?? []; + const frozenProperties = + this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.properties ?? []; const properties = appendToFrozenArray(frozenProperties, property, (x) => x.id === property.id); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore // TODO: fix TS partial complaint - this.#contentTypes.updateOne(contentTypeId, { properties }); + this.#contentTypes.updateOne(contentTypeUnique, { properties }); } - async removeProperty(contentTypeId: string | null, propertyId: string) { + async removeProperty(contentTypeUnique: string | null, propertyId: string) { await this.#init; - contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; + contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique!; - const frozenProperties = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.properties ?? []; + const frozenProperties = + this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.properties ?? []; const properties = filterFrozenArray(frozenProperties, (x) => x.id !== propertyId); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore // TODO: fix TS partial complaint - this.#contentTypes.updateOne(contentTypeId, { properties }); + this.#contentTypes.updateOne(contentTypeUnique, { properties }); } async updateProperty( - contentTypeId: string | null, + contentTypeUnique: string | null, propertyId: string, partialUpdate: Partial, ) { await this.#init; - contentTypeId = contentTypeId ?? this.#ownerContentTypeId!; + contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique!; - const frozenProperties = this.#contentTypes.getValue().find((x) => x.unique === contentTypeId)?.properties ?? []; + const frozenProperties = + this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.properties ?? []; const properties = partialUpdateFrozenArray(frozenProperties, partialUpdate, (x) => x.id === propertyId); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore // TODO: fix TS partial complaint - this.#contentTypes.updateOne(contentTypeId, { properties }); + this.#contentTypes.updateOne(contentTypeUnique, { properties }); } // TODO: Refactor: These property methods, should maybe be named without structure in their name. @@ -391,7 +400,7 @@ export class UmbContentTypePropertyStructureManager(mappingFunction: MappingFunction) { return this.#contentTypes.asObservablePart((docTypes) => { - const docType = docTypes.find((x) => x.unique === this.#ownerContentTypeId); + const docType = docTypes.find((x) => x.unique === this.#ownerContentTypeUnique); return docType ? mappingFunction(docType) : undefined; }); } From 0d0e45ad922ce3cf265391d21d660a321591272c Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 15:35:24 +0000 Subject: [PATCH 372/786] Document Picker: Filter option Enables the `pickableFilter` option on the picker modal. --- .../input-tree/input-tree.element.ts | 4 +-- .../input-document/input-document.element.ts | 34 ++++++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index 234a127b12..043bc5b2c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -38,7 +38,7 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { private _filter: Array = []; @property() public set filter(value: string) { - this._filter = value.split(','); + this._filter = value ? value.split(',') : []; } public get filter(): string { return this._filter.join(','); @@ -104,7 +104,7 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { return html` (this._items = selectedItems)); } - protected _openPicker() { - // TODO: Configure the content picker, with `startNodeId`, `filter` and `ignoreUserStartNodes` [LK] - console.log("_openPicker", [this.startNodeId, this.filter, this.ignoreUserStartNodes]); + protected getFormElement() { + return undefined; + } + + #pickableFilter: (item: DocumentTreeItemResponseModel) => boolean = (item) => { + if (this.filter && this.filter.length > 0) { + return this.filter.includes(item.contentTypeId); + } + return true; + } + + #openPicker() { + // TODO: Configure the content picker, with `startNodeId` and `ignoreUserStartNodes` [LK] + console.log('_openPicker', [this.startNodeId, this.ignoreUserStartNodes]); this.#pickerContext.openPicker({ hideTreeRoot: true, + pickableFilter: this.#pickableFilter, }); } - protected _openItem(item: DocumentItemResponseModel) { + #openItem(item: DocumentItemResponseModel) { // TODO: Implement the Content editing infinity editor. [LK] console.log('TODO: _openItem', item); } - protected getFormElement() { - return undefined; - } - render() { return html` ${this.#renderItems()} ${this.#renderAddButton()} `; } @@ -144,7 +152,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { return html``; } @@ -172,7 +180,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { private _renderOpenButton(item: DocumentItemResponseModel) { if (!this.showOpenButton) return; - return html` this._openItem(item)} label="Open document ${item.name}" + return html` this.#openItem(item)} label="Open document ${item.name}" >${this.localize.term('general_open')}`; } From 6a98fd2e96cba926eed8a10be68f6728c2235d1c Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 16:07:32 +0000 Subject: [PATCH 373/786] Media Picker: Filter option Enables the `pickableFilter` option on the picker modal. --- .../input-tree/input-tree.element.ts | 2 +- .../input-media/input-media.element.ts | 45 +++++++++++++------ 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index 043bc5b2c6..090b4c610a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -115,7 +115,7 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { #renderMediaPicker() { return html` (this._items = selectedItems)); } - protected _openPicker() { + protected getFormElement() { + return undefined; + } + + #pickableFilter: (item: MediaItemResponseModel) => boolean = (item) => { + /* TODO: Media item doesn't have the content/media-type ID available to query. + Commenting out until the Management API model is updated. [LK] + */ + // if (this.filter && this.filter.length > 0) { + // return this.filter.includes(item.contentTypeId); + // } + return true; + }; + + #openPicker() { // TODO: Configure the media picker, with `filter` and `ignoreUserStartNodes` [LK] - console.log('_openPicker', [this.filter, this.ignoreUserStartNodes]); + console.log('#openPicker', [this.filter, this.ignoreUserStartNodes]); this.#pickerContext.openPicker({ hideTreeRoot: true, + pickableFilter: this.#pickableFilter, }); } - protected _openItem(item: MediaItemResponseModel) { - // TODO: Implement the Content editing infinity editor. [LK] + #openItem(item: MediaItemResponseModel) { + // TODO: Implement the Media editing infinity editor. [LK] console.log('TODO: _openItem', item); } - protected getFormElement() { - return undefined; - } - render() { return html` ${this.#renderItems()} ${this.#renderButton()} `; } @@ -127,7 +138,13 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { #renderItems() { if (!this._items) return; // TODO: Add sorting. [LK] - return html` ${this._items?.map((item) => this.#renderItem(item))} `; + return html` + ${repeat( + this._items, + (item) => item.id, + (item) => this.#renderItem(item), + )} + `; } #renderButton() { @@ -136,7 +153,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { ${this.localize.term('general_choose')} From 0785547005dcaa97e4ffdf6356b6680d4be4c525 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 16:19:54 +0000 Subject: [PATCH 374/786] Member Picker: Filter option Enables the `pickableFilter` option on the picker modal. --- .../components/input-tree/input-tree.element.ts | 2 +- .../components/input-member/input-member.element.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index 090b4c610a..283fd45c9a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -126,7 +126,7 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { #renderMemberPicker() { return html` (this._items = selectedItems)); } + #pickableFilter: (item: MemberItemResponseModel) => boolean = (item) => { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] + console.log('member.pickableFilter', item); + // if (this.filter && this.filter.length > 0) { + // return this.filter.includes(item.contentTypeId); + // } + return true; + }; + protected _openPicker() { console.log("member.openPicker"); // this.#pickerContext.openPicker({ // hideTreeRoot: true, + // pickableFilter: this.#pickableFilter, // }); } From a20d93afb8e197df5394798958fa04f3114c65dc Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 16:22:11 +0000 Subject: [PATCH 375/786] Content Type pickers - aligning method names For consistency, replacing `private` with `#` hash prefix. --- .../input-document/input-document.element.ts | 12 +++--- .../input-media/input-media.element.ts | 8 ++-- .../input-member/input-member.element.ts | 40 +++++++++---------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 7b0229043e..cd040f7b8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -142,7 +142,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { >${repeat( this._items, (item) => item.id, - (item) => this._renderItem(item), + (item) => this.#renderItem(item), )} `; } @@ -156,13 +156,13 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { label=${this.localize.term('general_choose')}>`; } - private _renderItem(item: DocumentItemResponseModel) { + #renderItem(item: DocumentItemResponseModel) { if (!item.id) return; return html` - ${this._renderIsTrashed(item)} + ${this.#renderIsTrashed(item)} - ${this._renderOpenButton(item)} + ${this.#renderOpenButton(item)} this.#pickerContext.requestRemoveItem(item.id!)} label="Remove document ${item.name}" @@ -173,12 +173,12 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { `; } - private _renderIsTrashed(item: DocumentItemResponseModel) { + #renderIsTrashed(item: DocumentItemResponseModel) { if (!item.isTrashed) return; return html`Trashed`; } - private _renderOpenButton(item: DocumentItemResponseModel) { + #renderOpenButton(item: DocumentItemResponseModel) { if (!this.showOpenButton) return; return html` this.#openItem(item)} label="Open document ${item.name}" >${this.localize.term('general_open')}= this.max) return; return html` - ${this._renderIsTrashed(item)} + ${this.#renderIsTrashed(item)} @@ -182,7 +182,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { `; } - private _renderIsTrashed(item: MediaItemResponseModel) { + #renderIsTrashed(item: MediaItemResponseModel) { if (!item.isTrashed) return; return html`Trashed`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index 5a53560ec0..0b2f689408 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -95,6 +95,9 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { // this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); // this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } + protected getFormElement() { + return undefined; + } #pickableFilter: (item: MemberItemResponseModel) => boolean = (item) => { // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] @@ -105,28 +108,21 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { return true; }; - protected _openPicker() { - console.log("member.openPicker"); + #openPicker() { + console.log('member.openPicker'); // this.#pickerContext.openPicker({ // hideTreeRoot: true, // pickableFilter: this.#pickableFilter, // }); } - protected _requestRemoveItem(item: MemberItemResponseModel){ - console.log("member.requestRemoveItem", item); + #requestRemoveItem(item: MemberItemResponseModel) { + console.log('member.requestRemoveItem', item); //this.#pickerContext.requestRemoveItem(item.id!); } - protected getFormElement() { - return undefined; - } - render() { - return html` - ${this.#renderItems()} - ${this.#renderAddButton()} - `; + return html` ${this.#renderItems()} ${this.#renderAddButton()} `; } #renderItems() { @@ -136,7 +132,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { >${repeat( this._items, (item) => item.id, - (item) => this._renderItem(item), + (item) => this.#renderItem(item), )} `; } @@ -146,19 +142,17 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { return html``; + @click=${this.#openPicker} + label=${this.localize.term('general_choose')}>`; } - private _renderItem(item: MemberItemResponseModel) { + #renderItem(item: MemberItemResponseModel) { if (!item.id) return; return html` - + ${this.#renderIsTrashed(item)} - this._requestRemoveItem(item)} - label="Remove member ${item.name}" + this.#requestRemoveItem(item)} label="Remove member ${item.name}" >Remove @@ -166,6 +160,12 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { `; } + #renderIsTrashed(item: MemberItemResponseModel) { + // TODO: Uncomment, once the Management API model support deleted members. [LK] + //if (!item.isTrashed) return; + //return html`Trashed`; + } + static styles = [ css` #add-button { From 39303092c54ebbaffeb8c1c10c1854a62ddf4311 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 15 Jan 2024 16:22:35 +0000 Subject: [PATCH 376/786] Member Picker: Added TODO notes. --- .../components/input-member/input-member.element.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index 0b2f689408..a034d02f5d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -14,10 +14,12 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { */ @property({ type: Number }) public get min(): number { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] //return this.#pickerContext.min; return 0; } public set min(value: number) { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] //this.#pickerContext.min = value; } @@ -38,10 +40,12 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { */ @property({ type: Number }) public get max(): number { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] //return this.#pickerContext.max; return Infinity; } public set max(value: number) { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] //this.#pickerContext.max = value; } @@ -55,10 +59,12 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { maxMessage = 'This field exceeds the allowed amount of items'; public get selectedIds(): Array { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] //return this.#pickerContext.getSelection(); return []; } public set selectedIds(ids: Array) { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] //this.#pickerContext.setSelection(ids); } @@ -80,6 +86,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] // this.addValidator( // 'rangeUnderflow', // () => this.minMessage, @@ -109,6 +116,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { }; #openPicker() { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] console.log('member.openPicker'); // this.#pickerContext.openPicker({ // hideTreeRoot: true, @@ -117,6 +125,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { } #requestRemoveItem(item: MemberItemResponseModel) { + // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] console.log('member.requestRemoveItem', item); //this.#pickerContext.requestRemoveItem(item.id!); } From aeae42c48ed5a35db3c828cfee0e084137469b29 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 16 Jan 2024 16:18:12 +0000 Subject: [PATCH 377/786] Renamed `filter` to `allowedContentTypeIds` ref: https://github.com/umbraco/Umbraco.CMS.Backoffice/pull/1125#pullrequestreview-1823376278 --- .../property-editor-ui-tree-picker.element.ts | 6 +++--- .../components/input-tree/input-tree.element.ts | 16 ++++++++-------- .../input-document/input-document.element.ts | 6 +++--- .../input-media/input-media.element.ts | 10 +++++----- .../input-member/input-member.element.ts | 6 +++--- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 43c5f393ee..0b6d9b8133 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -28,7 +28,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen max = 0; @state() - filter?: string | null; + allowedContentTypeIds?: string | null; @state() showOpenButton?: boolean; @@ -47,7 +47,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen this.min = Number(config?.getValueByAlias('minNumber')) || 0; this.max = Number(config?.getValueByAlias('maxNumber')) || 0; - this.filter = config?.getValueByAlias('filter'); + this.allowedContentTypeIds = config?.getValueByAlias('filter'); this.showOpenButton = config?.getValueByAlias('showOpenButton'); this.ignoreUserStartNodes = config?.getValueByAlias('ignoreUserStartNodes'); } @@ -64,7 +64,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen .startNodeId=${this.startNodeId ?? ''} .min=${this.min} .max=${this.max} - .filter=${this.filter ?? ''} + .allowedContentTypeIds=${this.allowedContentTypeIds ?? ''} ?showOpenButton=${this.showOpenButton} ?ignoreUserStartNodes=${this.ignoreUserStartNodes} @change=${this.#onChange}>`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index 283fd45c9a..f1d5c16f53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -35,13 +35,13 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { @property({ type: Number }) max = 0; - private _filter: Array = []; + private _allowedContentTypeIds: Array = []; @property() - public set filter(value: string) { - this._filter = value ? value.split(',') : []; + public set allowedContentTypeIds(value: string) { + this._allowedContentTypeIds = value ? value.split(',') : []; } - public get filter(): string { - return this._filter.join(','); + public get allowedContentTypeIds(): string { + return this._allowedContentTypeIds.join(','); } @property({ type: Boolean }) @@ -104,7 +104,7 @@ export class UmbInputTreeElement extends FormControlMixin(UmbLitElement) { return html` boolean = (item) => { - if (this.filter && this.filter.length > 0) { - return this.filter.includes(item.contentTypeId); + if (this.allowedContentTypeIds && this.allowedContentTypeIds.length > 0) { + return this.allowedContentTypeIds.includes(item.contentTypeId); } return true; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 3e55684de7..99723e608a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -61,7 +61,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { } @property({ type: Array }) - filter?: string[] | undefined; + allowedContentTypeIds?: string[] | undefined; @property({ type: Boolean }) showOpenButton?: boolean; @@ -111,15 +111,15 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { /* TODO: Media item doesn't have the content/media-type ID available to query. Commenting out until the Management API model is updated. [LK] */ - // if (this.filter && this.filter.length > 0) { - // return this.filter.includes(item.contentTypeId); + // if (this.allowedContentTypeIds && this.allowedContentTypeIds.length > 0) { + // return this.allowedContentTypeIds.includes(item.contentTypeId); // } return true; }; #openPicker() { - // TODO: Configure the media picker, with `filter` and `ignoreUserStartNodes` [LK] - console.log('#openPicker', [this.filter, this.ignoreUserStartNodes]); + // TODO: Configure the media picker, with `allowedContentTypeIds` and `ignoreUserStartNodes` [LK] + console.log('#openPicker', [this.allowedContentTypeIds, this.ignoreUserStartNodes]); this.#pickerContext.openPicker({ hideTreeRoot: true, pickableFilter: this.#pickableFilter, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index a034d02f5d..6ba7bfd177 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -69,7 +69,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { } @property({ type: Array }) - filter?: string[] | undefined; + allowedContentTypeIds?: string[] | undefined; @property() public set value(idsString: string) { @@ -109,8 +109,8 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { #pickableFilter: (item: MemberItemResponseModel) => boolean = (item) => { // TODO: Uncomment, once `UmbMemberPickerContext` has been implemented. [LK] console.log('member.pickableFilter', item); - // if (this.filter && this.filter.length > 0) { - // return this.filter.includes(item.contentTypeId); + // if (this.allowedContentTypeIds && this.allowedContentTypeIds.length > 0) { + // return this.allowedContentTypeIds.includes(item.contentTypeId); // } return true; }; From d72c760872c1f77be1d2c0907f8139159ae4ef13 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 16 Jan 2024 16:34:35 +0000 Subject: [PATCH 378/786] Document Picker: Open button / Infinity Editor --- .../input-document/input-document.element.ts | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 186f6cd874..c992fef019 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -4,6 +4,7 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; +import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @customElement('umb-input-document') export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { @@ -78,6 +79,9 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { this.selectedIds = splitStringToArray(idsString); } + @state() + private _editDocumentPath = ''; + @state() private _items?: Array; @@ -85,6 +89,15 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + + new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath('document') + .onSetup(() => { + return { data: { entityType: 'document', preset: {} } }; + }) + .observeRouteBuilder((routeBuilder) => { + this._editDocumentPath = routeBuilder({}); + }); } connectedCallback() { @@ -114,11 +127,6 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { }); } - protected _openItem(item: DocumentItemResponseModel) { - // TODO: Implement the Content editing infinity editor. [LK] - console.log('TODO: _openItem', item); - } - protected getFormElement() { return undefined; } @@ -172,9 +180,13 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { private _renderOpenButton(item: DocumentItemResponseModel) { if (!this.showOpenButton) return; - return html` this._openItem(item)} label="Open document ${item.name}" - >${this.localize.term('general_open')}`; + return html` + + ${this.localize.term('general_open')} + + `; } static styles = [ From f60f6c949a26e79bf0e512621e62604f2077c2f7 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 16 Jan 2024 16:52:08 +0000 Subject: [PATCH 379/786] Media Picker: Open button / Infinity Editor --- .../input-media/input-media.element.ts | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 94530be00a..37dc28553a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -4,6 +4,7 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; +import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @customElement('umb-input-media') export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { @@ -75,6 +76,9 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { this.selectedIds = splitStringToArray(idsString); } + @state() + private _editMediaPath = ''; + @state() private _items?: Array; @@ -82,6 +86,15 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + + new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath('media') + .onSetup(() => { + return { data: { entityType: 'media', preset: {} } }; + }) + .observeRouteBuilder((routeBuilder) => { + this._editMediaPath = routeBuilder({}); + }); } connectedCallback() { @@ -111,11 +124,6 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { }); } - protected _openItem(item: MediaItemResponseModel) { - // TODO: Implement the Content editing infinity editor. [LK] - console.log('TODO: _openItem', item); - } - protected getFormElement() { return undefined; } @@ -146,7 +154,6 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { #renderItem(item: MediaItemResponseModel) { // TODO: `file-ext` value has been hardcoded here. Find out if API model has value for it. [LK] - // TODO: How to handle the `showOpenButton` option? [LK] return html` ${this._renderIsTrashed(item)} + ${this.#renderOpenButton(item)} @@ -170,6 +178,18 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { return html`Trashed`; } + #renderOpenButton(item: MediaItemResponseModel) { + if (!this.showOpenButton) return; + return html` + + + + `; + } + static styles = [ css` :host { From 0405f2663c5a7cb69472f967eeb204ca72cabc00 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 16 Jan 2024 16:54:48 +0000 Subject: [PATCH 380/786] Member Picker: Open button / Infinity Editor --- .../input-member/input-member.element.ts | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index d1106e1f2e..8fc73a9b80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -3,6 +3,7 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { MemberItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; +import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @customElement('umb-input-member') export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { @@ -62,12 +63,18 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { //this.#pickerContext.setSelection(ids); } + @property({ type: Boolean }) + showOpenButton?: boolean; + @property() public set value(idsString: string) { // Its with full purpose we don't call super.value, as thats being handled by the observation of the context selection. this.selectedIds = splitStringToArray(idsString); } + @state() + private _editMemberPath = ''; + @state() private _items?: Array; @@ -77,6 +84,14 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath('member') + .onSetup(() => { + return { data: { entityType: 'member', preset: {} } }; + }) + .observeRouteBuilder((routeBuilder) => { + this._editMemberPath = routeBuilder({}); + }); // this.addValidator( // 'rangeUnderflow', // () => this.minMessage, @@ -110,10 +125,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { } render() { - return html` - ${this.#renderItems()} - ${this.#renderAddButton()} - `; + return html` ${this.#renderItems()} ${this.#renderAddButton()} `; } #renderItems() { @@ -143,16 +155,29 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { + ${this.#renderOpenButton(item)} this._requestRemoveItem(item)} - label="Remove member ${item.name}" - >Remove + label="Remove member ${item.name}"> + Remove + `; } + #renderOpenButton(item: MemberItemResponseModel) { + if (!this.showOpenButton) return; + return html` + + + + `; + } + static styles = [ css` #add-button { From a02e7a06063fcc93e2efe619b521bdc9b4c1e583 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 18:21:38 +0100 Subject: [PATCH 381/786] remove debugger --- .../core/content-type/content-type-structure-manager.class.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index e25201db22..c50ca0803e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -78,7 +78,6 @@ export class UmbContentTypePropertyStructureManager Date: Tue, 16 Jan 2024 19:51:52 +0100 Subject: [PATCH 382/786] append detail to name --- .../repository/detail/document-type-detail.repository.ts | 4 ++-- .../detail/document-type-detail.server.data-source.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts index f81ed532bc..0e6aa238dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts @@ -1,10 +1,10 @@ import { UmbDocumentTypeDetailModel } from '../../types.js'; -import { UmbDocumentTypeServerDataSource } from './document-type-detail.server.data-source.js'; +import { UmbDocumentTypeDetailServerDataSource } from './document-type-detail.server.data-source.js'; import { UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT } from './document-type-detail.store.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbDocumentTypeDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { - super(host, UmbDocumentTypeServerDataSource, UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT); + super(host, UmbDocumentTypeDetailServerDataSource, UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 20c2fdd0c1..5dd928aa5e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -16,7 +16,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; * @class UmbDocumentTypeServerDataSource * @implements {RepositoryDetailDataSource} */ -export class UmbDocumentTypeServerDataSource implements UmbDetailDataSource { +export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSource { #host: UmbControllerHost; /** From 9c4312c959c507b712418d459eec50b6e586cc22 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 16 Jan 2024 19:54:00 +0100 Subject: [PATCH 383/786] rename to unique --- .../workspace/document-type-workspace.context.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index 0c33c0a788..79fe5d25db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -126,8 +126,8 @@ export class UmbDocumentTypeWorkspaceContext this.structure.updateOwnerContentType({ defaultTemplateId }); } - async create(parentId: string | null) { - const { data } = await this.structure.createScaffold(parentId); + async create(parentUnique: string | null) { + const { data } = await this.structure.createScaffold(parentUnique); if (!data) return undefined; this.setIsNew(true); @@ -136,8 +136,8 @@ export class UmbDocumentTypeWorkspaceContext return { data } || undefined; } - async load(entityId: string) { - const { data } = await this.structure.loadType(entityId); + async load(unique: string) { + const { data } = await this.structure.loadType(unique); if (!data) return undefined; this.setIsNew(false); From 8ed7ee1a9dcbfe833a8059ea0702f31368d54142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 17 Jan 2024 13:38:06 +0100 Subject: [PATCH 384/786] append scaffold data into runtime state, not store --- .../content-type-structure-manager.class.ts | 46 +++++++++++++------ ...document-type-detail.server.data-source.ts | 2 +- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index c50ca0803e..12a2943677 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -76,20 +76,32 @@ export class UmbContentTypePropertyStructureManager { - if (docType) { - // TODO: Handle if there was changes made to the owner document type in this context. - /* - possible easy solutions could be to notify user wether they want to update(Discard the changes to accept the new ones). - */ - this.#contentTypes.appendOne(docType); - } - }), + this.observe( + await this.#contentTypeRepository.byUnique(data.unique), + (docType) => { + if (docType) { + // TODO: Handle if there was changes made to the owner document type in this context. + /* + possible easy solutions could be to notify user wether they want to update(Discard the changes to accept the new ones). + */ + this.#contentTypes.appendOne(docType); + } + }, + 'observeContentType_' + data.unique, + ), ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 5dd928aa5e..bf05bd670c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -42,7 +42,7 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc name: '', alias: '', description: '', - icon: '', + icon: 'icon-document', allowedAsRoot: false, variesByCulture: false, variesBySegment: false, From ac7c75b012370e4538e19e30212e818ca1c7208e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 17 Jan 2024 14:01:49 +0100 Subject: [PATCH 385/786] generate new server models --- .../src/external/backend-api/src/index.ts | 9 ++++ ...ntTypeCompositionResponseModelBaseModel.ts | 13 ++++++ ...bleDocumentTypeCompositionResponseModel.ts | 9 ++++ ...ilableMediaTypeCompositionResponseModel.ts | 9 ++++ ...entTypeCompositionRequestModelBaseModel.ts | 11 +++++ ...ntTypeCompositionResponseModelBaseModel.ts | 11 +++++ .../DocumentTypeCompositionRequestModel.ts | 11 +++++ .../DocumentTypeCompositionResponseModel.ts | 9 ++++ .../MediaTypeCompositionRequestModel.ts | 9 ++++ .../MediaTypeCompositionResponseModel.ts | 9 ++++ .../src/services/DocumentTypeResource.ts | 46 +++++++++++++++++++ .../src/services/MediaTypeResource.ts | 46 +++++++++++++++++++ 12 files changed, 192 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index 8151b79486..74c14bcd08 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -11,6 +11,9 @@ export type { AuditLogBaseModel } from './models/AuditLogBaseModel'; export type { AuditLogResponseModel } from './models/AuditLogResponseModel'; export type { AuditLogWithUsernameResponseModel } from './models/AuditLogWithUsernameResponseModel'; export { AuditTypeModel } from './models/AuditTypeModel'; +export type { AvailableContentTypeCompositionResponseModelBaseModel } from './models/AvailableContentTypeCompositionResponseModelBaseModel'; +export type { AvailableDocumentTypeCompositionResponseModel } from './models/AvailableDocumentTypeCompositionResponseModel'; +export type { AvailableMediaTypeCompositionResponseModel } from './models/AvailableMediaTypeCompositionResponseModel'; export type { ChangePasswordUserRequestModel } from './models/ChangePasswordUserRequestModel'; export type { ConsentLevelPresentationModel } from './models/ConsentLevelPresentationModel'; export type { ContentForDocumentResponseModel } from './models/ContentForDocumentResponseModel'; @@ -18,6 +21,8 @@ export { ContentStateModel } from './models/ContentStateModel'; export type { ContentTreeItemResponseModel } from './models/ContentTreeItemResponseModel'; export type { ContentTypeCleanupModel } from './models/ContentTypeCleanupModel'; export type { ContentTypeCompositionModel } from './models/ContentTypeCompositionModel'; +export type { ContentTypeCompositionRequestModelBaseModel } from './models/ContentTypeCompositionRequestModelBaseModel'; +export type { ContentTypeCompositionResponseModelBaseModel } from './models/ContentTypeCompositionResponseModelBaseModel'; export { ContentTypeCompositionTypeModel } from './models/ContentTypeCompositionTypeModel'; export type { ContentTypeForDocumentTypeResponseModel } from './models/ContentTypeForDocumentTypeResponseModel'; export type { ContentTypeForMediaTypeResponseModel } from './models/ContentTypeForMediaTypeResponseModel'; @@ -83,6 +88,8 @@ export type { DocumentItemResponseModel } from './models/DocumentItemResponseMod export type { DocumentNotificationResponseModel } from './models/DocumentNotificationResponseModel'; export type { DocumentResponseModel } from './models/DocumentResponseModel'; export type { DocumentTreeItemResponseModel } from './models/DocumentTreeItemResponseModel'; +export type { DocumentTypeCompositionRequestModel } from './models/DocumentTypeCompositionRequestModel'; +export type { DocumentTypeCompositionResponseModel } from './models/DocumentTypeCompositionResponseModel'; export type { DocumentTypeItemResponseModel } from './models/DocumentTypeItemResponseModel'; export type { DocumentTypePropertyTypeContainerResponseModel } from './models/DocumentTypePropertyTypeContainerResponseModel'; export type { DocumentTypePropertyTypeResponseModel } from './models/DocumentTypePropertyTypeResponseModel'; @@ -147,6 +154,8 @@ export type { LogMessageResponseModel } from './models/LogMessageResponseModel'; export type { LogTemplateResponseModel } from './models/LogTemplateResponseModel'; export type { MediaItemResponseModel } from './models/MediaItemResponseModel'; export type { MediaTreeItemResponseModel } from './models/MediaTreeItemResponseModel'; +export type { MediaTypeCompositionRequestModel } from './models/MediaTypeCompositionRequestModel'; +export type { MediaTypeCompositionResponseModel } from './models/MediaTypeCompositionResponseModel'; export type { MediaTypeItemResponseModel } from './models/MediaTypeItemResponseModel'; export type { MediaTypePropertyTypeContainerResponseModel } from './models/MediaTypePropertyTypeContainerResponseModel'; export type { MediaTypePropertyTypeResponseModel } from './models/MediaTypePropertyTypeResponseModel'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts new file mode 100644 index 0000000000..43625c7194 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type AvailableContentTypeCompositionResponseModelBaseModel = { + id: string; + name: string; + icon: string; + folderPath: Array; + isCompatible: boolean; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..4b89e8a211 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AvailableContentTypeCompositionResponseModelBaseModel } from './AvailableContentTypeCompositionResponseModelBaseModel'; + +export type AvailableDocumentTypeCompositionResponseModel = AvailableContentTypeCompositionResponseModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..fc784a2174 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AvailableContentTypeCompositionResponseModelBaseModel } from './AvailableContentTypeCompositionResponseModelBaseModel'; + +export type AvailableMediaTypeCompositionResponseModel = AvailableContentTypeCompositionResponseModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts new file mode 100644 index 0000000000..542c1c8653 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ContentTypeCompositionRequestModelBaseModel = { + id?: string | null; + currentPropertyAliases: Array; + currentCompositeIds: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts new file mode 100644 index 0000000000..8de2c0f47e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ContentTypeCompositionResponseModelBaseModel = { + id: string; + name: string; + icon: string; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts new file mode 100644 index 0000000000..344d632776 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionRequestModelBaseModel } from './ContentTypeCompositionRequestModelBaseModel'; + +export type DocumentTypeCompositionRequestModel = (ContentTypeCompositionRequestModelBaseModel & { + isElement: boolean; +}); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..0377d10c3c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionResponseModelBaseModel } from './ContentTypeCompositionResponseModelBaseModel'; + +export type DocumentTypeCompositionResponseModel = ContentTypeCompositionResponseModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts new file mode 100644 index 0000000000..283f523faa --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionRequestModelBaseModel } from './ContentTypeCompositionRequestModelBaseModel'; + +export type MediaTypeCompositionRequestModel = ContentTypeCompositionRequestModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..3068379d6e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionResponseModelBaseModel } from './ContentTypeCompositionResponseModelBaseModel'; + +export type MediaTypeCompositionResponseModel = ContentTypeCompositionResponseModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index 4fbf44ce69..26c10721fc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -2,9 +2,12 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { AvailableDocumentTypeCompositionResponseModel } from '../models/AvailableDocumentTypeCompositionResponseModel'; import type { CopyDocumentTypeRequestModel } from '../models/CopyDocumentTypeRequestModel'; import type { CreateDocumentTypeRequestModel } from '../models/CreateDocumentTypeRequestModel'; import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; +import type { DocumentTypeCompositionRequestModel } from '../models/DocumentTypeCompositionRequestModel'; +import type { DocumentTypeCompositionResponseModel } from '../models/DocumentTypeCompositionResponseModel'; import type { DocumentTypeItemResponseModel } from '../models/DocumentTypeItemResponseModel'; import type { DocumentTypeResponseModel } from '../models/DocumentTypeResponseModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; @@ -113,6 +116,29 @@ export class DocumentTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getDocumentTypeByIdCompositionReferences({ + id, + }: { + id: string, + }): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/document-type/{id}/composition-references', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns string Created * @throws ApiError @@ -168,6 +194,26 @@ export class DocumentTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static postDocumentTypeAvailableCompositions({ + requestBody, + }: { + requestBody?: DocumentTypeCompositionRequestModel, + }): CancelablePromise> { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/document-type/available-compositions', + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns string Created * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts index aed5c6885f..f5c808cc78 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts @@ -2,10 +2,13 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { AvailableMediaTypeCompositionResponseModel } from '../models/AvailableMediaTypeCompositionResponseModel'; import type { CopyMediaTypeRequestModel } from '../models/CopyMediaTypeRequestModel'; import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; import type { CreateMediaTypeRequestModel } from '../models/CreateMediaTypeRequestModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; +import type { MediaTypeCompositionRequestModel } from '../models/MediaTypeCompositionRequestModel'; +import type { MediaTypeCompositionResponseModel } from '../models/MediaTypeCompositionResponseModel'; import type { MediaTypeItemResponseModel } from '../models/MediaTypeItemResponseModel'; import type { MediaTypeResponseModel } from '../models/MediaTypeResponseModel'; import type { MoveMediaTypeRequestModel } from '../models/MoveMediaTypeRequestModel'; @@ -113,6 +116,29 @@ export class MediaTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getMediaTypeByIdCompositionReferences({ + id, + }: { + id: string, + }): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/media-type/{id}/composition-references', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns string Created * @throws ApiError @@ -168,6 +194,26 @@ export class MediaTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static postMediaTypeAvailableCompositions({ + requestBody, + }: { + requestBody?: MediaTypeCompositionRequestModel, + }): CancelablePromise> { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/media-type/available-compositions', + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns string Created * @throws ApiError From 5805f42f0a9bddf84234dd82ed865c2fb51213c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 17 Jan 2024 14:05:42 +0100 Subject: [PATCH 386/786] remove unnessecary interface --- .../block/workspace/block-workspace.context.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 64a2523ebe..6c84c2234c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -1,10 +1,6 @@ import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; import { UmbBlockElementManager } from './block-element-manager.js'; -import { - UmbEditableWorkspaceContextBase, - UmbSaveableWorkspaceContextInterface, - UmbWorkspaceContextInterface, -} from '@umbraco-cms/backoffice/workspace'; +import { UmbEditableWorkspaceContextBase, UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import { UmbBooleanState, UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; @@ -12,10 +8,9 @@ import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; -export class UmbBlockWorkspaceContext - extends UmbEditableWorkspaceContextBase - implements UmbSaveableWorkspaceContextInterface -{ +export class UmbBlockWorkspaceContext< + LayoutDataType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, +> extends UmbEditableWorkspaceContextBase { // Just for context token safety: public readonly IS_BLOCK_WORKSPACE_CONTEXT = true; // From a4cdcede28bcbbc88f1cc946ab4145c0bdaa0abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 17 Jan 2024 14:34:04 +0100 Subject: [PATCH 387/786] use _tabsStructureHelper --- .../views/edit/block-workspace-view-edit.element.ts | 7 +++++-- .../design/document-type-workspace-view-edit.element.ts | 2 +- .../views/edit/document-workspace-view-edit.element.ts | 2 +- .../views/design/media-type-workspace-view-edit.element.ts | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts index ddb4f3b067..ed9edcc0c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts @@ -80,8 +80,11 @@ export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements U (component as UmbBlockWorkspaceViewEditTabElement).tabName = tabName; // TODO: Consider if we can link these more simple, and not parse this on. // Instead have the structure manager looking at wether one of the OwnerALikecontainers is in the owner document. - (component as UmbBlockWorkspaceViewEditTabElement).ownerTabId = - this._workspaceContext?.content.structure.isOwnerContainer(tab.id!) ? tab.id : undefined; + (component as UmbBlockWorkspaceViewEditTabElement).ownerTabId = this._tabsStructureHelper.isOwnerContainer( + tab.id!, + ) + ? tab.id + : undefined; }, }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index c6a496ad70..00ace1b6b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -156,7 +156,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement extends UmbLitElement imple setup: (component) => { (component as UmbDocumentTypeWorkspaceViewEditTabElement).tabName = tabName; (component as UmbDocumentTypeWorkspaceViewEditTabElement).ownerTabId = - this._workspaceContext?.structure.isOwnerContainer(tab.id!) ? tab.id : undefined; + this._tabsStructureHelper.isOwnerContainer(tab.id!) ? tab.id : undefined; }, }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts index 46259a0340..37175719bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts @@ -81,7 +81,7 @@ export class UmbDocumentWorkspaceViewEditElement extends UmbLitElement implement // TODO: Consider if we can link these more simple, and not parse this on. // Instead have the structure manager looking at wether one of the OwnerALikecontainers is in the owner document. (component as UmbDocumentWorkspaceViewEditTabElement).ownerTabId = - this._workspaceContext?.structure.isOwnerContainer(tab.id!) ? tab.id : undefined; + this._tabsStructureHelper.isOwnerContainer(tab.id!) ? tab.id : undefined; }, }); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts index 86b41a2c33..f07fcef839 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts @@ -156,7 +156,7 @@ export class UmbMediaTypeWorkspaceViewEditElement extends UmbLitElement implemen setup: (component) => { (component as UmbMediaTypeWorkspaceViewEditTabElement).tabName = tabName; (component as UmbMediaTypeWorkspaceViewEditTabElement).ownerTabId = - this._workspaceContext?.structure.isOwnerContainer(tab.id!) ? tab.id : undefined; + this._tabsStructureHelper.isOwnerContainer(tab.id!) ? tab.id : undefined; }, }); }); From ed55095def0191ee6209d9417882e9b3665d4c99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 17 Jan 2024 15:50:17 +0100 Subject: [PATCH 388/786] clean up + logs --- .../property-editor-ui-block-list.element.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 59ae5b03eb..9c0e5383db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -15,12 +15,7 @@ import '../../components/block-list-block/index.js'; import { buildUdi } from '@umbraco-cms/backoffice/utils'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; -import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_WORKSPACE_MODAL, - UmbModalManagerContext, - UmbModalRouteRegistrationController, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} @@ -99,8 +94,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement this.observe(this.#context.layouts, (layouts) => { this._value = { ...this._value, layout: { [UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS]: layouts } }; // Notify that the value has changed. - //console.log('layout changed', this._value); - + console.log('layout changed', this._value); // TODO: idea: consider inserting an await here, so other changes could appear first? Maybe some mechanism to only fire change event onces? this._layouts = layouts; this.dispatchEvent(new UmbChangeEvent()); @@ -108,13 +102,13 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement this.observe(this.#context.contents, (contents) => { this._value = { ...this._value, contentData: contents }; // Notify that the value has changed. - //console.log('content changed', this._value); + console.log('content changed', this._value); this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.settings, (settings) => { this._value = { ...this._value, settingsData: settings }; // Notify that the value has changed. - //console.log('settings changed', this._value); + console.log('settings changed', this._value); this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.blockTypes, (blockTypes) => { From 0cbf69c2fd967749f109a534586b195c1c865370 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 17 Jan 2024 14:56:43 +0000 Subject: [PATCH 389/786] Input Document: Added sorting code --- .../input-document/input-document.element.ts | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 186f6cd874..6acc9d7401 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -4,9 +4,27 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; +import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; + +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element, model) => { + return element.getAttribute('detail') === model; + }, + querySelectModelToElement: () => null, + identifier: 'Umb.SorterIdentifier.InputDocument', + itemSelector: 'uui-ref-node', + containerSelector: 'uui-ref-list', +}; @customElement('umb-input-document') export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { + #sorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + onChange: ({ model }) => { + this.selectedIds = model; + }, + }); + /** * This is a minimum amount of selected items in this input. * @type {number} @@ -58,6 +76,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { } public set selectedIds(ids: Array) { this.#pickerContext.setSelection(ids); + this.#sorter.setModel(ids); } @property({ type: String }) @@ -79,12 +98,15 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { } @state() - private _items?: Array; + private _items: Array = []; #pickerContext = new UmbDocumentPickerContext(this); constructor() { super(); + + this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } connectedCallback() { @@ -101,9 +123,6 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max, ); - - this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } protected _openPicker() { @@ -129,9 +148,8 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { #renderItems() { if (!this._items) return; - // TODO: Add sorting. [LK] - return html`${repeat( + return html` + ${repeat( this._items, (item) => item.id, (item) => this._renderItem(item), @@ -152,7 +170,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { if (!item.id) return; return html` - ${this._renderIsTrashed(item)} + ${this.#renderIcon(item)} ${this._renderIsTrashed(item)} ${this._renderOpenButton(item)} `; + } + private _renderIsTrashed(item: DocumentItemResponseModel) { if (!item.isTrashed) return; return html`Trashed`; @@ -182,6 +205,10 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { #add-button { width: 100%; } + + uui-ref-node[drag-placeholder] { + opacity: 0.2; + } `, ]; } From df2be6d049778f3fbf300eeea6e6faa1115fcda4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 17 Jan 2024 15:56:45 +0100 Subject: [PATCH 390/786] simplify contentTypeNameOf --- .../block/block/context/block.context.ts | 33 ++++++++++--------- .../block/manager/block-manager.context.ts | 5 ++- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index 01e19fab1f..9d0f8daa21 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -80,8 +80,8 @@ export class UmbBlockContext< // Observe blockType: this.observe(this.blockType, (blockType) => { if (!blockType) return; - this.#observeBlockTypeLabel(); this.#observeBlockTypeContentElementName(); + this.#observeBlockTypeLabel(); }); } @@ -127,6 +127,21 @@ export class UmbBlockContext< ); } + #observeBlockTypeContentElementName() { + if (!this.#manager) return; + const contentElementTypeKey = this.#blockType.value?.contentElementTypeKey; + if (!contentElementTypeKey) return; + + // observe blockType: + this.observe( + this.#manager.contentTypeNameOf(contentElementTypeKey), + (contentTypeName) => { + this.#blockTypeName.next(contentTypeName); + }, + 'observeBlockTypeContentElementTypeName', + ); + } + #observeBlockTypeLabel() { if (!this.#manager) return; const blockType = this.#blockType.value; @@ -143,6 +158,7 @@ export class UmbBlockContext< this.observe( this.blockTypeName, (contentTypeName) => { + // Currently the contentTypeName is used directly as the label, but later this should just be a prop for the label to use. this.#label.next(contentTypeName ?? 'no name'); }, 'observeBlockTypeName', @@ -150,21 +166,6 @@ export class UmbBlockContext< } } - #observeBlockTypeContentElementName() { - if (!this.#manager) return; - const contentElementTypeKey = this.#blockType.value?.contentElementTypeKey; - if (!contentElementTypeKey) return; - - // observe blockType: - this.observe( - this.#manager.contentTypeNameOf(contentElementTypeKey), - (contentTypeName) => { - this.#blockTypeName.next(contentTypeName); - }, - 'observeBlockTypeContentElementTypeName', - ); - } - // Public methods: public delete() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 6a665b4c3b..03d0a98523 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -95,9 +95,8 @@ export class UmbBlockManagerContext< const contentTypeId = getKeyFromUdi(contentTypeUdi); return this.#contentTypes.asObservablePart((source) => source.find((x) => x.id === contentTypeId)); } - contentTypeNameOf(contentTypeUdi: string) { - const contentTypeId = getKeyFromUdi(contentTypeUdi); - return this.#contentTypes.asObservablePart((source) => source.find((x) => x.id === contentTypeId)?.name); + contentTypeNameOf(contentTypeKey: string) { + return this.#contentTypes.asObservablePart((source) => source.find((x) => x.id === contentTypeKey)?.name); } blockTypeOf(contentTypeKey: string) { return this.#blockTypes.asObservablePart((source) => From 2c0fd784942c26d87fd34e39c9cc247ec5027603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 17 Jan 2024 15:26:14 +0100 Subject: [PATCH 391/786] sort items manager --- .../repository/repository-items.manager.ts | 44 +++++++++++++++---- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts index 9d0806d8c8..d2190bb359 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts @@ -44,6 +44,25 @@ export class UmbRepositoryItemsManager extends UmbBaseController { this.repository = permitted ? repository.api : undefined; }, ).asPromise(); + + this.observe(this.uniques, (uniques) => { + if (uniques.length === 0) { + this.#items.next([]); + return; + } + + // Check if we already have the items, and then just sort them: + const items = this.#items.getValue(); + if ( + uniques.length === items.length && + uniques.every((unique) => items.find((item) => this.#getUnique(item) === unique)) + ) { + this.#items.next(this.#sortByUniques(items)); + } else { + // We need to load new items, so ... + this.#requestItems(); + } + }); } getUniques() { @@ -52,14 +71,6 @@ export class UmbRepositoryItemsManager extends UmbBaseController { setUniques(uniques: string[]) { this.#uniques.next(uniques); - //TODO: Check if it's safe to call requestItems here. - // We don't have to request items if there is no uniques. - if (uniques.length === 0) { - this.#items.next([]); - return; - } - - this.#requestItems(); } getItems() { @@ -76,10 +87,25 @@ export class UmbRepositoryItemsManager extends UmbBaseController { const { asObservable } = await this.repository.requestItems(this.getUniques()); if (asObservable) { - this.observe(asObservable(), (data) => this.#items.next(data), '_observeRequestedItems'); + this.observe( + asObservable(), + (data) => { + this.#items.next(this.#sortByUniques(data)); + }, + '_observeRequestedItems', + ); } } + #sortByUniques(data: Array) { + const uniques = this.getUniques(); + return [...data].sort((a, b) => { + const aIndex = uniques.indexOf(this.#getUnique(a) ?? ''); + const bIndex = uniques.indexOf(this.#getUnique(b) ?? ''); + return aIndex - bIndex; + }); + } + /* #removeItem(unique: string) { const newSelection = this.getSelection().filter((value) => value !== unique); From 97fffae214b8285d28d51ecf0651e97ff146f547 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 17 Jan 2024 15:14:54 +0000 Subject: [PATCH 392/786] Input Member: Added sorting code --- .../input-member/input-member.element.ts | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index d1106e1f2e..1888d2d806 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -3,9 +3,27 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { MemberItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; +import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; + +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element, model) => { + return element.getAttribute('detail') === model; + }, + querySelectModelToElement: () => null, + identifier: 'Umb.SorterIdentifier.InputDocument', + itemSelector: 'uui-ref-node', + containerSelector: 'uui-ref-list', +}; @customElement('umb-input-member') export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { + #sorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + onChange: ({ model }) => { + this.selectedIds = model; + }, + }); + /** * This is a minimum amount of selected items in this input. * @type {number} @@ -60,6 +78,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { } public set selectedIds(ids: Array) { //this.#pickerContext.setSelection(ids); + this.#sorter.setModel(ids); } @property() @@ -69,7 +88,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { } @state() - private _items?: Array; + private _items: Array = []; // TODO: Create the `UmbMemberPickerContext` [LK] //#pickerContext = new UmbMemberPickerContext(this); @@ -100,7 +119,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { // }); } - protected _requestRemoveItem(item: MemberItemResponseModel){ + protected _requestRemoveItem(item: MemberItemResponseModel) { console.log("member.requestRemoveItem", item); //this.#pickerContext.requestRemoveItem(item.id!); } @@ -110,17 +129,13 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { } render() { - return html` - ${this.#renderItems()} - ${this.#renderAddButton()} - `; + return html` ${this.#renderItems()} ${this.#renderAddButton()} `; } #renderItems() { if (!this._items) return; - // TODO: Add sorting. [LK] - return html`${repeat( + return html` + ${repeat( this._items, (item) => item.id, (item) => this._renderItem(item), @@ -158,6 +173,10 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { #add-button { width: 100%; } + + uui-ref-node[drag-placeholder] { + opacity: 0.2; + } `, ]; } From 64d47d049fb800e881f5bf9b26cae59fb0f38ae2 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 17 Jan 2024 15:30:11 +0000 Subject: [PATCH 393/786] Input Media: Added sorting code --- .../input-media/input-media.element.ts | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 94530be00a..ffb4afb9a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -1,12 +1,30 @@ import { UmbMediaPickerContext } from './input-media.context.js'; -import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; +import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; + +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element, model) => { + return element.getAttribute('detail') === model; + }, + querySelectModelToElement: () => null, + identifier: 'Umb.SorterIdentifier.InputMedia', + itemSelector: 'uui-card-media', + containerSelector: '.container', +}; @customElement('umb-input-media') export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { + #sorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + onChange: ({ model }) => { + this.selectedIds = model; + }, + }); + /** * This is a minimum amount of selected items in this input. * @type {number} @@ -58,6 +76,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { } public set selectedIds(ids: Array) { this.#pickerContext.setSelection(ids); + this.#sorter.setModel(ids); } @property({ type: String }) @@ -82,6 +101,9 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + + this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } connectedCallback() { @@ -98,9 +120,6 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max, ); - - this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } protected _openPicker() { @@ -121,13 +140,16 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { } render() { - return html` ${this.#renderItems()} ${this.#renderButton()} `; + return html`
${this.#renderItems()} ${this.#renderButton()}
`; } #renderItems() { if (!this._items) return; - // TODO: Add sorting. [LK] - return html` ${this._items?.map((item) => this.#renderItem(item))} `; + return html`${repeat( + this._items, + (item) => item.id, + (item) => this.#renderItem(item), + )}`; } #renderButton() { @@ -172,7 +194,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { static styles = [ css` - :host { + .container { display: grid; gap: var(--uui-size-space-3); grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); @@ -188,6 +210,10 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { display: block; margin: 0 auto; } + + uui-card-media[drag-placeholder] { + opacity: 0.2; + } `, ]; } From e0ca8592b12e942c594f727b6ef3ae1da71e766f Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 17 Jan 2024 15:32:43 +0000 Subject: [PATCH 394/786] Input Member: Corrected sorting identifier --- .../members/components/input-member/input-member.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index 1888d2d806..2c42f287bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -10,7 +10,7 @@ const SORTER_CONFIG: UmbSorterConfig = { return element.getAttribute('detail') === model; }, querySelectModelToElement: () => null, - identifier: 'Umb.SorterIdentifier.InputDocument', + identifier: 'Umb.SorterIdentifier.InputMember', itemSelector: 'uui-ref-node', containerSelector: 'uui-ref-list', }; From 3c1e5c12dba09629e78722943be6829f8e049573 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 17 Jan 2024 15:33:58 +0000 Subject: [PATCH 395/786] Input Member: Localizes "Remove" label --- .../members/components/input-member/input-member.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index 8fc73a9b80..17f7ec279e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -158,8 +158,8 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { ${this.#renderOpenButton(item)} this._requestRemoveItem(item)} - label="Remove member ${item.name}"> - Remove + label="${this.localize.term('general_remove')} ${item.name}" + >${this.localize.term('general_remove')}
From 7dbca6422888500b3b79b197dd08bf9883ea2276 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 17 Jan 2024 15:41:44 +0000 Subject: [PATCH 396/786] :facepalm: Corrected bad stash merge --- .../members/components/input-member/input-member.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index 17f7ec279e..9850b54738 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -115,7 +115,7 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { // }); } - protected _requestRemoveItem(item: MemberItemResponseModel){ + protected _requestRemoveItem(item: MemberItemResponseModel) { console.log("member.requestRemoveItem", item); //this.#pickerContext.requestRemoveItem(item.id!); } @@ -158,8 +158,8 @@ export class UmbInputMemberElement extends FormControlMixin(UmbLitElement) { ${this.#renderOpenButton(item)} this._requestRemoveItem(item)} - label="${this.localize.term('general_remove')} ${item.name}" - >${this.localize.term('general_remove')} + ${this.localize.term('general_remove')}
From 13d0a07e3cbfd49b2fb62916d7af3fe8bae2ce7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 17 Jan 2024 21:31:11 +0100 Subject: [PATCH 397/786] rename next to setValue --- .../counter-workspace-context.ts | 2 +- .../src/apps/app/server-connection.ts | 2 +- .../src/apps/backoffice/backoffice.context.ts | 4 +- .../src/apps/installer/installer.context.ts | 16 ++++---- .../registry/extension.registry.ts | 10 ++--- .../src/libs/observable-api/observer.test.ts | 2 +- .../libs/observable-api/states/array-state.ts | 37 +++++++++++++------ .../libs/observable-api/states/basic-state.ts | 21 +++++++---- .../libs/observable-api/states/class-state.ts | 11 ++++-- .../observable-api/states/deep-state.test.ts | 6 +-- .../libs/observable-api/states/deep-state.ts | 9 ++++- .../observable-api/states/object-state.ts | 2 +- .../workspace/block-type-workspace.context.ts | 6 +-- .../block/block/context/block.context.ts | 16 ++++---- .../block/manager/block-manager.context.ts | 10 ++--- .../block/workspace/block-element-manager.ts | 2 +- .../workspace/block-workspace.context.ts | 6 +-- .../collection/collection-view.manager.ts | 8 ++-- .../default/collection-default.context.ts | 8 ++-- .../input-markdown.element.ts | 2 +- ...t-type-container-structure-helper.class.ts | 10 ++--- ...nt-type-property-structure-helper.class.ts | 2 +- .../content-type-structure-manager.class.ts | 6 +-- .../workspace/data-type-workspace.context.ts | 10 ++--- .../src/packages/core/menu/menu.context.ts | 2 +- .../code-editor/code-editor-modal.element.ts | 2 +- .../core/modal/modal-manager.context.ts | 6 ++- .../core/notification/notification.context.ts | 4 +- .../property-dataset-base-context.ts | 4 +- .../property/property/property.context.ts | 20 +++++----- .../repository/repository-items.manager.ts | 6 +-- .../section-sidebar.context.ts | 16 ++++---- .../packages/core/section/section.context.ts | 6 +-- .../temporary-file-manager.class.ts | 4 +- .../src/packages/core/themes/theme.context.ts | 2 +- .../tree-item-base/tree-item-base.context.ts | 22 +++++------ .../editable-workspace-context-base.ts | 2 +- .../entity-manager-controller.ts | 4 +- .../workspace-split-view.context.ts | 2 +- .../workspace/dictionary-workspace.context.ts | 6 +-- .../document-type-workspace.context.ts | 2 +- .../document-property-dataset-context.ts | 2 +- .../workspace/document-workspace.context.ts | 4 +- .../log-viewer/workspace/logviewer.context.ts | 28 +++++++------- .../workspace/media-type-workspace.context.ts | 2 +- .../workspace/media-workspace.context.ts | 4 +- .../member-type-workspace.context.ts | 4 +- .../relation-type-workspace.context.ts | 2 +- .../language/language-workspace.context.ts | 2 +- .../partial-view-workspace.context.ts | 6 +-- .../workspace/script-workspace.context.ts | 6 +-- .../workspace/stylesheet-workspace.context.ts | 10 ++--- .../workspace/template-workspace.context.ts | 10 ++--- .../current-user-history.store.ts | 4 +- .../user/current-user/current-user.context.ts | 2 +- .../workspace/user-group-workspace.context.ts | 4 +- .../src/shared/auth/auth.context.ts | 4 +- .../pagination-manager/pagination.manager.ts | 10 ++--- .../selection-manager/selection.manager.ts | 12 +++--- 59 files changed, 233 insertions(+), 201 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/examples/workspace-context-counter/counter-workspace-context.ts b/src/Umbraco.Web.UI.Client/examples/workspace-context-counter/counter-workspace-context.ts index 9d3988074d..06b7ae2a1a 100644 --- a/src/Umbraco.Web.UI.Client/examples/workspace-context-counter/counter-workspace-context.ts +++ b/src/Umbraco.Web.UI.Client/examples/workspace-context-counter/counter-workspace-context.ts @@ -16,7 +16,7 @@ export class WorkspaceContextCounter extends UmbBaseController { // Lets expose methods to update the state: increment() { - this.#counter.next(this.#counter.value + 1); + this.#counter.setValue(this.#counter.value + 1); } } diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts b/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts index 5655be20f2..fbabfa9b7b 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/server-connection.ts @@ -56,7 +56,7 @@ export class UmbServerConnection { throw error; } - this.#isConnected.next(true); + this.#isConnected.setValue(true); this.#status = data?.serverStatus ?? RuntimeLevelModel.UNKNOWN; } } diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts index ca1f0d8079..458d13bd1b 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts @@ -19,12 +19,12 @@ export class UmbBackofficeContext extends UmbContextBase { constructor(host: UmbControllerHost) { super(host, UMB_BACKOFFICE_CONTEXT_TOKEN); new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'section', null, (sections) => { - this.#allowedSections.next([...sections]); + this.#allowedSections.setValue([...sections]); }); } public setActiveSectionAlias(alias: string) { - this.#activeSectionAlias.next(alias); + this.#activeSectionAlias.setValue(alias); } } diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts index b4d9a91c94..7d836049ef 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts @@ -62,7 +62,7 @@ export class UmbInstallerContext { * @memberof UmbInstallerContext */ public nextStep(): void { - this._currentStep.next(this._currentStep.getValue() + 1); + this._currentStep.setValue(this._currentStep.getValue() + 1); } /** @@ -71,7 +71,7 @@ export class UmbInstallerContext { * @memberof UmbInstallerContext */ public prevStep(): void { - this._currentStep.next(this._currentStep.getValue() - 1); + this._currentStep.setValue(this._currentStep.getValue() - 1); } /** @@ -80,8 +80,8 @@ export class UmbInstallerContext { * @memberof UmbInstallerContext */ public reset(): void { - this._installStatus.next(null); - this._currentStep.next(1); + this._installStatus.setValue(null); + this._currentStep.setValue(1); } /** @@ -91,7 +91,7 @@ export class UmbInstallerContext { * @memberof UmbInstallerContext */ public appendData(data: Partial): void { - this._data.next({ ...this.getData(), ...data }); + this._data.setValue({ ...this.getData(), ...data }); } /** @@ -111,7 +111,7 @@ export class UmbInstallerContext { * @memberof UmbInstallerContext */ public setInstallStatus(status: ProblemDetails | null): void { - this._installStatus.next(status); + this._installStatus.setValue(status); } /** @@ -122,9 +122,9 @@ export class UmbInstallerContext { private async _loadInstallerSettings() { const { data, error } = await tryExecute(InstallResource.getInstallSettings()); if (data) { - this._settings.next(data); + this._settings.setValue(data); } else if (error) { - this._installStatus.next(error); + this._installStatus.setValue(error); } } } diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 42a12a07e0..e31dcfb646 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -108,7 +108,7 @@ export class UmbExtensionRegistry< ), ); nextData.push(kind as ManifestKind); - this._kinds.next(nextData); + this._kinds.setValue(nextData); } register(manifest: ManifestTypes | ManifestKind): void { @@ -117,12 +117,12 @@ export class UmbExtensionRegistry< return; } - this._extensions.next([...this._extensions.getValue(), manifest as ManifestTypes]); + this._extensions.setValue([...this._extensions.getValue(), manifest as ManifestTypes]); } registerMany(manifests: Array>): void { const validManifests = manifests.filter(this.checkExtension.bind(this)); - this._extensions.next([...this._extensions.getValue(), ...(validManifests as Array)]); + this._extensions.setValue([...this._extensions.getValue(), ...(validManifests as Array)]); } unregisterMany(aliases: Array): void { @@ -133,8 +133,8 @@ export class UmbExtensionRegistry< const newKindsValues = this._kinds.getValue().filter((kind) => kind.alias !== alias); const newExtensionsValues = this._extensions.getValue().filter((extension) => extension.alias !== alias); - this._kinds.next(newKindsValues); - this._extensions.next(newExtensionsValues); + this._kinds.setValue(newKindsValues); + this._extensions.setValue(newExtensionsValues); } isRegistered(alias: string): boolean { diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.test.ts index 5a84862c5e..b34e72d63e 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.test.ts @@ -48,6 +48,6 @@ describe('UmbObserver', () => { }); expect(count).to.be.equal(1); - lateSubject.next(initialData); + lateSubject.setValue(initialData); }); }); diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts index 00e6bd5eb7..5d5b5f12a7 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts @@ -22,7 +22,7 @@ export class UmbArrayState extends UmbDeepState { /** * @method sortBy - * @param {(a: T, b: T) => number} sortMethod - A method to be used for sorting everytime data is set. + * @param {(a: T, b: T) => number} sortMethod - A method to be used for sorting every time data is set. * @description - A sort method to this Subject. * @example Example add sort method * const data = [ @@ -37,14 +37,29 @@ export class UmbArrayState extends UmbDeepState { return this; } - next(value: T[]) { + /** + * @method setValue + * @param {T} data - The next data for this state to hold. + * @description - Set the data of this state, if sortBy has been defined for this state the data will be sorted before set. If data is different than current this will trigger observations to update. + * @example Example change the data of a state + * const myState = new UmbArrayState('Good morning'); + * // myState.value is equal 'Good morning'. + * myState.setValue('Goodnight') + * // myState.value is equal 'Goodnight'. + */ + setValue(value: T[]) { if (this.#sortMethod) { - super.next(value.sort(this.#sortMethod)); + super.setValue(value.sort(this.#sortMethod)); } else { - super.next(value); + super.setValue(value); } } + /** + * @deprecated - Use `setValue` instead. + */ + next = this.setValue; + /** * @method remove * @param {unknown[]} uniques - The unique values to remove. @@ -69,7 +84,7 @@ export class UmbArrayState extends UmbDeepState { }); }); - this.next(next); + this.setValue(next); } return this; } @@ -96,7 +111,7 @@ export class UmbArrayState extends UmbDeepState { return this.getUniqueMethod(x) !== unique; }); - this.next(next); + this.setValue(next); } return this; } @@ -123,7 +138,7 @@ export class UmbArrayState extends UmbDeepState { * */ filter(predicate: (value: T, index: number, array: T[]) => boolean) { - this.next(this.getValue().filter(predicate)); + this.setValue(this.getValue().filter(predicate)); return this; } @@ -147,7 +162,7 @@ export class UmbArrayState extends UmbDeepState { } else { next.push(entry); } - this.next(next); + this.setValue(next); return this; } @@ -173,9 +188,9 @@ export class UmbArrayState extends UmbDeepState { entries.forEach((entry) => { pushToUniqueArray(next, entry, this.getUniqueMethod!); }); - this.next(next); + this.setValue(next); } else { - this.next([...this.getValue(), ...entries]); + this.setValue([...this.getValue(), ...entries]); } return this; } @@ -198,7 +213,7 @@ export class UmbArrayState extends UmbDeepState { if (!this.getUniqueMethod) { throw new Error("Can't partial update an ArrayState without a getUnique method provided when constructed."); } - this.next(partialUpdateFrozenArray(this.getValue(), entry, (x) => unique === this.getUniqueMethod!(x))); + this.setValue(partialUpdateFrozenArray(this.getValue(), entry, (x) => unique === this.getUniqueMethod!(x))); return this; } } diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts index fe3e9ae7a2..17a2f35810 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/basic-state.ts @@ -30,7 +30,7 @@ export class UmbBasicState { * @description - Holds the current data of this state. * @example Example retrieve the current data of a state * const myState = new UmbArrayState('Hello world'); - * console.log("Value is: ", myState.getValue()); + * console.log("Value is: ", myState.value); */ public get value(): BehaviorSubject['value'] { return this._subject.value; @@ -57,18 +57,23 @@ export class UmbBasicState { } /** - * @method next - * @param {T} data - The next set of data for this state to hold. + * @method setValue + * @param {T} data - The next data for this state to hold. * @description - Set the data of this state, if data is different than current this will trigger observations to update. - * @example Example retrieve the current data of a state + * @example Example change the data of a state * const myState = new UmbArrayState('Good morning'); * // myState.value is equal 'Good morning'. - * myState.next('Goodnight') + * myState.setValue('Goodnight') * // myState.value is equal 'Goodnight'. */ - next(newData: T): void { - if (newData !== this._subject.getValue()) { - this._subject.next(newData); + setValue(data: T): void { + if (data !== this._subject.getValue()) { + this._subject.next(data); } } + + /** + * @deprecated - Use `setValue` instead. + */ + next = this.setValue; } diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts index 69695deecd..b939bb3bf6 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/class-state.ts @@ -15,10 +15,15 @@ export class UmbClassState extends UmbB super(initialData); } - next(newData: T): void { + /** + * @method setValue + * @param {T} data - The next data for this state to hold. + * @description - Set the data of this state, if data is different than current this will trigger observations to update. + */ + setValue(data: T): void { const oldValue = this._subject.getValue(); - if (newData && oldValue?.equal(newData)) return; - this._subject.next(newData); + if (data && oldValue?.equal(data)) return; + this._subject.next(data); } } diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.test.ts index 99faba0457..8bd731d589 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.test.ts @@ -17,7 +17,7 @@ describe('UmbDeepState', () => { }); it('update via next', () => { - subject.next({ key: 'some', another: 'myNewValue' }); + subject.setValue({ key: 'some', another: 'myNewValue' }); expect(subject.getValue().another).to.be.equal('myNewValue'); }); @@ -47,7 +47,7 @@ describe('UmbDeepState', () => { } }); - subject.next({ key: 'change_this_first_should_not_trigger_update', another: 'myValue' }); - subject.next({ key: 'some', another: 'myNewValue' }); + subject.setValue({ key: 'change_this_first_should_not_trigger_update', another: 'myValue' }); + subject.setValue({ key: 'some', another: 'myNewValue' }); }); }); diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.ts index 1a3a85b1a3..77847a848d 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/deep-state.ts @@ -24,8 +24,13 @@ export class UmbDeepState extends UmbBasicState { return createObservablePart(this._subject, mappingFunction, memoizationFunction); } - next(newData: T): void { - const frozenData = deepFreeze(newData); + /** + * @method setValue + * @param {T} data - The next data for this state to hold. + * @description - Set the data of this state, if data is different than current this will trigger observations to update. + */ + setValue(data: T): void { + const frozenData = deepFreeze(data); // Only update data if its different than current data. if (!naiveObjectComparison(frozenData, this._subject.getValue())) { this._subject.next(frozenData); diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/object-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/object-state.ts index 7eb00528b4..815bee0865 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/object-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/object-state.ts @@ -21,7 +21,7 @@ export class UmbObjectState extends UmbDeepState { * myState.update({value: 'myNewValue'}); */ update(partialData: Partial) { - this.next({ ...this._subject.getValue(), ...partialData }); + this.setValue({ ...this._subject.getValue(), ...partialData }); return this; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index 3f18cb53c5..bb2de7ba4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -45,12 +45,12 @@ export class UmbBlockTypeWorkspaceContext x.contentElementTypeKey === unique); if (blockTypeData) { - this.#data.next(blockTypeData); + this.#data.setValue(blockTypeData); return; } } // Fallback to undefined: - this.#data.next(undefined); + this.#data.setValue(undefined); }); }); } @@ -61,7 +61,7 @@ export class UmbBlockTypeWorkspaceContext { - this.#workspacePath.next(workspacePath); + this.#workspacePath.setValue(workspacePath); }, 'observeWorkspacePath', ); @@ -94,7 +94,7 @@ export class UmbBlockContext< this.observe( this.#manager.contentOf(contentUdi), (content) => { - this.#content.next(content); + this.#content.setValue(content); }, 'observeContent', ); @@ -105,7 +105,7 @@ export class UmbBlockContext< this.observe( this.#manager.contentOf(settingsUdi), (content) => { - this.#settings.next(content); + this.#settings.setValue(content); }, 'observeSettings', ); @@ -121,7 +121,7 @@ export class UmbBlockContext< this.observe( this.#manager.blockTypeOf(contentTypeKey), (blockType) => { - this.#blockType.next(blockType as BlockType); + this.#blockType.setValue(blockType as BlockType); }, 'observeBlockType', ); @@ -135,7 +135,7 @@ export class UmbBlockContext< if (blockType.label) { this.removeControllerByAlias('observeContentTypeName'); // Missing part for label syntax, as we need to store the syntax, interpretive it and then set the label: (here we are just parsing the label syntax) - this.#label.next(blockType.label); + this.#label.setValue(blockType.label); return; } else { // TODO: Maybe this could be skipped if we had a fallback label which was set to get the content element type name? @@ -143,7 +143,7 @@ export class UmbBlockContext< this.observe( this.blockTypeName, (contentTypeName) => { - this.#label.next(contentTypeName ?? 'no name'); + this.#label.setValue(contentTypeName ?? 'no name'); }, 'observeBlockTypeName', ); @@ -159,7 +159,7 @@ export class UmbBlockContext< this.observe( this.#manager.contentTypeNameOf(contentElementTypeKey), (contentTypeName) => { - this.#blockTypeName.next(contentTypeName); + this.#blockTypeName.setValue(contentTypeName); }, 'observeBlockTypeContentElementTypeName', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 6a665b4c3b..fd529da898 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -38,21 +38,21 @@ export class UmbBlockManagerContext< public readonly settings = this.#settings.asObservable(); setBlockTypes(blockTypes: Array) { - this.#blockTypes.next(blockTypes); + this.#blockTypes.setValue(blockTypes); } getBlockTypes() { return this.#blockTypes.value; } setLayouts(layouts: Array) { - this.#layouts.next(layouts); + this.#layouts.setValue(layouts); } setContents(contents: Array) { - this.#contents.next(contents); + this.#contents.setValue(contents); } setSettings(settings: Array) { - this.#settings.next(settings); + this.#settings.setValue(settings); } constructor(host: UmbControllerHost) { @@ -67,7 +67,7 @@ export class UmbBlockManagerContext< }) .observeRouteBuilder((routeBuilder) => { const newPath = routeBuilder({}); - this.#workspacePath.next(newPath); + this.#workspacePath.setValue(newPath); }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts index d6bd4723a9..9459d89043 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -27,7 +27,7 @@ export class UmbBlockElementManager extends UmbBaseController { } setData(data: UmbBlockDataType | undefined) { - this.#data.next(data); + this.#data.setValue(data); this.#getDataResolver(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 64a2523ebe..0da890c531 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -55,7 +55,7 @@ export class UmbBlockWorkspaceContext { - this.#layout.next(layoutData as LayoutDataType); + this.#layout.setValue(layoutData as LayoutDataType); // // Content: @@ -104,14 +104,14 @@ export class UmbBlockWorkspaceContext { const currentUrl = new URL(window.location.href); - this.#rootPathname.next(currentUrl.pathname.substring(0, currentUrl.pathname.lastIndexOf('/'))); + this.#rootPathname.setValue(currentUrl.pathname.substring(0, currentUrl.pathname.lastIndexOf('/'))); }, 100); } @@ -44,7 +44,7 @@ export class UmbCollectionViewManager extends UmbBaseController { * @memberof UmbCollectionContext */ public setCurrentView(view: ManifestCollectionView) { - this.#currentView.next(view); + this.#currentView.setValue(view); } /** @@ -59,7 +59,7 @@ export class UmbCollectionViewManager extends UmbBaseController { #observeViews() { return new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'collectionView', null, (views) => { const manifests = views.map((view) => view.manifest); - this.#views.next(manifests); + this.#views.setValue(manifests); this.#createRoutes(manifests); }); } @@ -88,6 +88,6 @@ export class UmbCollectionViewManager extends UmbBaseController { }); } - this.#routes.next(routes); + this.#routes.setValue(routes); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts index 5e8e5a228f..40d3a39152 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts @@ -99,8 +99,8 @@ export class UmbDefaultCollectionContext< const { data } = await this.repository.requestCollection(filter); if (data) { - this.#items.next(data.items); - this.#totalItems.next(data.total); + this.#items.setValue(data.items); + this.#totalItems.setValue(data.total); this.pagination.setTotalItems(data.total); } } @@ -111,14 +111,14 @@ export class UmbDefaultCollectionContext< * @memberof UmbCollectionContext */ public setFilter(filter: Partial) { - this.#filter.next({ ...this.#filter.getValue(), ...filter }); + this.#filter.setValue({ ...this.#filter.getValue(), ...filter }); this.requestCollection(); } #configure(configuration: UmbCollectionConfiguration) { this.selection.setMultiple(true); this.pagination.setPageSize(configuration.pageSize!); - this.#filter.next({ ...this.#filter.getValue(), skip: 0, take: configuration.pageSize }); + this.#filter.setValue({ ...this.#filter.getValue(), skip: 0, take: configuration.pageSize }); } #onPageChange = (event: UmbChangeEvent) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts index 780019cb83..941b17be7e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts @@ -67,7 +67,7 @@ export class UmbInputMarkdownElement extends FormControlMixin(UmbLitElement) { folding: false, }); // Prefer to update options before showing the editor, to avoid seeing the changes in the UI. - this.#isCodeEditorReady.next(true); + this.#isCodeEditorReady.setValue(true); this.#loadActions(); } catch (error) { console.error(error); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index d6fa9d50d9..aa5467dd1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -96,9 +96,9 @@ export class UmbContentTypeContainerStructureHelper { if (!this.#structure || !this._ownerType) return; if (this._isRoot) { - this.#containers.next([]); + this.#containers.setValue([]); // We cannot have root properties currently, therefor we set it to false: - this.#hasProperties.next(false); + this.#hasProperties.setValue(false); this._observeRootContainers(); new UmbObserverController( this.#host, @@ -113,7 +113,7 @@ export class UmbContentTypeContainerStructureHelper { this.#host, this.#structure.containersByNameAndType(this._ownerName, this._ownerType), (ownerALikeContainers) => { - this.#containers.next([]); + this.#containers.setValue([]); this._ownerContainers = ownerALikeContainers.filter((x) => x.id === this._ownerId) || []; this._ownerAlikeContainers = ownerALikeContainers || []; if (this._ownerAlikeContainers.length > 0) { @@ -134,7 +134,7 @@ export class UmbContentTypeContainerStructureHelper { this.#host, this.#structure!.hasPropertyStructuresOf(container.id!), (hasProperties) => { - this.#hasProperties.next(hasProperties); + this.#hasProperties.setValue(hasProperties); }, '_observeOwnerHasProperties_' + container.id, ); @@ -161,7 +161,7 @@ export class UmbContentTypeContainerStructureHelper { this.#host, this.#structure.rootContainers(this._childType!), (rootContainers) => { - this.#containers.next([]); + this.#containers.setValue([]); this._insertGroupContainers(rootContainers); }, '_observeRootContainers', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index 0f655193cc..4aaa3c1c88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -101,7 +101,7 @@ export class UmbContentTypePropertyStructureHelper { }); // Fire update to subscribers: - this.#propertyStructure.next(_propertyStructure); + this.#propertyStructure.setValue(_propertyStructure); }, '_observePropertyStructureOfGroup' + groupId, ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index daa038d856..1bc396c3da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -51,7 +51,7 @@ export class UmbContentTypePropertyStructureManager< }); }); this.observe(this._contentTypeContainers, (contentTypeContainers) => { - this.#containers.next(contentTypeContainers); + this.#containers.setValue(contentTypeContainers); }); } @@ -449,8 +449,8 @@ export class UmbContentTypePropertyStructureManager< private _reset() { this.#contentTypeObservers.forEach((observer) => observer.destroy()); this.#contentTypeObservers = []; - this.#contentTypes.next([]); - this.#containers.next([]); + this.#contentTypes.setValue([]); + this.#containers.setValue([]); } public destroy() { this._reset(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts index 324032ed65..72e6fb88e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts @@ -113,8 +113,8 @@ export class UmbDataTypeWorkspaceContext return this.observe( umbExtensionsRegistry.getByTypeAndAlias('propertyEditorUi', propertyEditorUIAlias), (manifest) => { - this.#propertyEditorUiIcon.next(manifest?.meta.icon || null); - this.#propertyEditorUiName.next(manifest?.name || null); + this.#propertyEditorUiIcon.setValue(manifest?.meta.icon || null); + this.#propertyEditorUiName.setValue(manifest?.name || null); this._propertyEditorUISettingsSchemaAlias = manifest?.meta.propertyEditorSchemaAlias; this._propertyEditorUISettingsProperties = manifest?.meta.settings?.properties || []; @@ -126,7 +126,7 @@ export class UmbDataTypeWorkspaceContext private _mergeConfigProperties() { if (this._propertyEditorSchemaConfigProperties && this._propertyEditorUISettingsProperties) { // TODO: Consider the ability to to omit a schema config if a UI config has same alias. Otherwise we should make an error when this case happens. - this.#properties.next([ + this.#properties.setValue([ ...this._propertyEditorSchemaConfigProperties, ...this._propertyEditorUISettingsProperties, ]); @@ -140,7 +140,7 @@ export class UmbDataTypeWorkspaceContext ...this._propertyEditorSchemaConfigDefaultData, ...this._propertyEditorUISettingsDefaultData, ]; - this.#defaults.next(this._configDefaultData); + this.#defaults.setValue(this._configDefaultData); } public getPropertyDefaultValue(alias: string) { @@ -210,7 +210,7 @@ export class UmbDataTypeWorkspaceContext this.setIsNew(true); // TODO: This is a hack to get around the fact that the data is not typed correctly. // Create and response models are different. We need to look into this. - this.#data.next(data as unknown as UmbDataTypeDetailModel); + this.#data.setValue(data as unknown as UmbDataTypeDetailModel); return { data }; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts index ed478713e6..f3e324c045 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts @@ -8,7 +8,7 @@ export class UmbMenuContext { public readonly alias = this.#manifest.asObservablePart((x) => x?.alias); public setManifest(manifest: ManifestMenu | undefined) { - this.#manifest.next(manifest); + this.#manifest.setValue(manifest); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts index 2a1c8bd9b8..84e0173b6f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts @@ -28,7 +28,7 @@ export class UmbCodeEditorModalElement extends UmbModalBaseElement entry.key === modalContext.key)); + this.#modals.setValue( + appendToFrozenArray(this.#modals.value, modalContext, (entry) => entry.key === modalContext.key), + ); // Return to implementor: return modalContext; @@ -62,7 +64,7 @@ export class UmbModalManagerContext extends UmbContextBase modal.key !== key)); + this.#modals.setValue(this.#modals.getValue().filter((modal) => modal.key !== key)); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts index ac2fd8276f..8134a606b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts @@ -47,7 +47,7 @@ export class UmbNotificationContext extends UmbContextBase this._handleClosed(notificationHandler)); - this._notifications.next([...this._notifications.getValue(), notificationHandler]); + this._notifications.setValue([...this._notifications.getValue(), notificationHandler]); return notificationHandler; } @@ -58,7 +58,7 @@ export class UmbNotificationContext extends UmbContextBase notification.key !== key)); + this._notifications.setValue(this._notifications.getValue().filter((notification) => notification.key !== key)); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts index 6536b47d7f..d794a99e03 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts @@ -36,7 +36,7 @@ export class UmbPropertyDatasetBaseContext return this.#name.getValue(); } setName(name: string | undefined) { - this.#name.next(name); + this.#name.setValue(name); } getVariantId() { return UmbVariantId.CreateInvariant(); @@ -69,6 +69,6 @@ export class UmbPropertyDatasetBaseContext return this.#values.getValue(); } setValues(map: Array) { - this.#values.next(map); + this.#values.setValue(map); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index 6f47c3b342..2789cf6efb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -37,7 +37,7 @@ export class UmbPropertyContext extends UmbBaseController { private _editor = new UmbBasicState(undefined); public readonly editor = this._editor.asObservable(); setEditor(editor: UmbPropertyEditorUiElement | undefined) { - this._editor.next(editor ?? undefined); + this._editor.setValue(editor ?? undefined); } getEditor() { return this._editor.getValue(); @@ -68,7 +68,7 @@ export class UmbPropertyContext extends UmbBaseController { this._providerController = new UmbContextProviderController(host, UMB_PROPERTY_CONTEXT, this); this.observe(this.configValues, (configValues) => { - this.#configCollection.next(configValues ? new UmbPropertyEditorConfigCollection(configValues) : undefined); + this.#configCollection.setValue(configValues ? new UmbPropertyEditorConfigCollection(configValues) : undefined); }); this.observe(this.variantId, () => { @@ -86,7 +86,7 @@ export class UmbPropertyContext extends UmbBaseController { this._observePropertyVariant?.destroy(); if (variantIdSubject) { this._observePropertyVariant = this.observe(variantIdSubject, (variantId) => { - this.#variantId.next(variantId); + this.#variantId.setValue(variantId); }); } @@ -96,7 +96,7 @@ export class UmbPropertyContext extends UmbBaseController { this._observePropertyValue?.destroy(); if (subject) { this._observePropertyValue = this.observe(subject, (value) => { - this.#value.next(value); + this.#value.setValue(value); }); } } @@ -104,19 +104,19 @@ export class UmbPropertyContext extends UmbBaseController { private _generateVariantDifferenceString() { if (!this.#datasetContext) return; const contextVariantId = this.#datasetContext.getVariantId?.() ?? undefined; - this._variantDifference.next( + this._variantDifference.setValue( contextVariantId ? this.#variantId.getValue()?.toDifferencesString(contextVariantId) : '', ); } public setAlias(alias: string | undefined) { - this.#alias.next(alias); + this.#alias.setValue(alias); } public setLabel(label: string | undefined) { - this.#label.next(label); + this.#label.setValue(label); } public setDescription(description: string | undefined) { - this.#description.next(description); + this.#description.setValue(description); } /** * Set the value of this property. @@ -136,10 +136,10 @@ export class UmbPropertyContext extends UmbBaseController { return this.#value.getValue(); } public setConfig(config: Array | undefined) { - this.#configValues.next(config ?? []); + this.#configValues.setValue(config ?? []); } public setVariantId(variantId: UmbVariantId | undefined) { - this.#variantId.next(variantId); + this.#variantId.setValue(variantId); } public getVariantId() { return this.#variantId.getValue(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts index 9d0806d8c8..ffdd73788c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-items.manager.ts @@ -51,11 +51,11 @@ export class UmbRepositoryItemsManager extends UmbBaseController { } setUniques(uniques: string[]) { - this.#uniques.next(uniques); + this.#uniques.setValue(uniques); //TODO: Check if it's safe to call requestItems here. // We don't have to request items if there is no uniques. if (uniques.length === 0) { - this.#items.next([]); + this.#items.setValue([]); return; } @@ -76,7 +76,7 @@ export class UmbRepositoryItemsManager extends UmbBaseController { const { asObservable } = await this.repository.requestItems(this.getUniques()); if (asObservable) { - this.observe(asObservable(), (data) => this.#items.next(data), '_observeRequestedItems'); + this.observe(asObservable(), (data) => this.#items.setValue(data), '_observeRequestedItems'); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts index 1221c3e175..d73a104a5b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts @@ -27,17 +27,17 @@ export class UmbSectionSidebarContext { // TODO: we wont get notified about tree item name changes because we don't have a subscription // we need to figure out how we best can handle this when we only know the entity and unique id openContextMenu(entityType: string, unique: string | null | undefined, headline: string | undefined) { - this.#entityType.next(entityType); - this.#unique.next(unique); - this.#headline.next(headline); - this.#contextMenuIsOpen.next(true); + this.#entityType.setValue(entityType); + this.#unique.setValue(unique); + this.#headline.setValue(headline); + this.#contextMenuIsOpen.setValue(true); } closeContextMenu() { - this.#contextMenuIsOpen.next(false); - this.#entityType.next(undefined); - this.#unique.next(undefined); - this.#headline.next(undefined); + this.#contextMenuIsOpen.setValue(false); + this.#entityType.setValue(undefined); + this.#unique.setValue(undefined); + this.#headline.setValue(undefined); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts index 7f05218da3..71787d9021 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts @@ -15,9 +15,9 @@ export class UmbSectionContext { } public setManifest(manifest?: ManifestSection) { - this.#manifestAlias.next(manifest?.alias); - this.#manifestPathname.next(manifest?.meta?.pathname); - this.#manifestLabel.next(manifest ? manifest.meta?.label || manifest.name : undefined); + this.#manifestAlias.setValue(manifest?.alias); + this.#manifestPathname.setValue(manifest?.meta?.pathname); + this.#manifestLabel.setValue(manifest ? manifest.meta?.label || manifest.name : undefined); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts index 5037f8fecc..d31405c150 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts @@ -48,7 +48,7 @@ export class UmbTemporaryFileManager extends UmbBaseController { if (!queue.length && this.getIsReady()) return; - this.#isReady.next(false); + this.#isReady.setValue(false); queue.forEach(async (item) => { if (item.status !== 'waiting') return; @@ -64,7 +64,7 @@ export class UmbTemporaryFileManager extends UmbBaseController { }); if (!queue.find((item) => item.status === 'waiting') && !this.getIsReady()) { - this.#isReady.next(true); + this.#isReady.setValue(true); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts index 3bbbb0c81d..f1a6e20d59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts @@ -28,7 +28,7 @@ export class UmbThemeContext extends UmbBaseController { } public setThemeByAlias(themeAlias: string) { - this.#theme.next(themeAlias); + this.#theme.setValue(themeAlias); this.#themeObserver?.destroy(); if (themeAlias) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index a32f53051b..81c6d5fb4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -63,7 +63,7 @@ export class UmbTreeItemContextBase public setTreeItem(treeItem: TreeItemType | undefined) { if (!treeItem) { - this.#treeItem.next(undefined); + this.#treeItem.setValue(undefined); return; } @@ -75,8 +75,8 @@ export class UmbTreeItemContextBase if (!treeItem.entityType) throw new Error('Could not create tree item context, tree item type is missing'); this.entityType = treeItem.entityType; - this.#hasChildren.next(treeItem.hasChildren || false); - this.#treeItem.next(treeItem); + this.#hasChildren.setValue(treeItem.hasChildren || false); + this.#treeItem.setValue(treeItem); // Update observers: this.#observeActions(); @@ -89,9 +89,9 @@ export class UmbTreeItemContextBase if (this.unique === undefined) throw new Error('Could not request children, unique key is missing'); // TODO: wait for tree context to be ready - this.#isLoading.next(true); + this.#isLoading.setValue(true); const response = await this.treeContext!.requestChildrenOf(this.unique); - this.#isLoading.next(false); + this.#isLoading.setValue(false); return response; } @@ -140,12 +140,12 @@ export class UmbTreeItemContextBase this.observe( this.treeContext.selection.selectable, (value) => { - this.#isSelectableContext.next(value); + this.#isSelectableContext.setValue(value); // If the tree is selectable, check if this item is selectable if (value === true) { const isSelectable = this.treeContext?.selectableFilter?.(this.getTreeItem()!) ?? true; - this.#isSelectable.next(isSelectable); + this.#isSelectable.setValue(isSelectable); } }, 'observeIsSelectable', @@ -158,7 +158,7 @@ export class UmbTreeItemContextBase this.observe( this.treeContext.selection.selection.pipe(map((selection) => selection.includes(this.unique!))), (isSelected) => { - this.#isSelected.next(isSelected); + this.#isSelected.setValue(isSelected); }, 'observeIsSelected', ); @@ -172,7 +172,7 @@ export class UmbTreeItemContextBase (pathname) => { if (!pathname || !this.entityType || this.unique === undefined) return; const path = this.constructPath(pathname, this.entityType, this.unique); - this.#path.next(path); + this.#path.setValue(path); }, 'observeSectionPath', ); @@ -184,7 +184,7 @@ export class UmbTreeItemContextBase .extensionsOfType('entityAction') .pipe(map((actions) => actions.filter((action) => action.meta.entityTypes.includes(this.entityType!)))), (actions) => { - this.#hasActions.next(actions.length > 0); + this.#hasActions.setValue(actions.length > 0); }, 'observeActions', ); @@ -200,7 +200,7 @@ export class UmbTreeItemContextBase // we need to skip the first value, because it will also return false until a child is in the store // we therefor rely on the value from the tree item itself if (this.#hasChildrenInitValueFlag === true) { - this.#hasChildren.next(hasChildren); + this.#hasChildren.setValue(hasChildren); } this.#hasChildrenInitValueFlag = true; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index 392a1c2791..d8b4339766 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -31,7 +31,7 @@ export abstract class UmbEditableWorkspaceContextBase } setIsNew(isNew: boolean) { - this.#isNew.next(isNew); + this.#isNew.setValue(isNew); } protected saveComplete(data: WorkspaceData) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts index dc7f922ac6..a7f25d3980 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts @@ -53,7 +53,7 @@ export class UmbEntityWorkspaceManager< if (this.#isNew) { const newData = this._store.getScaffold(this._entityType, this._createAtParentKey || null); - this.state.next(newData); + this.state.setValue(newData); } else { this._storeSubscription?.destroy(); this._storeSubscription = new UmbObserverController( @@ -61,7 +61,7 @@ export class UmbEntityWorkspaceManager< this._store.getByKey(this._entityId), (content) => { if (!content) return; // TODO: Handle nicely if there is no content data. - this.state.next(content as any); + this.state.setValue(content as any); }, ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts index 6932dc3a39..259993ee1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts @@ -77,7 +77,7 @@ export class UmbWorkspaceSplitViewContext extends UmbBaseController { return this.#index.getValue(); } public setSplitViewIndex(index: number) { - this.#index.next(index); + this.#index.setValue(index); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts index 7324e5ae02..7510b31611 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts @@ -59,14 +59,14 @@ export class UmbDictionaryWorkspaceContext updatedValue?.push({ isoCode, translation }); } - this.#data.next({ ...this.#data.value, translations: updatedValue }); + this.#data.setValue({ ...this.#data.value, translations: updatedValue }); } async load(entityId: string) { const { data } = await this.repository.requestById(entityId); if (data) { this.setIsNew(false); - this.#data.next(data); + this.#data.setValue(data); } } @@ -75,7 +75,7 @@ export class UmbDictionaryWorkspaceContext if (!data) return; this.setIsNew(true); - this.#data.next(data as DictionaryItemResponseModel); + this.#data.setValue(data as DictionaryItemResponseModel); } async save() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index 723232259b..197515c3f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -72,7 +72,7 @@ export class UmbDocumentTypeWorkspaceContext } setIsSorting(isSorting: boolean) { - this.#isSorting.next(isSorting); + this.#isSorting.setValue(isSorting); } getData() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts index 951a97ddbe..bbfd36a12d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts @@ -60,7 +60,7 @@ export class UmbDocumentPropertyDataContext this.#workspace.variantById(this.#variantId), async (variantInfo) => { if (!variantInfo) return; - this.#currentVariant.next(variantInfo); + this.#currentVariant.setValue(variantInfo); }, '_observeActiveVariant', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index e63769fb36..bb95a7f518 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -63,7 +63,7 @@ export class UmbDocumentWorkspaceContext this.setIsNew(false); //this.#persisted.next(data); - this.#currentData.next(data); + this.#currentData.setValue(data); return data || undefined; } @@ -73,7 +73,7 @@ export class UmbDocumentWorkspaceContext if (!data) return undefined; this.setIsNew(true); - this.#currentData.next(data); + this.#currentData.setValue(data); return data || undefined; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts index 3bb56112d7..ecadd02005 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts @@ -158,7 +158,7 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U return; } - this.#dateRange.next({ startDate, endDate }); + this.#dateRange.setValue({ startDate, endDate }); this.validateLogSize(); this.getLogCount(); this.getMessageTemplates(0, 10); @@ -171,10 +171,10 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U async getSavedSearches() { const { data } = await this.#repository.getSavedSearches({ skip: 0, take: 100 }); if (data) { - this.#savedSearches.next(data); + this.#savedSearches.setValue(data); } else { //falback to some default searches resembling Umbraco <= 12 - this.#savedSearches.next({ + this.#savedSearches.setValue({ items: [ { name: 'Find all logs where the Level is NOT Verbose and NOT Debug', @@ -230,7 +230,7 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U const { data } = await this.#repository.getLogCount({ ...this.#dateRange.getValue() }); if (data) { - this.#logCount.next(data); + this.#logCount.setValue(data); } } @@ -238,7 +238,7 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U const { data } = await this.#repository.getMessageTemplates({ skip, take, ...this.#dateRange.getValue() }); if (data) { - this.#messageTemplates.next(data); + this.#messageTemplates.setValue(data); } } @@ -246,17 +246,17 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U const { data } = await this.#repository.getLogLevels({ skip, take }); if (data) { - this.#loggers.next(data); + this.#loggers.setValue(data); } } async validateLogSize() { const { error } = await this.#repository.getLogViewerValidateLogsSize({ ...this.#dateRange.getValue() }); if (error) { - this.#canShowLogs.next(false); + this.#canShowLogs.setValue(false); return; } - this.#canShowLogs.next(true); + this.#canShowLogs.setValue(true); } setCurrentPage(page: number) { @@ -270,7 +270,7 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U const isPollingEnabled = this.#polling.getValue().enabled; - if (!isPollingEnabled) this.#isLoadingLogs.next(true); + if (!isPollingEnabled) this.#isLoadingLogs.setValue(true); const skip = (this.currentPage - 1) * 100; const take = 100; @@ -285,18 +285,18 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U }; const { data } = await this.#repository.getLogs(options); - this.#isLoadingLogs.next(false); + this.#isLoadingLogs.setValue(false); if (data) { - this.#logs.next(data); + this.#logs.setValue(data); } }; setFilterExpression(query: string) { - this.#filterExpression.next(query); + this.#filterExpression.setValue(query); } setLogLevelsFilter(logLevels: LogLevelModel[]) { - this.#logLevelsFilter.next(logLevels); + this.#logLevelsFilter.setValue(logLevels); } togglePolling() { @@ -323,7 +323,7 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U toggleSortOrder() { const direction = this.#sortingDirection.getValue(); const newDirection = direction === DirectionModel.ASCENDING ? DirectionModel.DESCENDING : DirectionModel.ASCENDING; - this.#sortingDirection.next(newDirection); + this.#sortingDirection.setValue(newDirection); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index 0ce3082866..3a2e9d6a89 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -58,7 +58,7 @@ export class UmbMediaTypeWorkspaceContext } setIsSorting(isSorting: boolean) { - this.#isSorting.next(isSorting); + this.#isSorting.setValue(isSorting); } getData() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index a01190998e..27fe963dcf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -57,7 +57,7 @@ export class UmbMediaWorkspaceContext const { data } = await this.repository.requestById(entityId); if (data) { this.setIsNew(false); - this.#data.next(data); + this.#data.setValue(data); } } @@ -67,7 +67,7 @@ export class UmbMediaWorkspaceContext this.setIsNew(true); // TODO: This is a hack to get around the fact that the data is not typed correctly. // Create and response models are different. We need to look into this. - this.#data.next(data as unknown as UmbMediaDetailModel); + this.#data.setValue(data as unknown as UmbMediaDetailModel); } async save() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts index c078c85f0d..29cfe0115a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts @@ -28,7 +28,7 @@ export class UmbMemberTypeWorkspaceContext const { data } = await this.repository.requestById(entityId); if (data) { this.setIsNew(false); - this.#data.next(data); + this.#data.setValue(data); } } @@ -36,7 +36,7 @@ export class UmbMemberTypeWorkspaceContext const { data } = await this.repository.createScaffold(); if (!data) return; this.setIsNew(true); - this.#data.next(data); + this.#data.setValue(data); } getData() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts index 2e1ed8db2c..ee60e9fe2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.context.ts @@ -37,7 +37,7 @@ export class UmbRelationTypeWorkspaceContext const { data } = await this.repository.createScaffold(parentId); if (!data) return; this.setIsNew(true); - this.#data.next(data); + this.#data.setValue(data); } async getRelations() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts index 9e8965d1e4..712f34add6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace.context.ts @@ -78,7 +78,7 @@ export class UmbLanguageWorkspaceContext // TODO: this is a temp solution to bubble validation errors to the UI setValidationErrors(errorMap: any) { // TODO: I can't use the update method to set the value to undefined - this.#validationErrors.next(errorMap); + this.#validationErrors.setValue(errorMap); } async save() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index 2ffb2c5e48..c5926af5bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -66,7 +66,7 @@ export class UmbPartialViewWorkspaceContext async #loadCodeEditor() { try { await loadCodeEditor(); - this.#isCodeEditorReady.next(true); + this.#isCodeEditorReady.setValue(true); } catch (error) { console.error(error); } @@ -88,7 +88,7 @@ export class UmbPartialViewWorkspaceContext const { data } = await this.repository.requestByKey(entityKey); if (data) { this.setIsNew(false); - this.#data.next(data); + this.#data.setValue(data); } } @@ -103,7 +103,7 @@ export class UmbPartialViewWorkspaceContext this.setIsNew(true); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - this.#data.next(newPartial); + this.#data.setValue(newPartial); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index 2f24695b2d..2c4339f1f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -28,7 +28,7 @@ export class UmbScriptWorkspaceContext extends UmbEditableWorkspaceContextBase ({ ...r, sortOrder: i })); - this.#rules.next(newRules); + this.#rules.setValue(newRules); this.sendRulesGetContent(); } @@ -99,9 +99,9 @@ export class UmbStylesheetWorkspaceContext if (rules.data) { const x = rules.data.rules?.map((r, i) => ({ ...r, sortOrder: i })) ?? []; - this.#rules.next(x); + this.#rules.setValue(x); } else { - this.#rules.next([]); + this.#rules.setValue([]); } } @@ -175,7 +175,7 @@ export class UmbStylesheetWorkspaceContext content: '', }; - this.#data.next(newStylesheet); + this.#data.setValue(newStylesheet); this.setIsNew(true); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index f126f151e1..828a84acdf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -41,7 +41,7 @@ export class UmbTemplateWorkspaceContext async #loadCodeEditor() { try { await loadCodeEditor(); - this.#isCodeEditorReady.next(true); + this.#isCodeEditorReady.setValue(true); } catch (error) { console.error(error); } @@ -84,20 +84,20 @@ export class UmbTemplateWorkspaceContext if (data) { this.setIsNew(false); this.setMasterTemplate(data.masterTemplateId ?? null); - this.#data.next(data); + this.#data.setValue(data); } } async setMasterTemplate(id: string | null) { if (id === null) { - this.#masterTemplate.next(null); + this.#masterTemplate.setValue(null); this.#updateMasterTemplateLayoutBlock(); return null; } const { data } = await this.repository.requestItems([id]); if (data) { - this.#masterTemplate.next(data[0]); + this.#masterTemplate.setValue(data[0]); this.#updateMasterTemplateLayoutBlock(); return data[0]; } @@ -166,7 +166,7 @@ ${currentContent}`; const { data } = await this.repository.createScaffold(parentId); if (!data) return; this.setIsNew(true); - this.#data.next({ ...data, id: '', name: '', alias: '' }); + this.#data.setValue({ ...data, id: '', name: '', alias: '' }); if (!parentId) return; await this.setMasterTemplate(parentId); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts index bc96926eac..8b25a0a437 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts @@ -47,7 +47,7 @@ export class UmbCurrentUserHistoryStore extends UmbStoreBase) { - this.#userIds.next(keys); + this.#userIds.setValue(keys); } /** diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts index 7eea0b7ed5..d9e45daca3 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts @@ -36,11 +36,11 @@ export class UmbAuthContext extends UmbBaseController implements IUmbAuthContext */ getIsAuthorized() { if (this.#isBypassed) { - this.#isAuthorized.next(true); + this.#isAuthorized.setValue(true); return true; } else { const isAuthorized = this.#authFlow.isAuthorized(); - this.#isAuthorized.next(isAuthorized); + this.#isAuthorized.setValue(isAuthorized); return isAuthorized; } } diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.ts index c72384ff88..148e6850fa 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/pagination-manager/pagination.manager.ts @@ -23,7 +23,7 @@ export class UmbPaginationManager extends EventTarget { * @memberof UmbPaginationManager */ public setPageSize(pageSize: number) { - this.#pageSize.next(pageSize); + this.#pageSize.setValue(pageSize); this.#calculateTotalPages(); } @@ -51,7 +51,7 @@ export class UmbPaginationManager extends EventTarget { * @memberof UmbPaginationManager */ public setTotalItems(totalItems: number) { - this.#totalItems.next(totalItems); + this.#totalItems.setValue(totalItems); this.#calculateTotalPages(); } @@ -87,7 +87,7 @@ export class UmbPaginationManager extends EventTarget { pageNumber = this.#totalPages.getValue(); } - this.#currentPage.next(pageNumber); + this.#currentPage.setValue(pageNumber); this.#calculateSkip(); this.dispatchEvent(new UmbChangeEvent()); } @@ -107,7 +107,7 @@ export class UmbPaginationManager extends EventTarget { */ #calculateTotalPages() { const totalPages = Math.ceil(this.#totalItems.getValue() / this.#pageSize.getValue()); - this.#totalPages.next(totalPages); + this.#totalPages.setValue(totalPages); /* If we currently are on a page higher than the total pages. We need to reset the current page to the last page. This can happen if we have a filter that returns less items than the current page size. */ @@ -118,6 +118,6 @@ export class UmbPaginationManager extends EventTarget { #calculateSkip() { const skip = (this.#currentPage.getValue() - 1) * this.#pageSize.getValue(); - this.#skip.next(skip); + this.#skip.setValue(skip); } } diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts index 477a6d3daa..e273849bd7 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts @@ -37,7 +37,7 @@ export class UmbSelectionManager extends UmbBaseController { * @memberof UmbSelectionManager */ public setSelectable(value: boolean) { - this.#selectable.next(value); + this.#selectable.setValue(value); } /** @@ -58,7 +58,7 @@ export class UmbSelectionManager extends UmbBaseController { if (this.getSelectable() === false) return; if (value === undefined) throw new Error('Value cannot be undefined'); const newSelection = this.getMultiple() ? value : value.slice(0, 1); - this.#selection.next(newSelection); + this.#selection.setValue(newSelection); } /** @@ -76,7 +76,7 @@ export class UmbSelectionManager extends UmbBaseController { * @memberof UmbSelectionManager */ public setMultiple(value: boolean) { - this.#multiple.next(value); + this.#multiple.setValue(value); /* If multiple is set to false, and the current selection is more than one, then we need to set the selection to the first item. */ @@ -104,7 +104,7 @@ export class UmbSelectionManager extends UmbBaseController { if (this.getSelectable() === false) return; if (this.isSelected(unique)) return; const newSelection = this.getMultiple() ? [...this.getSelection(), unique] : [unique]; - this.#selection.next(newSelection); + this.#selection.setValue(newSelection); this.getHostElement().dispatchEvent(new UmbSelectionChangeEvent()); } @@ -116,7 +116,7 @@ export class UmbSelectionManager extends UmbBaseController { public deselect(unique: string | null) { if (this.getSelectable() === false) return; const newSelection = this.getSelection().filter((x) => x !== unique); - this.#selection.next(newSelection); + this.#selection.setValue(newSelection); this.getHostElement().dispatchEvent(new UmbSelectionChangeEvent()); } @@ -136,6 +136,6 @@ export class UmbSelectionManager extends UmbBaseController { */ public clearSelection() { if (this.getSelectable() === false) return; - this.#selection.next([]); + this.#selection.setValue([]); } } From f0a3224874c46bc95fc4364128b531c0c5833576 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 18 Jan 2024 09:32:04 +0100 Subject: [PATCH 398/786] update lockfile --- src/Umbraco.Web.UI.Client/package-lock.json | 8120 ++++++------------- 1 file changed, 2259 insertions(+), 5861 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 349dc4a6fd..ef403c49d4 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -91,9 +91,8 @@ }, "node_modules/@75lb/deep-merge": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz", - "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==", "dev": true, + "license": "MIT", "dependencies": { "lodash.assignwith": "^4.2.0", "typical": "^7.1.1" @@ -104,27 +103,24 @@ }, "node_modules/@75lb/deep-merge/node_modules/typical": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -135,9 +131,8 @@ }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", "dev": true, + "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.6", @@ -147,15 +142,13 @@ }, "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -165,9 +158,8 @@ }, "node_modules/@aw-web-design/x-default-browser": { "version": "1.4.126", - "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz", - "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==", "dev": true, + "license": "MIT", "dependencies": { "default-browser-id": "3.0.0" }, @@ -177,9 +169,8 @@ }, "node_modules/@babel/code-frame": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -190,18 +181,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", - "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -229,15 +218,13 @@ }, "node_modules/@babel/core/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/generator": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.5", "@jridgewell/gen-mapping": "^0.3.2", @@ -250,9 +237,8 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -262,9 +248,8 @@ }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -274,9 +259,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -290,9 +274,8 @@ }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", - "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -313,9 +296,8 @@ }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -330,9 +312,8 @@ }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -346,18 +327,16 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -368,9 +347,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -380,9 +358,8 @@ }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.0" }, @@ -392,9 +369,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -404,9 +380,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -423,9 +398,8 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -435,18 +409,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -461,9 +433,8 @@ }, "node_modules/@babel/helper-replace-supers": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.22.15", @@ -478,9 +449,8 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -490,9 +460,8 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -502,9 +471,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -514,36 +482,32 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.15", @@ -555,9 +519,8 @@ }, "node_modules/@babel/helpers": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", - "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/traverse": "^7.23.5", @@ -569,9 +532,8 @@ }, "node_modules/@babel/highlight": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -583,9 +545,8 @@ }, "node_modules/@babel/parser": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -595,9 +556,8 @@ }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -610,9 +570,8 @@ }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -627,9 +586,8 @@ }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5" @@ -643,9 +601,8 @@ }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -655,9 +612,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -667,9 +623,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -679,9 +634,8 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -694,9 +648,8 @@ }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -706,9 +659,8 @@ }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -718,9 +670,8 @@ }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", - "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -733,9 +684,8 @@ }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -748,9 +698,8 @@ }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -763,9 +712,8 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -775,9 +723,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -787,9 +734,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -802,9 +748,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -814,9 +759,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -826,9 +770,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -838,9 +781,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -850,9 +792,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -862,9 +803,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -874,9 +814,8 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -889,9 +828,8 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -904,9 +842,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -919,9 +856,8 @@ }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -935,9 +871,8 @@ }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -950,9 +885,8 @@ }, "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", - "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -968,9 +902,8 @@ }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -985,9 +918,8 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1000,9 +932,8 @@ }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1015,9 +946,8 @@ }, "node_modules/@babel/plugin-transform-class-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1031,9 +961,8 @@ }, "node_modules/@babel/plugin-transform-class-static-block": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -1048,9 +977,8 @@ }, "node_modules/@babel/plugin-transform-classes": { "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1070,9 +998,8 @@ }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/template": "^7.22.15" @@ -1086,9 +1013,8 @@ }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1101,9 +1027,8 @@ }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1117,9 +1042,8 @@ }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1132,9 +1056,8 @@ }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1148,9 +1071,8 @@ }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1164,9 +1086,8 @@ }, "node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1180,9 +1101,8 @@ }, "node_modules/@babel/plugin-transform-flow-strip-types": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", - "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-flow": "^7.23.3" @@ -1196,9 +1116,8 @@ }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1212,9 +1131,8 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-function-name": "^7.23.0", @@ -1229,9 +1147,8 @@ }, "node_modules/@babel/plugin-transform-json-strings": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1245,9 +1162,8 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1260,9 +1176,8 @@ }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1276,9 +1191,8 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1291,9 +1205,8 @@ }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1307,9 +1220,8 @@ }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", @@ -1324,9 +1236,8 @@ }, "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", @@ -1342,9 +1253,8 @@ }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1358,9 +1268,8 @@ }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1374,9 +1283,8 @@ }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1389,9 +1297,8 @@ }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1405,9 +1312,8 @@ }, "node_modules/@babel/plugin-transform-numeric-separator": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1421,9 +1327,8 @@ }, "node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", @@ -1440,9 +1345,8 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.20" @@ -1456,9 +1360,8 @@ }, "node_modules/@babel/plugin-transform-optional-catch-binding": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1472,9 +1375,8 @@ }, "node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1489,9 +1391,8 @@ }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1504,9 +1405,8 @@ }, "node_modules/@babel/plugin-transform-private-methods": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1520,9 +1420,8 @@ }, "node_modules/@babel/plugin-transform-private-property-in-object": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.22.15", @@ -1538,9 +1437,8 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1553,9 +1451,8 @@ }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -1569,9 +1466,8 @@ }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1584,9 +1480,8 @@ }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1599,9 +1494,8 @@ }, "node_modules/@babel/plugin-transform-spread": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1615,9 +1509,8 @@ }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1630,9 +1523,8 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1645,9 +1537,8 @@ }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1660,9 +1551,8 @@ }, "node_modules/@babel/plugin-transform-typescript": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.23.6", @@ -1678,9 +1568,8 @@ }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1693,9 +1582,8 @@ }, "node_modules/@babel/plugin-transform-unicode-property-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1709,9 +1597,8 @@ }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1725,9 +1612,8 @@ }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1741,9 +1627,8 @@ }, "node_modules/@babel/preset-env": { "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.8.tgz", - "integrity": "sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1835,9 +1720,8 @@ }, "node_modules/@babel/preset-flow": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz", - "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", @@ -1852,9 +1736,8 @@ }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1866,9 +1749,8 @@ }, "node_modules/@babel/preset-typescript": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", @@ -1885,9 +1767,8 @@ }, "node_modules/@babel/register": { "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", - "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -1904,9 +1785,8 @@ }, "node_modules/@babel/register/node_modules/find-cache-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -1918,9 +1798,8 @@ }, "node_modules/@babel/register/node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -1930,9 +1809,8 @@ }, "node_modules/@babel/register/node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -1943,9 +1821,8 @@ }, "node_modules/@babel/register/node_modules/make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -1956,9 +1833,8 @@ }, "node_modules/@babel/register/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -1971,9 +1847,8 @@ }, "node_modules/@babel/register/node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -1983,18 +1858,16 @@ }, "node_modules/@babel/register/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/register/node_modules/pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -2004,24 +1877,21 @@ }, "node_modules/@babel/register/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/@babel/regjsgen": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/runtime": { "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.3.tgz", - "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -2031,9 +1901,8 @@ }, "node_modules/@babel/template": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/parser": "^7.22.15", @@ -2045,9 +1914,8 @@ }, "node_modules/@babel/traverse": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.5", @@ -2066,9 +1934,8 @@ }, "node_modules/@babel/types": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -2080,9 +1947,8 @@ }, "node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -2090,9 +1956,8 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -2102,9 +1967,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2112,78 +1976,27 @@ }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", "dev": true, + "license": "MIT", "peerDependencies": { "react": ">=16.8.0" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", - "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", - "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", - "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", - "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", + "version": "0.19.11", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2192,299 +2005,10 @@ "node": ">=12" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", - "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", - "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", - "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", - "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", - "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", - "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", - "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", - "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", - "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", - "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", - "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", - "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", - "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", - "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", - "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", - "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", - "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", - "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -2497,18 +2021,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2529,15 +2051,13 @@ }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2550,9 +2070,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2562,9 +2081,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2574,42 +2092,37 @@ }, "node_modules/@eslint/js": { "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@esm-bundle/chai": { "version": "4.3.4-fix.0", - "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", - "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "^4.2.12" } }, "node_modules/@fal-works/esbuild-plugin-global-externals": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", - "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@floating-ui/core": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.3.tgz", - "integrity": "sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==", "dev": true, + "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/dom": { "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.4.tgz", - "integrity": "sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==", "dev": true, + "license": "MIT", "dependencies": { "@floating-ui/core": "^1.5.3", "@floating-ui/utils": "^0.2.0" @@ -2617,9 +2130,8 @@ }, "node_modules/@floating-ui/react-dom": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.5.tgz", - "integrity": "sha512-UsBK30Bg+s6+nsgblXtZmwHhgS2vmbuQK22qgt2pTQM6M3X6H1+cQcLXqgRY3ihVLcZJE6IvqDQozhsnIVqK/Q==", "dev": true, + "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.5.4" }, @@ -2630,15 +2142,13 @@ }, "node_modules/@floating-ui/utils": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", @@ -2650,9 +2160,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2663,21 +2172,18 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@import-maps/resolve": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", - "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2692,9 +2198,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2704,9 +2209,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2716,15 +2220,13 @@ }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2739,9 +2241,8 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2754,9 +2255,8 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2771,9 +2271,8 @@ }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2787,18 +2286,16 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -2809,9 +2306,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -2821,9 +2317,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -2836,9 +2331,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -2848,18 +2342,16 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/schemas": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -2869,9 +2361,8 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -2895,9 +2386,8 @@ }, "node_modules/@jest/transform/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2910,9 +2400,8 @@ }, "node_modules/@jest/transform/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2926,24 +2415,21 @@ }, "node_modules/@jest/transform/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/transform/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2953,9 +2439,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -2970,9 +2455,8 @@ }, "node_modules/@jest/types/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2985,9 +2469,8 @@ }, "node_modules/@jest/types/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3001,18 +2484,16 @@ }, "node_modules/@jest/types/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/types/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3022,9 +2503,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3036,68 +2516,60 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "version": "1.4.15", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.21", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@juggle/resize-observer": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", - "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==" + "version": "1.1.2", + "license": "BSD-3-Clause" }, "node_modules/@lit/reactive-element": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", - "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "version": "2.0.3", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.0.0" + "@lit-labs/ssr-dom-shim": "^1.1.2" } }, "node_modules/@ljharb/through": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -3107,15 +2579,13 @@ }, "node_modules/@mdn/browser-compat-data": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/@mdx-js/react": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", - "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdx": "^2.0.0", "@types/react": ">=16" @@ -3130,9 +2600,8 @@ }, "node_modules/@mswjs/cookies": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", - "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", "dev": true, + "license": "MIT", "dependencies": { "@types/set-cookie-parser": "^2.4.0", "set-cookie-parser": "^2.4.6" @@ -3143,9 +2612,8 @@ }, "node_modules/@mswjs/interceptors": { "version": "0.17.10", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz", - "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==", "dev": true, + "license": "MIT", "dependencies": { "@open-draft/until": "^1.0.3", "@types/debug": "^4.1.7", @@ -3162,18 +2630,16 @@ }, "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { "version": "0.2.8", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", - "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", "dev": true, + "license": "MIT", "dependencies": { "events": "^3.3.0" } }, "node_modules/@ndelangen/get-tarball": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz", - "integrity": "sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==", "dev": true, + "license": "MIT", "dependencies": { "gunzip-maybe": "^1.4.2", "pump": "^3.0.0", @@ -3182,15 +2648,13 @@ }, "node_modules/@ndelangen/get-tarball/node_modules/chownr": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@ndelangen/get-tarball/node_modules/tar-fs": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, + "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -3200,9 +2664,8 @@ }, "node_modules/@ndelangen/get-tarball/node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -3216,9 +2679,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3229,18 +2691,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3251,83 +2711,58 @@ }, "node_modules/@open-draft/until": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", - "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", - "dev": true - }, - "node_modules/@open-wc/chai-dom-equals": { - "version": "0.12.36", - "resolved": "https://registry.npmjs.org/@open-wc/chai-dom-equals/-/chai-dom-equals-0.12.36.tgz", - "integrity": "sha512-Gt1fa37h4rtWPQGETSU4n1L678NmMi9KwHM1sH+JCGcz45rs8DBPx7MUVeGZ+HxRlbEI5t9LU2RGGv6xT2OlyA==", "dev": true, - "dependencies": { - "@open-wc/semantic-dom-diff": "^0.13.16", - "@types/chai": "^4.1.7" - } - }, - "node_modules/@open-wc/chai-dom-equals/node_modules/@open-wc/semantic-dom-diff": { - "version": "0.13.21", - "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.13.21.tgz", - "integrity": "sha512-BONpjHcGX2zFa9mfnwBCLEmlDsOHzT+j6Qt1yfK3MzFXFtAykfzFjAgaxPetu0YbBlCfXuMlfxI4vlRGCGMvFg==", - "dev": true + "license": "MIT" }, "node_modules/@open-wc/dedupe-mixin": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", - "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@open-wc/scoped-elements": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.0.tgz", - "integrity": "sha512-Qe+vWsuVHFzUkdChwlmJGuQf9cA3I+QOsSHULV/6qf6wsqLM2/32svNRH+rbBIMwiPEwzZprZlkvkqQRucYnVA==", + "version": "2.2.4", "dev": true, + "license": "MIT", "dependencies": { - "@lit/reactive-element": "^1.0.0", + "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" } }, "node_modules/@open-wc/semantic-dom-diff": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.20.0.tgz", - "integrity": "sha512-qGHl3nkXluXsjpLY9bSZka/cnlrybPtJMs6RjmV/OP4ID7Gcz1uNWQks05pAhptDB1R47G6PQjdwxG8dXl1zGA==", + "version": "0.20.1", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "^4.3.1", - "@web/test-runner-commands": "^0.7.0" + "@web/test-runner-commands": "^0.9.0" } }, "node_modules/@open-wc/testing": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.2.0.tgz", - "integrity": "sha512-9geTbFq8InbcfniPtS8KCfb5sbQ9WE6QMo1Tli8XMnfllnkZok7Az4kTRAskGQeMeQN/I2I//jE5xY/60qhrHg==", + "version": "3.2.2", "dev": true, + "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/chai-dom-equals": "^0.12.36", "@open-wc/semantic-dom-diff": "^0.20.0", - "@open-wc/testing-helpers": "^2.3.0", - "@types/chai": "^4.2.11", + "@open-wc/testing-helpers": "^2.3.1", "@types/chai-dom": "^1.11.0", "@types/sinon-chai": "^3.2.3", "chai-a11y-axe": "^1.5.0" } }, "node_modules/@open-wc/testing-helpers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.3.0.tgz", - "integrity": "sha512-wkDipkia/OMWq5Z1KkAgvqNLfIOCiPGrrtfoCKuQje8u7F0Bz9Un44EwBtWcCdYtLc40quWP7XFpFsW8poIfUA==", + "version": "2.3.2", "dev": true, + "license": "MIT", "dependencies": { - "@open-wc/scoped-elements": "^2.2.0", - "lit": "^2.0.0", - "lit-html": "^2.0.0" + "@open-wc/scoped-elements": "^2.2.4", + "lit": "^2.0.0 || ^3.0.0", + "lit-html": "^2.0.0 || ^3.0.0" } }, "node_modules/@openid/appauth": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@openid/appauth/-/appauth-1.3.1.tgz", - "integrity": "sha512-e54kpi219wES2ijPzeHe1kMnT8VKH8YeTd1GAn9BzVBmutz3tBgcG1y8a4pziNr4vNjFnuD4W446Ua7ELnNDiA==", + "license": "Apache-2.0", "dependencies": { "@types/base64-js": "^1.3.0", "@types/jquery": "^3.5.5", @@ -3339,9 +2774,8 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -3349,9 +2783,8 @@ }, "node_modules/@playwright/test": { "version": "1.40.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz", - "integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "playwright": "1.40.1" }, @@ -3364,9 +2797,8 @@ }, "node_modules/@puppeteer/browsers": { "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz", - "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "debug": "4.3.4", "extract-zip": "2.0.1", @@ -3393,27 +2825,24 @@ }, "node_modules/@radix-ui/number": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", - "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, "node_modules/@radix-ui/primitive": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, "node_modules/@radix-ui/react-arrow": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", - "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -3435,9 +2864,8 @@ }, "node_modules/@radix-ui/react-collection": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", - "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", @@ -3462,9 +2890,8 @@ }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3480,9 +2907,8 @@ }, "node_modules/@radix-ui/react-context": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3498,9 +2924,8 @@ }, "node_modules/@radix-ui/react-direction": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", - "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3516,9 +2941,8 @@ }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", - "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3544,9 +2968,8 @@ }, "node_modules/@radix-ui/react-focus-guards": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3562,9 +2985,8 @@ }, "node_modules/@radix-ui/react-focus-scope": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", - "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", @@ -3588,9 +3010,8 @@ }, "node_modules/@radix-ui/react-id": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.1" @@ -3607,9 +3028,8 @@ }, "node_modules/@radix-ui/react-popper": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz", - "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@floating-ui/react-dom": "^2.0.0", @@ -3640,9 +3060,8 @@ }, "node_modules/@radix-ui/react-portal": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", - "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -3664,9 +3083,8 @@ }, "node_modules/@radix-ui/react-primitive": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "1.0.2" @@ -3688,9 +3106,8 @@ }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", - "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3720,9 +3137,8 @@ }, "node_modules/@radix-ui/react-select": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-1.2.2.tgz", - "integrity": "sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/number": "1.0.1", @@ -3764,9 +3180,8 @@ }, "node_modules/@radix-ui/react-separator": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", - "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -3788,9 +3203,8 @@ }, "node_modules/@radix-ui/react-slot": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1" @@ -3807,9 +3221,8 @@ }, "node_modules/@radix-ui/react-toggle": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz", - "integrity": "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3833,9 +3246,8 @@ }, "node_modules/@radix-ui/react-toggle-group": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz", - "integrity": "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3863,9 +3275,8 @@ }, "node_modules/@radix-ui/react-toolbar": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.0.4.tgz", - "integrity": "sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3893,9 +3304,8 @@ }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3911,9 +3321,8 @@ }, "node_modules/@radix-ui/react-use-controllable-state": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.1" @@ -3930,9 +3339,8 @@ }, "node_modules/@radix-ui/react-use-escape-keydown": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.1" @@ -3949,9 +3357,8 @@ }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3967,9 +3374,8 @@ }, "node_modules/@radix-ui/react-use-previous": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", - "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3985,9 +3391,8 @@ }, "node_modules/@radix-ui/react-use-rect": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", - "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/rect": "1.0.1" @@ -4004,9 +3409,8 @@ }, "node_modules/@radix-ui/react-use-size": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", - "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.1" @@ -4023,9 +3427,8 @@ }, "node_modules/@radix-ui/react-visually-hidden": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", - "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -4047,18 +3450,16 @@ }, "node_modules/@radix-ui/rect": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", - "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, "node_modules/@rollup/plugin-commonjs": { "version": "25.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", - "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", @@ -4081,9 +3482,8 @@ }, "node_modules/@rollup/plugin-json": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", - "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0" }, @@ -4101,9 +3501,8 @@ }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -4126,9 +3525,8 @@ }, "node_modules/@rollup/plugin-replace": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz", - "integrity": "sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -4147,9 +3545,8 @@ }, "node_modules/@rollup/pluginutils": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -4167,186 +3564,27 @@ } } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.4.tgz", - "integrity": "sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.4.tgz", - "integrity": "sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.4.tgz", - "integrity": "sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==", + "version": "4.9.5", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.4.tgz", - "integrity": "sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.4.tgz", - "integrity": "sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.4.tgz", - "integrity": "sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.4.tgz", - "integrity": "sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.4.tgz", - "integrity": "sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.4.tgz", - "integrity": "sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.4.tgz", - "integrity": "sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.4.tgz", - "integrity": "sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.4.tgz", - "integrity": "sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.4.tgz", - "integrity": "sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@storybook/addon-a11y": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.6.7.tgz", - "integrity": "sha512-poT2oXIYDwLnhqn6g9ACTQ+7gi8QDHVlib4TQANdcozC/qYg+Bs6Pd99wT6rT4lrC/npVNTSKKwLw+3oXqlCxg==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/addon-highlight": "7.6.7", "axe-core": "^4.2.0" @@ -4358,9 +3596,8 @@ }, "node_modules/@storybook/addon-actions": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.7.tgz", - "integrity": "sha512-+6EZvhIeKEqG/RNsU3R5DxOrd60BL5GEvmzE2w60s2eKaNNxtyilDjiO1g4z2s2zDNyr7JL/Ft03pJ0Jgo0lew==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/core-events": "7.6.7", "@storybook/global": "^5.0.0", @@ -4376,9 +3613,8 @@ }, "node_modules/@storybook/addon-backgrounds": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.7.tgz", - "integrity": "sha512-55sBy1YUqponAVe+qL16qtWxdf63vHEnIoqFyHEwGpk7K9IhFA1BmdSpFr5VnWEwXeJXKj30db78frh2LUdk3Q==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3", @@ -4391,9 +3627,8 @@ }, "node_modules/@storybook/addon-controls": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.7.tgz", - "integrity": "sha512-DJ3gfvcdCgqi7AQxu83vx0AEUKiuJrNcSATfWV3Jqi8dH6fYO2yqpemHEeWOEy+DAHxIOaqLKwb1QjIBj+vSRQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/blocks": "7.6.7", "lodash": "^4.17.21", @@ -4406,9 +3641,8 @@ }, "node_modules/@storybook/addon-docs": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.7.tgz", - "integrity": "sha512-2dfajNhweofJ3LxjGO83UE5sBMvKtJB0Agj7q8mMtK/9PUCUcbvsFSyZnO/s6X1zAjSn5ZrirbSoTXU4IqxwSA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", @@ -4441,9 +3675,8 @@ }, "node_modules/@storybook/addon-essentials": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.7.tgz", - "integrity": "sha512-nNLMrpIvc04z4XCA+kval/44eKAFJlUJeeL2pxwP7F/PSzjWe5BXv1bQHOiw8inRO5II0PzqwWnVCI9jsj7K5A==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/addon-actions": "7.6.7", "@storybook/addon-backgrounds": "7.6.7", @@ -4471,9 +3704,8 @@ }, "node_modules/@storybook/addon-highlight": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.7.tgz", - "integrity": "sha512-2F/tJdn45d4zrvf/cmE1vsczl99wK8+I+kkj0G7jLsrJR0w1zTgbgjy6T9j86HBTBvWcnysNFNIRWPAOh5Wdbw==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0" }, @@ -4484,9 +3716,8 @@ }, "node_modules/@storybook/addon-links": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.7.tgz", - "integrity": "sha512-O5LekPslkAIDtXC/TCIyg/3c0htBxDYwb/s+NrZUPTNWJsngxvTAwp6aIk6aVSeSCFUMWvBFcVsuV3hv+ndK6w==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", @@ -4507,9 +3738,8 @@ }, "node_modules/@storybook/addon-measure": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.7.tgz", - "integrity": "sha512-t1RnnNO4Xzgnsxu63FlZwsCTF0+9jKxr44NiJAUOxW9ppbCvs/JfSDOOvcDRtPWyjgnyzexNUUctMfxvLrU01A==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "tiny-invariant": "^1.3.1" @@ -4521,9 +3751,8 @@ }, "node_modules/@storybook/addon-outline": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.7.tgz", - "integrity": "sha512-gu2y46ijjMkXlxy1f8Cctgjw5b5y8vSIqNAYlrs5/Qy+hJAWyU6lj2PFGOCCUG4L+F45fAjwWAin6qz43+WnRQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "ts-dedent": "^2.0.0" @@ -4535,9 +3764,8 @@ }, "node_modules/@storybook/addon-toolbars": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.7.tgz", - "integrity": "sha512-vT+YMzw8yVwndhJglI0XtELfXWq1M0HEy5ST3XPzbjmsJ54LgTf1b29UMkh0E/05qBQNFCcbT9B/tLxqWezxlg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -4545,9 +3773,8 @@ }, "node_modules/@storybook/addon-viewport": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.7.tgz", - "integrity": "sha512-Q/BKjJaKzl4RWxH45K2iIXwkicj4ReVAUIpIyd7dPBb/Bx+hEDYZxR5dDg82AMkZdA71x5ttMnuDSuVpmWAE6g==", "dev": true, + "license": "MIT", "dependencies": { "memoizerific": "^1.11.3" }, @@ -4558,9 +3785,8 @@ }, "node_modules/@storybook/blocks": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.7.tgz", - "integrity": "sha512-+QEvGQ0he/YvFS3lsZORJWxhQIyqcCDWsxbJxJiByePd+Z4my3q8xwtPhHW0TKRL0xUgNE/GnTfMMqJfevTuSw==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -4597,9 +3823,8 @@ }, "node_modules/@storybook/builder-manager": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.7.tgz", - "integrity": "sha512-6HYpj6+g/qbDMvImVz/G/aANbkhppyBa1ozfHxLK7tRD79YvozCWmj2Z9umRekPv9VIeMxnI5EEzJXOsoMX5DQ==", "dev": true, + "license": "MIT", "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", "@storybook/core-common": "7.6.7", @@ -4623,62 +3848,13 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@storybook/builder-manager/node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -4687,300 +3863,11 @@ "node": ">=12" } }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@storybook/builder-manager/node_modules/esbuild": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -5014,9 +3901,8 @@ }, "node_modules/@storybook/builder-vite": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.7.tgz", - "integrity": "sha512-Sv+0ROFU9k+mkvIPsPHC0lkKDzBeMpvfO9uFRl1RDSsXBfcPPZKNo5YK7U7fOhesH0BILzurGA+U/aaITMSZ9g==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -5059,9 +3945,8 @@ }, "node_modules/@storybook/builder-vite/node_modules/rollup": { "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -5075,9 +3960,8 @@ }, "node_modules/@storybook/channels": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.7.tgz", - "integrity": "sha512-u1hURhfQHHtZyRIDUENRCp+CRRm7IQfcjQaoWI06XCevQPuhVEtFUfXHjG+J74aA/JuuTLFUtqwNm1zGqbXTAQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/core-events": "7.6.7", @@ -5093,9 +3977,8 @@ }, "node_modules/@storybook/cli": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.7.tgz", - "integrity": "sha512-DwDWzkifBH17ry+n+d+u52Sv69dZQ+04ETJdDDzghcyAcKnFzrRNukj4tJ21cm+ZAU/r0fKR9d4Qpbogca9fAg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", @@ -5150,18 +4033,16 @@ }, "node_modules/@storybook/cli/node_modules/agent-base": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.0.0" } }, "node_modules/@storybook/cli/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -5174,9 +4055,8 @@ }, "node_modules/@storybook/cli/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5190,18 +4070,16 @@ }, "node_modules/@storybook/cli/node_modules/commander": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/@storybook/cli/node_modules/extract-zip": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -5214,18 +4092,16 @@ }, "node_modules/@storybook/cli/node_modules/extract-zip/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/@storybook/cli/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5243,18 +4119,16 @@ }, "node_modules/@storybook/cli/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@storybook/cli/node_modules/https-proxy-agent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "5", "debug": "4" @@ -5265,9 +4139,8 @@ }, "node_modules/@storybook/cli/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5277,9 +4150,8 @@ }, "node_modules/@storybook/cli/node_modules/mime": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -5289,9 +4161,8 @@ }, "node_modules/@storybook/cli/node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -5301,15 +4172,13 @@ }, "node_modules/@storybook/cli/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@storybook/cli/node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -5322,9 +4191,8 @@ }, "node_modules/@storybook/cli/node_modules/puppeteer-core": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-2.1.1.tgz", - "integrity": "sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@types/mime-types": "^2.1.0", "debug": "^4.1.0", @@ -5343,9 +4211,8 @@ }, "node_modules/@storybook/cli/node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -5355,9 +4222,8 @@ }, "node_modules/@storybook/cli/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5370,9 +4236,8 @@ }, "node_modules/@storybook/cli/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5382,24 +4247,21 @@ }, "node_modules/@storybook/cli/node_modules/ws": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, + "license": "MIT", "dependencies": { "async-limiter": "~1.0.0" } }, "node_modules/@storybook/cli/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@storybook/client-logger": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.7.tgz", - "integrity": "sha512-A16zpWgsa0gSdXMR9P3bWVdC9u/1B1oG4H7Z1+JhNzgnL3CdyOYO0qFSiAtNBso4nOjIAJVb6/AoBzdRhmSVQg==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0" }, @@ -5410,9 +4272,8 @@ }, "node_modules/@storybook/codemod": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.7.tgz", - "integrity": "sha512-an2pD5OHqO7CE8Wb7JxjrDnpQgeoxB22MyOs8PPJ9Rvclhpjg+Ku9RogoObYm//zR4g406l7Ec8mTltUkVCEOA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", @@ -5436,9 +4297,8 @@ }, "node_modules/@storybook/codemod/node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -5451,9 +4311,8 @@ }, "node_modules/@storybook/components": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.7.tgz", - "integrity": "sha512-1HN4p+MCI4Tx9VGZayZyqbW7SB7mXQLnS5fUbTE1gXaMYHpzFvcrRNROeV1LZPClJX6qx1jgE5ngZojhxGuxMA==", "dev": true, + "license": "MIT", "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", @@ -5477,9 +4336,8 @@ }, "node_modules/@storybook/core-client": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.7.tgz", - "integrity": "sha512-ZQivyEzYsZok8vRj5Qan7LbiMUnO89rueWzTnZs4IS6JIaQtjoPI1rGVq+h6qOCM6tki478hic8FS+zwGQ6q+w==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/preview-api": "7.6.7" @@ -5491,9 +4349,8 @@ }, "node_modules/@storybook/core-common": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.7.tgz", - "integrity": "sha512-F1fJnauVSPQtAlpicbN/O4XW38Ai8kf/IoU0Hgm9gEwurIk6MF5hiVLsaTI/5GUbrepMl9d9J+iIL4lHAT8IyA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/core-events": "7.6.7", "@storybook/node-logger": "7.6.7", @@ -5524,62 +4381,13 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-common/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@storybook/core-common/node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -5588,308 +4396,18 @@ "node": ">=12" } }, - "node_modules/@storybook/core-common/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/core-common/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.19.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.5.tgz", - "integrity": "sha512-22MG6T02Hos2JWfa1o5jsIByn+bc5iOt1IS4xyg6OG68Bu+wMonVZzdrgCw693++rpLE9RUT/Bx15BeDzO0j+g==", + "version": "18.19.7", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -5902,18 +4420,16 @@ }, "node_modules/@storybook/core-common/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@storybook/core-common/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5927,10 +4443,9 @@ }, "node_modules/@storybook/core-common/node_modules/esbuild": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -5964,9 +4479,8 @@ }, "node_modules/@storybook/core-common/node_modules/glob": { "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -5986,18 +4500,16 @@ }, "node_modules/@storybook/core-common/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@storybook/core-common/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6010,9 +4522,8 @@ }, "node_modules/@storybook/core-common/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6022,9 +4533,8 @@ }, "node_modules/@storybook/core-events": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.7.tgz", - "integrity": "sha512-KZ5d03c47pnr5/kY26pJtWq7WpmCPXLbgyjJZDSc+TTY153BdZksvlBXRHtqM1yj2UM6QsSyIuiJaADJNAbP2w==", "dev": true, + "license": "MIT", "dependencies": { "ts-dedent": "^2.0.0" }, @@ -6035,9 +4545,8 @@ }, "node_modules/@storybook/core-server": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.7.tgz", - "integrity": "sha512-elKRv/DNahNNkGcQY/FdOBrLPmZF0T0fwmAmbc4qqeAisjl+to9TO77zdo2ieaEHKyRwE3B3dOB4EXomdF4N/g==", "dev": true, + "license": "MIT", "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", @@ -6087,19 +4596,17 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.5.tgz", - "integrity": "sha512-22MG6T02Hos2JWfa1o5jsIByn+bc5iOt1IS4xyg6OG68Bu+wMonVZzdrgCw693++rpLE9RUT/Bx15BeDzO0j+g==", + "version": "18.19.7", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/core-server/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6112,9 +4619,8 @@ }, "node_modules/@storybook/core-server/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6128,18 +4634,16 @@ }, "node_modules/@storybook/core-server/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@storybook/core-server/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6149,9 +4653,8 @@ }, "node_modules/@storybook/core-server/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6164,9 +4667,8 @@ }, "node_modules/@storybook/core-server/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6176,24 +4678,21 @@ }, "node_modules/@storybook/core-server/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@storybook/csf": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.2.tgz", - "integrity": "sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^2.19.0" } }, "node_modules/@storybook/csf-plugin": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.7.tgz", - "integrity": "sha512-YL7e6H4iVcsDI0UpgpdQX2IiGDrlbgaQMHQgDLWXmZyKxBcy0ONROAX5zoT1ml44EHkL60TMaG4f7SinviJCog==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/csf-tools": "7.6.7", "unplugin": "^1.3.1" @@ -6205,9 +4704,8 @@ }, "node_modules/@storybook/csf-tools": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.7.tgz", - "integrity": "sha512-hyRbUGa2Uxvz3U09BjcOfMNf/5IYgRum1L6XszqK2O8tK9DGte1r6hArCIAcqiEmFMC40d0kalPzqu6WMNn7sg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/generator": "^7.23.0", "@babel/parser": "^7.23.0", @@ -6226,15 +4724,13 @@ }, "node_modules/@storybook/docs-mdx": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", - "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@storybook/docs-tools": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.7.tgz", - "integrity": "sha512-enTO/xVjBqwUraGCYTwdyjMvug3OSAM7TPPUEJ3KPieJNwAzcYkww/qNDMIAR4S39zPMrkAmtS3STvVadlJz7g==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/core-common": "7.6.7", "@storybook/preview-api": "7.6.7", @@ -6251,15 +4747,13 @@ }, "node_modules/@storybook/global": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", - "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@storybook/manager": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.7.tgz", - "integrity": "sha512-ZCrkB2zEXogzdOcVzD242ZVm4tlHqrayotnI6iOn9uiun0Pgny0m2d7s9Zge6K2dTOO1vZiOHuA/Mr6nnIDjsA==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -6267,9 +4761,8 @@ }, "node_modules/@storybook/manager-api": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.7.tgz", - "integrity": "sha512-3Wk/BvuGUlw/X05s57zZO7gJbzfUeE9Xe+CSIvuH7RY5jx9PYnNwqNlTXPXhJ5LPvwMthae7WJVn3SuBpbptoQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -6293,15 +4786,13 @@ }, "node_modules/@storybook/mdx2-csf": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz", - "integrity": "sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@storybook/node-logger": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.7.tgz", - "integrity": "sha512-XLih8MxylkpZG9+8tgp8sPGc2tldlWF+DpuAkUv6J3Mc81mPyc3cQKQWZ7Hb+m1LpRGqKV4wyOQj1rC+leVMoQ==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -6309,9 +4800,8 @@ }, "node_modules/@storybook/postinstall": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.7.tgz", - "integrity": "sha512-mrpRmcwFd9FcvtHPXA9x6vOrHLVCKScZX/Xx2QPWgAvB3W6uzP8G+8QNb1u834iToxrWeuszUMB9UXZK4Qj5yg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -6319,9 +4809,8 @@ }, "node_modules/@storybook/preview": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.7.tgz", - "integrity": "sha512-/ddKIyT+6b8CKGJAma1wood4nwCAoi/E1olCqgpCmviMeUtAiMzgK0xzPwvq5Mxkz/cPeXVi8CQgaQZCa4yvNA==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -6329,9 +4818,8 @@ }, "node_modules/@storybook/preview-api": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -6355,9 +4843,8 @@ }, "node_modules/@storybook/react-dom-shim": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.7.tgz", - "integrity": "sha512-b/rmy/YzVrwP+ifyZG4yXVIdeFVdTbmziodHUlbrWiUNsqtTZZur9kqkKRUH/7ofji9MFe81nd0MRlcTNFomqg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -6369,9 +4856,8 @@ }, "node_modules/@storybook/router": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.7.tgz", - "integrity": "sha512-kkhNSdC3fXaQxILg8a26RKk4/ZbF/AUVrepUEyO8lwvbJ6LItTyWSE/4I9Ih4qV2Mjx33ncc8vLqM9p8r5qnMA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "memoizerific": "^1.11.3", @@ -6384,9 +4870,8 @@ }, "node_modules/@storybook/telemetry": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.7.tgz", - "integrity": "sha512-NHGzC/LGLXpK4AFbVj8ln5ab86ZiiNFvORQMn3+LNGwUt3ZdsHBzExN+WPZdw7OPtfk4ubUY89FXH2GedhTALw==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/core-common": "7.6.7", @@ -6404,9 +4889,8 @@ }, "node_modules/@storybook/telemetry/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6419,9 +4903,8 @@ }, "node_modules/@storybook/telemetry/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6435,18 +4918,16 @@ }, "node_modules/@storybook/telemetry/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@storybook/telemetry/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -6456,9 +4937,8 @@ }, "node_modules/@storybook/theming": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.7.tgz", - "integrity": "sha512-+42rfC4rZtWVAXJ7JBUQKnQ6vWBXJVHZ9HtNUWzQLPR9sJSMmHnnSMV6y5tizGgZqmBnAIkuoYk+Tt6NfwUmSA==", "dev": true, + "license": "MIT", "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", "@storybook/client-logger": "7.6.7", @@ -6476,9 +4956,8 @@ }, "node_modules/@storybook/types": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.7.tgz", - "integrity": "sha512-VcGwrI4AkBENxkoAUJ+Z7SyMK73hpoY0TTtw2J7tc05/xdiXhkQTX15Qa12IBWIkoXCyNrtaU+q7KR8Tjzi+uw==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@types/babel__core": "^7.0.0", @@ -6492,9 +4971,8 @@ }, "node_modules/@storybook/web-components": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.7.tgz", - "integrity": "sha512-TrBhMctSIgV2qqyV7fhhaNIdAvuaca2jEDXLXFiH/M2NkyXRepNjG7AZndWhQUGvG01ojs1+2vRNqJZtKCmFDg==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/core-client": "7.6.7", @@ -6519,9 +4997,8 @@ }, "node_modules/@storybook/web-components-vite": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.7.tgz", - "integrity": "sha512-jfnVNhmgDYBdEnOliNcfo9FwfDDke66y6Zw2zkOz9qhJy8DCd5TzgDEmE7AU2XRzb1a464A90xfvJpvlUracfA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/builder-vite": "7.6.7", "@storybook/core-server": "7.6.7", @@ -6539,54 +5016,46 @@ }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/accepts": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/babel__code-frame": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.3.tgz", - "integrity": "sha512-2TN6oiwtNjOezilFVl77zwdNPwQWaDBBCCWWxyo1ctiO3vAtd7H/aB/CBJdw9+kqq3+latD0SXoedIuHySSZWw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -6597,18 +5066,16 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -6616,23 +5083,20 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/base64-js": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ZmI0sZGAUNXUfMWboWwi4LcfpoVUYldyN6Oe0oJ5cCsHDU/LlRq8nQKPXhYLOx36QYSW9bNIb1vvRrD6K7Llgw==" + "license": "MIT" }, "node_modules/@types/body-parser": { "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -6640,24 +5104,21 @@ }, "node_modules/@types/chai": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/chai-dom": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@types/chai-dom/-/chai-dom-1.11.0.tgz", - "integrity": "sha512-Aja99Mmnny+Sz+T2hBK3oEsrcy18yabplT0pGX/QwIke9jMJHdvHlV2f4Tmq5SqxTMYwt1Zjbisv/4r83EUIHw==", + "version": "1.11.3", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "*" } }, "node_modules/@types/co-body": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-3e0q2jyDAnx/DSZi0z2H0yoZ2wt5yRDZ+P7ymcMObvq0ufWRT4tsajyO+Q1VwVWiv9PRR4W3YEjEzBjeZlhF+w==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*" @@ -6665,42 +5126,36 @@ }, "node_modules/@types/command-line-args": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", - "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/connect": { "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/content-disposition": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", - "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-QUm4YOC/ENo0VjPVl2o8HGyTbHHQGDOw8PCg3rXBucYHKyZN/XjXRbPFAV1tB2FvM0/wyFoDct4cTIctzKrQFg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/cookie": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/cookies": { "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", "dev": true, + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -6710,71 +5165,61 @@ }, "node_modules/@types/cross-spawn": { "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/debounce": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/debug": { "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", - "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/detect-port": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.5.tgz", - "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/doctrine": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", - "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/dompurify": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", - "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", + "license": "MIT", "dependencies": { "@types/trusted-types": "*" } }, "node_modules/@types/ejs": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", - "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/emscripten": { "version": "1.39.10", - "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.10.tgz", - "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/express": { "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -6784,9 +5229,8 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -6796,42 +5240,36 @@ }, "node_modules/@types/find-cache-dir": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz", - "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/fined": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.4.tgz", - "integrity": "sha512-mZ0onxTS5OyfSwBNecTKT0h79e4XXHrc9RI5tQfEAf+Fp6NbBmNnc0kg59HO+97V+y3opS+sfo4k4qpYwLt6NQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/graceful-fs": { "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-assert": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/inquirer": { "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.6.tgz", - "integrity": "sha512-1Go1AAP/yOy3Pth5Xf1DC3nfZ03cJLCPx6E2YnSN/5I3w1jHBVH4170DkZ+JxfmA7c9kL9+bf9z3FRGa4kNAqg==", "dev": true, + "license": "MIT", "dependencies": { "@types/through": "*", "rxjs": "^7.2.0" @@ -6839,65 +5277,56 @@ }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jquery": { "version": "3.5.16", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", - "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", + "license": "MIT", "dependencies": { "@types/sizzle": "*" } }, "node_modules/@types/js-levenshtein": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", - "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/keygrip": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/koa": { "version": "2.13.6", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.6.tgz", - "integrity": "sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==", "dev": true, + "license": "MIT", "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -6911,18 +5340,16 @@ }, "node_modules/@types/koa-compose": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/liftoff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.2.tgz", - "integrity": "sha512-X7Su8/zN7UgpA9nULCQwx9qy1RqcjUFmUVhj9kkjxXF5gIjZYC97lMRggyhV1/Y7M4rmEZ90jijAWVFWDVN//w==", "dev": true, + "license": "MIT", "dependencies": { "@types/fined": "*", "@types/node": "*" @@ -6930,69 +5357,59 @@ }, "node_modules/@types/lodash": { "version": "4.14.195", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.195.tgz", - "integrity": "sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/lodash-es": { "version": "4.17.8", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.8.tgz", - "integrity": "sha512-euY3XQcZmIzSy7YH5+Unb3b2X12Wtk54YWINBvvGQ5SmMvwb11JQskGsfkH/5HXK77Kr8GF0wkVDIxzAisWtog==", "dev": true, + "license": "MIT", "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/mdast": { "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", - "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "*" } }, "node_modules/@types/mdx": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.5.tgz", - "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime-types": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz", - "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mocha": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/ms": { "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "16.18.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz", - "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==", - "dev": true + "version": "16.18.71", + "dev": true, + "license": "MIT" }, "node_modules/@types/node-fetch": { "version": "2.6.10", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.10.tgz", - "integrity": "sha512-PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -7000,45 +5417,38 @@ }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/parse5": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/pretty-hrtime": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/prop-types": { "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/qs": { "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/react": { "version": "18.2.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.7.tgz", - "integrity": "sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==", "dev": true, + "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -7047,27 +5457,23 @@ }, "node_modules/@types/resolve": { "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/scheduler": { "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -7075,9 +5481,8 @@ }, "node_modules/@types/serve-static": { "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mime": "*", "@types/node": "*" @@ -7085,97 +5490,84 @@ }, "node_modules/@types/set-cookie-parser": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.2.tgz", - "integrity": "sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/sinon": { - "version": "10.0.15", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", - "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", + "version": "17.0.3", "dev": true, + "license": "MIT", "dependencies": { "@types/sinonjs__fake-timers": "*" } }, "node_modules/@types/sinon-chai": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.9.tgz", - "integrity": "sha512-/19t63pFYU0ikrdbXKBWj9PCdnKyTd0Qkz0X91Ta081cYsq90OxYdcWwK/dwEoDa6dtXgj2HJfmzgq+QZTHdmQ==", + "version": "3.2.12", "dev": true, + "license": "MIT", "dependencies": { "@types/chai": "*", "@types/sinon": "*" } }, "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", - "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==", - "dev": true + "version": "8.1.5", + "dev": true, + "license": "MIT" }, "node_modules/@types/sizzle": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", - "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + "license": "MIT" }, "node_modules/@types/through": { "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.32.tgz", - "integrity": "sha512-7XsfXIsjdfJM2wFDRAtEWp3zb2aVPk5QeyZxGlVK57q4u26DczMHhJmlhr0Jqv0THwxam/L8REXkj8M2I/lcvw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/trusted-types": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", - "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" + "license": "MIT" }, "node_modules/@types/unist": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/uuid": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz", - "integrity": "sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==" + "license": "MIT" }, "node_modules/@types/ws": { "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/yauzl": { "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@types/node": "*" @@ -7183,9 +5575,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz", - "integrity": "sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.14.0", @@ -7218,9 +5609,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", - "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.14.0", "@typescript-eslint/visitor-keys": "6.14.0" @@ -7235,9 +5625,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", - "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -7248,9 +5637,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", - "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.14.0", "@typescript-eslint/visitor-keys": "6.14.0", @@ -7275,9 +5663,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", - "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -7300,9 +5687,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", - "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" @@ -7317,9 +5703,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7329,9 +5714,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7344,15 +5728,13 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/parser": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.14.0.tgz", - "integrity": "sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.14.0", "@typescript-eslint/types": "6.14.0", @@ -7378,9 +5760,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", - "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.14.0", "@typescript-eslint/visitor-keys": "6.14.0" @@ -7395,9 +5776,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", - "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -7408,9 +5788,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", - "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.14.0", "@typescript-eslint/visitor-keys": "6.14.0", @@ -7435,9 +5814,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", - "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" @@ -7452,9 +5830,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7464,9 +5841,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7479,15 +5855,13 @@ }, "node_modules/@typescript-eslint/parser/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" @@ -7502,9 +5876,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz", - "integrity": "sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "6.14.0", "@typescript-eslint/utils": "6.14.0", @@ -7529,9 +5902,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz", - "integrity": "sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.14.0", "@typescript-eslint/visitor-keys": "6.14.0" @@ -7546,9 +5918,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz", - "integrity": "sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -7559,9 +5930,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz", - "integrity": "sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.14.0", "@typescript-eslint/visitor-keys": "6.14.0", @@ -7586,9 +5956,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz", - "integrity": "sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -7611,9 +5980,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz", - "integrity": "sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.14.0", "eslint-visitor-keys": "^3.4.1" @@ -7628,9 +5996,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7640,9 +6007,8 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7655,15 +6021,13 @@ }, "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/types": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -7674,9 +6038,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", @@ -7701,9 +6064,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7713,9 +6075,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7728,15 +6089,13 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/utils": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -7760,9 +6119,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7772,9 +6130,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7787,15 +6144,13 @@ }, "node_modules/@typescript-eslint/utils/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" @@ -8653,36 +7008,32 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@web/browser-logs": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.3.3.tgz", - "integrity": "sha512-wt8arj0x7ghXbnipgCvLR+xQ90cFg16ae23cFbInCrJvAxvyI22bAtT24W4XOXMPXwWLBVUJwBgBcXo3oKIvDw==", + "version": "0.4.0", "dev": true, + "license": "MIT", "dependencies": { "errorstacks": "^2.2.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/@web/config-loader": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.1.tgz", - "integrity": "sha512-IYjHXUgSGGNpO3YJQ9foLcazbJlAWDdJGRe9be7aOhon0Nd6Na5JIOJAej7jsMu76fKHr4b4w2LfIdNQ4fJ8pA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18.0.0" } }, "node_modules/@web/dev-server": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.1.tgz", - "integrity": "sha512-GHeyH8MBZQpODFiHiXAdX4hOVbeDyD/DUermUinh/nexWAZUcXyXa200RItuAL6b25MQ3D/5hKNDypujSvXxiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", @@ -8708,14 +7059,13 @@ } }, "node_modules/@web/dev-server-core": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.5.2.tgz", - "integrity": "sha512-7YjWmwzM+K5fPvBCXldUIMTK4EnEufi1aWQWinQE81oW1CqzEwmyUNCtnWV9fcPA4kJC4qrpcjWNGF4YDWxuSg==", + "version": "0.7.0", "dev": true, + "license": "MIT", "dependencies": { "@types/koa": "^2.11.6", "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.0.0", + "@web/parse5-utils": "^2.1.0", "chokidar": "^3.4.3", "clone": "^2.1.2", "es-module-lexer": "^1.0.0", @@ -8733,29 +7083,26 @@ "ws": "^7.4.2" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/@web/dev-server-core/node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true + "version": "1.4.1", + "dev": true, + "license": "MIT" }, "node_modules/@web/dev-server-core/node_modules/lru-cache": { "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, + "license": "ISC", "engines": { "node": ">=16.14" } }, "node_modules/@web/dev-server-core/node_modules/ws": { "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -8774,9 +7121,8 @@ }, "node_modules/@web/dev-server-esbuild": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-esbuild/-/dev-server-esbuild-1.0.1.tgz", - "integrity": "sha512-EoLLFuv5Y47pqY1IJBcGZswzkqJd+/vN4BDI3oYq8p9dDE9EuQVkC7vweAUkH7vDzI7xUp+f0UzJeQcj9t7zNQ==", "dev": true, + "license": "MIT", "dependencies": { "@mdn/browser-compat-data": "^4.0.0", "@web/dev-server-core": "^0.7.0", @@ -8788,76 +7134,10 @@ "node": ">=18.0.0" } }, - "node_modules/@web/dev-server-esbuild/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, - "node_modules/@web/dev-server-esbuild/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@web/dev-server-import-maps": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-import-maps/-/dev-server-import-maps-0.2.0.tgz", - "integrity": "sha512-+Z4mNGJqHo370ZFmPl83O4BqpPzQDjprfLO3AwsOZck9x94LcAVmVsC7fnet1DQRR11x9M7FNliS6mmkZv26TQ==", "dev": true, + "license": "MIT", "dependencies": { "@import-maps/resolve": "^1.0.1", "@types/parse5": "^6.0.1", @@ -8870,76 +7150,10 @@ "node": ">=18.0.0" } }, - "node_modules/@web/dev-server-import-maps/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server-import-maps/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, - "node_modules/@web/dev-server-import-maps/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/dev-server-import-maps/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@web/dev-server-rollup": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.1.tgz", - "integrity": "sha512-vhtsQ8qu1pBHailOBOYJwZnYDc1Lmx6ZAd2j+y5PD2ck0R1LmVsZ7dZK8hDCpkvpvlu2ndURjL9tbzdcsBRJmg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^15.0.1", "@web/dev-server-core": "^0.7.0", @@ -8952,147 +7166,15 @@ "node": ">=18.0.0" } }, - "node_modules/@web/dev-server-rollup/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server-rollup/node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", - "dev": true - }, - "node_modules/@web/dev-server-rollup/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/dev-server-rollup/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@web/dev-server/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, "node_modules/@web/dev-server/node_modules/ip": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/dev-server/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/dev-server/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } + "license": "MIT" }, "node_modules/@web/parse5-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", - "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse5": "^6.0.1", "parse5": "^6.0.1" @@ -9103,9 +7185,8 @@ }, "node_modules/@web/test-runner": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.18.0.tgz", - "integrity": "sha512-aAlQrdSqwCie1mxuSK5kM0RYDJZL4Q0Hd5LeXn1on3OtHLtgztL4dZzzNSuAWablR2/Vuve3ChwDDxmYSTqXRg==", "dev": true, + "license": "MIT", "dependencies": { "@web/browser-logs": "^0.4.0", "@web/config-loader": "^0.3.0", @@ -9134,9 +7215,8 @@ }, "node_modules/@web/test-runner-chrome": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.15.0.tgz", - "integrity": "sha512-ZqkTJGQ57FDz3lWw+9CKfHuTV64S9GzBy5+0siSQulEVPfGiTzpksx9DohtA3BCLXdbEq4OHg40/XIQJomlc9w==", "dev": true, + "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0", "@web/test-runner-coverage-v8": "^0.8.0", @@ -9148,52 +7228,22 @@ "node": ">=18.0.0" } }, - "node_modules/@web/test-runner-chrome/node_modules/@web/browser-logs": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", - "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", + "node_modules/@web/test-runner-commands": { + "version": "0.9.0", "dev": true, + "license": "MIT", "dependencies": { - "errorstacks": "^2.2.0" + "@web/test-runner-core": "^0.13.0", + "mkdirp": "^1.0.4" }, "engines": { "node": ">=18.0.0" } }, - "node_modules/@web/test-runner-chrome/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/@web/test-runner-core": { + "node_modules/@web/test-runner-core": { "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.0.tgz", - "integrity": "sha512-mUrETPg9n4dHWEk+D46BU3xVhQf+ljT4cG7FSpmF7AIOsXWgWHoaXp6ReeVcEmM5fmznXec2O/apTb9hpGrP3w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/babel__code-frame": "^7.0.2", @@ -9226,121 +7276,20 @@ "node": ">=18.0.0" } }, - "node_modules/@web/test-runner-chrome/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@web/test-runner-chrome/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, - "node_modules/@web/test-runner-chrome/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/test-runner-chrome/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/test-runner-chrome/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@web/test-runner-commands": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.7.0.tgz", - "integrity": "sha512-3aXeGrkynOdJ5jgZu5ZslcWmWuPVY9/HNdWDUqPyNePG08PKmLV9Ij342ODDL6OVsxF5dvYn1312PhDqu5AQNw==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.11.0", - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@web/test-runner-core": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.11.2.tgz", - "integrity": "sha512-7padi7pGg2xSW/i6iSApUwxlNaHv2bFBM+MiivkzJ0vet/a/+Fz35bOo8L8Ra7b/1my4VYBsPcWX0PVPowbXRg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.3.2", - "@web/dev-server-core": "^0.5.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/@web/test-runner-core/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@web/test-runner-core/node_modules/ip": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@web/test-runner-coverage-v8": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", - "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", "dev": true, + "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0", "istanbul-lib-coverage": "^3.0.0", @@ -9352,137 +7301,18 @@ "node": ">=18.0.0" } }, - "node_modules/@web/test-runner-coverage-v8/node_modules/@web/browser-logs": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", - "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-coverage-v8/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-coverage-v8/node_modules/@web/test-runner-core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.0.tgz", - "integrity": "sha512-mUrETPg9n4dHWEk+D46BU3xVhQf+ljT4cG7FSpmF7AIOsXWgWHoaXp6ReeVcEmM5fmznXec2O/apTb9hpGrP3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.4.0", - "@web/dev-server-core": "^0.7.0", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-coverage-v8/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@web/test-runner-coverage-v8/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, - "node_modules/@web/test-runner-coverage-v8/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, "node_modules/@web/test-runner-coverage-v8/node_modules/lru-cache": { "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, + "license": "ISC", "engines": { "node": ">=16.14" } }, - "node_modules/@web/test-runner-coverage-v8/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@web/test-runner-mocha": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", - "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", "dev": true, + "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0" }, @@ -9490,137 +7320,10 @@ "node": ">=18.0.0" } }, - "node_modules/@web/test-runner-mocha/node_modules/@web/browser-logs": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", - "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/@web/test-runner-core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.0.tgz", - "integrity": "sha512-mUrETPg9n4dHWEk+D46BU3xVhQf+ljT4cG7FSpmF7AIOsXWgWHoaXp6ReeVcEmM5fmznXec2O/apTb9hpGrP3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.4.0", - "@web/dev-server-core": "^0.7.0", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@web/test-runner-mocha/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, - "node_modules/@web/test-runner-mocha/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/test-runner-mocha/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/test-runner-mocha/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@web/test-runner-playwright": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.11.0.tgz", - "integrity": "sha512-s+f43DSAcssKYVOD9SuzueUcctJdHzq1by45gAnSCKa9FQcaTbuYe8CzmxA21g+NcL5+ayo4z+MA9PO4H+PssQ==", "dev": true, + "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0", "@web/test-runner-coverage-v8": "^0.8.0", @@ -9630,285 +7333,23 @@ "node": ">=18.0.0" } }, - "node_modules/@web/test-runner-playwright/node_modules/@web/browser-logs": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", - "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/@web/test-runner-core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.0.tgz", - "integrity": "sha512-mUrETPg9n4dHWEk+D46BU3xVhQf+ljT4cG7FSpmF7AIOsXWgWHoaXp6ReeVcEmM5fmznXec2O/apTb9hpGrP3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.4.0", - "@web/dev-server-core": "^0.7.0", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@web/test-runner-playwright/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, - "node_modules/@web/test-runner-playwright/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/test-runner-playwright/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/test-runner-playwright/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@web/test-runner/node_modules/@web/browser-logs": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", - "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", - "dev": true, - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner/node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", - "dev": true, - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner/node_modules/@web/test-runner-commands": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", - "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==", - "dev": true, - "dependencies": { - "@web/test-runner-core": "^0.13.0", - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner/node_modules/@web/test-runner-core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.0.tgz", - "integrity": "sha512-mUrETPg9n4dHWEk+D46BU3xVhQf+ljT4cG7FSpmF7AIOsXWgWHoaXp6ReeVcEmM5fmznXec2O/apTb9hpGrP3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.4.0", - "@web/dev-server-core": "^0.7.0", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@web/test-runner/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@web/test-runner/node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, - "node_modules/@web/test-runner/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/@web/test-runner/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@web/test-runner/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } + "license": "MIT" }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@yarnpkg/esbuild-plugin-pnp": { "version": "3.0.0-rc.15", - "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz", - "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "tslib": "^2.4.0" }, @@ -9921,9 +7362,8 @@ }, "node_modules/@yarnpkg/fslib": { "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", - "integrity": "sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@yarnpkg/libzip": "^2.3.0", "tslib": "^1.13.0" @@ -9934,15 +7374,13 @@ }, "node_modules/@yarnpkg/fslib/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@yarnpkg/libzip": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz", - "integrity": "sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@types/emscripten": "^1.39.6", "tslib": "^1.13.0" @@ -9953,22 +7391,19 @@ }, "node_modules/@yarnpkg/libzip/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "dev": true, + "license": "(Unlicense OR Apache-2.0)", "optional": true }, "node_modules/accepts": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -9979,9 +7414,8 @@ }, "node_modules/acorn": { "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -9991,36 +7425,32 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/address": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -10030,9 +7460,8 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -10043,9 +7472,8 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -10059,9 +7487,8 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -10076,9 +7503,8 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -10092,15 +7518,13 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ajv-keywords": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -10110,9 +7534,8 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -10125,9 +7548,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -10137,18 +7559,16 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -10158,24 +7578,21 @@ }, "node_modules/ansi-styles/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/ansi-styles/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -10186,30 +7603,26 @@ }, "node_modules/app-root-dir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/aria-hidden": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -10219,27 +7632,24 @@ }, "node_modules/aria-query": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "deep-equal": "^2.0.5" } }, "node_modules/array-back": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -10250,24 +7660,21 @@ }, "node_modules/array-each": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/array-includes": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10284,27 +7691,24 @@ }, "node_modules/array-slice": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.findlastindex": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10321,9 +7725,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10339,9 +7742,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10357,9 +7759,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -10378,9 +7779,8 @@ }, "node_modules/assert": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-nan": "^1.3.2", @@ -10391,9 +7791,8 @@ }, "node_modules/ast-types": { "version": "0.16.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", - "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -10403,44 +7802,38 @@ }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/async-limiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/async-mutex": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", - "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.4.0" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10450,39 +7843,34 @@ }, "node_modules/axe-core": { "version": "4.7.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", - "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", "dev": true, + "license": "MPL-2.0", "engines": { "node": ">=4" } }, "node_modules/axobject-query": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/b4a": { "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/babel-core": { "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "dev": true, + "license": "MIT", "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-loader": { "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -10497,9 +7885,8 @@ }, "node_modules/babel-loader/node_modules/find-cache-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, + "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -10513,9 +7900,8 @@ }, "node_modules/babel-loader/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -10529,9 +7915,8 @@ }, "node_modules/babel-loader/node_modules/locate-path": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -10544,9 +7929,8 @@ }, "node_modules/babel-loader/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -10559,9 +7943,8 @@ }, "node_modules/babel-loader/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -10574,18 +7957,16 @@ }, "node_modules/babel-loader/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/babel-loader/node_modules/pkg-dir": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -10598,9 +7979,8 @@ }, "node_modules/babel-loader/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -10610,9 +7990,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -10626,9 +8005,8 @@ }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", - "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.4.4", @@ -10640,9 +8018,8 @@ }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.4", "core-js-compat": "^3.33.1" @@ -10653,9 +8030,8 @@ }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", - "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.4" }, @@ -10665,9 +8041,8 @@ }, "node_modules/bail": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10675,14 +8050,11 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -10696,22 +8068,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/basic-ftp": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", - "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/better-opn": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", "dev": true, + "license": "MIT", "dependencies": { "open": "^8.0.4" }, @@ -10721,27 +8092,24 @@ }, "node_modules/big-integer": { "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "dev": true, + "license": "Unlicense", "engines": { "node": ">=0.6" } }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -10750,9 +8118,8 @@ }, "node_modules/body-parser": { "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -10774,33 +8141,29 @@ }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bplist-parser": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", "dev": true, + "license": "MIT", "dependencies": { "big-integer": "^1.6.44" }, @@ -10810,9 +8173,8 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10820,9 +8182,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -10832,23 +8193,18 @@ }, "node_modules/browser-assert": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", - "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", "dev": true }, "node_modules/browserify-zlib": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", "dev": true, + "license": "MIT", "dependencies": { "pako": "~0.2.0" } }, "node_modules/browserslist": { "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -10864,6 +8220,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001565", "electron-to-chromium": "^1.4.601", @@ -10879,17 +8236,14 @@ }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -10905,6 +8259,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -10912,24 +8267,21 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/builtin-modules": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -10939,18 +8291,16 @@ }, "node_modules/bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cache-content-type": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -10961,9 +8311,8 @@ }, "node_modules/call-bind": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", @@ -10975,24 +8324,21 @@ }, "node_modules/call-me-maybe": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camel-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -11000,9 +8346,8 @@ }, "node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11012,8 +8357,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001570", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", - "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "dev": true, "funding": [ { @@ -11028,13 +8371,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/capital-case": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -11043,9 +8386,8 @@ }, "node_modules/ccount": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -11053,18 +8395,16 @@ }, "node_modules/chai-a11y-axe": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/chai-a11y-axe/-/chai-a11y-axe-1.5.0.tgz", - "integrity": "sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==", "dev": true, + "license": "MIT", "dependencies": { "axe-core": "^4.3.3" } }, "node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -11076,9 +8416,8 @@ }, "node_modules/chalk-template": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.2" }, @@ -11091,9 +8430,8 @@ }, "node_modules/chalk-template/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -11106,9 +8444,8 @@ }, "node_modules/chalk-template/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11122,18 +8459,16 @@ }, "node_modules/chalk-template/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/chalk-template/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11143,9 +8478,8 @@ }, "node_modules/change-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dev": true, + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -11163,9 +8497,8 @@ }, "node_modules/character-entities": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -11173,14 +8506,11 @@ }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -11188,6 +8518,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -11206,18 +8537,16 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/chrome-launcher": { "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", @@ -11233,9 +8562,8 @@ }, "node_modules/chrome-launcher/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11245,9 +8573,8 @@ }, "node_modules/chromium-bidi": { "version": "0.4.16", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", - "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "mitt": "3.0.0" }, @@ -11257,8 +8584,6 @@ }, "node_modules/ci-info": { "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -11266,33 +8591,31 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/citty": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.5.tgz", - "integrity": "sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==", "dev": true, + "license": "MIT", "dependencies": { "consola": "^3.2.3" } }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -11302,9 +8625,8 @@ }, "node_modules/cli-spinners": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -11314,9 +8636,8 @@ }, "node_modules/cli-table3": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -11329,18 +8650,16 @@ }, "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -11352,18 +8671,16 @@ }, "node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -11375,9 +8692,8 @@ }, "node_modules/clone-deep/node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -11387,9 +8703,8 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -11397,9 +8712,8 @@ }, "node_modules/co-body": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", "dev": true, + "license": "MIT", "dependencies": { "inflation": "^2.0.0", "qs": "^6.5.2", @@ -11409,9 +8723,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -11421,19 +8734,16 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colord": { "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -11443,9 +8753,8 @@ }, "node_modules/command-line-args": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -11458,9 +8767,8 @@ }, "node_modules/command-line-usage": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", @@ -11473,48 +8781,42 @@ }, "node_modules/command-line-usage/node_modules/array-back": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/command-line-usage/node_modules/typical": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "version": "11.1.0", "dev": true, + "license": "MIT", "engines": { "node": ">=16" } }, "node_modules/common-path-prefix": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compressible": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -11524,9 +8826,8 @@ }, "node_modules/compression": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -11542,33 +8843,29 @@ }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -11578,15 +8875,13 @@ }, "node_modules/concat-stream/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-stream/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -11599,18 +8894,16 @@ }, "node_modules/consola": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", "dev": true, + "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" } }, "node_modules/constant-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -11619,9 +8912,8 @@ }, "node_modules/content-disposition": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -11631,8 +8923,6 @@ }, "node_modules/content-disposition/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -11647,43 +8937,39 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookies": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" @@ -11694,9 +8980,8 @@ }, "node_modules/core-js-compat": { "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", "dev": true, + "license": "MIT", "dependencies": { "browserslist": "^4.22.2" }, @@ -11707,30 +8992,26 @@ }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-fetch": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -11742,39 +9023,34 @@ }, "node_modules/crypto-random-string": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/csstype": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/data-uri-to-buffer": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", - "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/debounce": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -11789,9 +9065,8 @@ }, "node_modules/decode-named-character-reference": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -11801,15 +9076,14 @@ } }, "node_modules/deep-equal": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz", - "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==", + "version": "2.2.3", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.1", + "get-intrinsic": "^1.2.2", "is-arguments": "^1.1.1", "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", @@ -11819,11 +9093,14 @@ "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", + "regexp.prototype.flags": "^1.5.1", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11831,24 +9108,21 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/default-browser-id": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", "dev": true, + "license": "MIT", "dependencies": { "bplist-parser": "^0.2.0", "untildify": "^4.0.0" @@ -11862,9 +9136,8 @@ }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -11874,18 +9147,16 @@ }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/define-data-property": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -11897,18 +9168,16 @@ }, "node_modules/define-lazy-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/define-properties": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dev": true, + "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -11922,15 +9191,13 @@ }, "node_modules/defu": { "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/degenerator": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", @@ -11942,9 +9209,8 @@ }, "node_modules/degenerator/node_modules/ast-types": { "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -11954,9 +9220,8 @@ }, "node_modules/del": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dev": true, + "license": "MIT", "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", @@ -11976,50 +9241,44 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/dependency-graph": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/dequal": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -12027,33 +9286,29 @@ }, "node_modules/detect-file": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detect-node-es": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/detect-package-manager": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", - "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.1.1" }, @@ -12063,9 +9318,8 @@ }, "node_modules/detect-port": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", "dev": true, + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "4" @@ -12077,24 +9331,21 @@ }, "node_modules/devtools-protocol": { "version": "0.0.1147663", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", - "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/diff": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -12104,9 +9355,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -12116,9 +9366,8 @@ }, "node_modules/dom5": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.1.tgz", - "integrity": "sha512-JPFiouQIr16VQ4dX6i0+Hpbg3H2bMKPmZ+WZgBOSSvOPx9QHwwY8sPzeM2baUtViESYto6wC2nuZOMC/6gulcA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@types/parse5": "^2.2.34", "clone": "^2.1.0", @@ -12127,29 +9376,25 @@ }, "node_modules/dom5/node_modules/@types/parse5": { "version": "2.2.34", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", - "integrity": "sha512-p3qOvaRsRpFyEmaS36RtLzpdxZZnmxGuT1GMgzkTtTJVFuEw7KFjGK83MFODpJExgX1bEzy9r0NYjMC3IMfi7w==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/dom5/node_modules/parse5": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dompurify": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz", - "integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==" + "license": "(MPL-2.0 OR Apache-2.0)" }, "node_modules/dot-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -12157,9 +9402,8 @@ }, "node_modules/dotenv": { "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -12169,18 +9413,16 @@ }, "node_modules/dotenv-expand": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/duplexify": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -12190,15 +9432,13 @@ }, "node_modules/duplexify/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/duplexify/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12211,21 +9451,18 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -12238,44 +9475,38 @@ }, "node_modules/electron-to-chromium": { "version": "1.4.614", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz", - "integrity": "sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/element-internals-polyfill": { "version": "1.3.9", - "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.9.tgz", - "integrity": "sha512-ti2fHL8rXbz5/pu50Nu45EXvORWtx1g1xWUQuZORkszbvCxosPEeHDeGzfvaaooXJNXNblogMP4atl680r9WyQ==" + "license": "MIT" }, "node_modules/emoji-regex": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz", - "integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==", - "dev": true + "version": "10.3.0", + "dev": true, + "license": "MIT" }, "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { "version": "5.14.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz", - "integrity": "sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -12286,9 +9517,8 @@ }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -12298,9 +9528,8 @@ }, "node_modules/envinfo": { "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -12310,24 +9539,21 @@ }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/errorstacks": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.0.tgz", - "integrity": "sha512-5ecWhU5gt0a5G05nmQcgCxP5HperSMxLDzvWlT5U+ZSKkuDK0rJ3dbCQny6/vSCIXjwrhwSecXBbw1alr295hQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-abstract": { "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -12378,9 +9604,8 @@ }, "node_modules/es-get-iterator": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -12398,15 +9623,13 @@ }, "node_modules/es-module-lexer": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-set-tostringtag": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.2", "has-tostringtag": "^1.0.0", @@ -12418,18 +9641,16 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -12443,11 +9664,10 @@ } }, "node_modules/esbuild": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", - "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", + "version": "0.19.11", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -12455,41 +9675,40 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.9", - "@esbuild/android-arm64": "0.19.9", - "@esbuild/android-x64": "0.19.9", - "@esbuild/darwin-arm64": "0.19.9", - "@esbuild/darwin-x64": "0.19.9", - "@esbuild/freebsd-arm64": "0.19.9", - "@esbuild/freebsd-x64": "0.19.9", - "@esbuild/linux-arm": "0.19.9", - "@esbuild/linux-arm64": "0.19.9", - "@esbuild/linux-ia32": "0.19.9", - "@esbuild/linux-loong64": "0.19.9", - "@esbuild/linux-mips64el": "0.19.9", - "@esbuild/linux-ppc64": "0.19.9", - "@esbuild/linux-riscv64": "0.19.9", - "@esbuild/linux-s390x": "0.19.9", - "@esbuild/linux-x64": "0.19.9", - "@esbuild/netbsd-x64": "0.19.9", - "@esbuild/openbsd-x64": "0.19.9", - "@esbuild/sunos-x64": "0.19.9", - "@esbuild/win32-arm64": "0.19.9", - "@esbuild/win32-ia32": "0.19.9", - "@esbuild/win32-x64": "0.19.9" + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" } }, "node_modules/esbuild-plugin-alias": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz", - "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esbuild-register": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.5.0.tgz", - "integrity": "sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -12499,33 +9718,29 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -12544,18 +9759,16 @@ }, "node_modules/escodegen/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" @@ -12563,9 +9776,8 @@ }, "node_modules/eslint": { "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -12618,9 +9830,8 @@ }, "node_modules/eslint-config-prettier": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -12630,9 +9841,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -12641,18 +9851,16 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-import-resolver-typescript": { "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", "dev": true, + "license": "ISC", "dependencies": { "debug": "^4.3.4", "enhanced-resolve": "^5.12.0", @@ -12675,9 +9883,8 @@ }, "node_modules/eslint-module-utils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -12692,18 +9899,16 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -12732,18 +9937,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -12753,9 +9956,8 @@ }, "node_modules/eslint-plugin-lit": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.10.1.tgz", - "integrity": "sha512-3eH++xFpe6efd+TN6B9kW1coULdPyK+3fMNws378nbYQ/HiWIz0+jVcsaGVs9BbLt6kVkDxZmUGF4Ivx3BatkA==", "dev": true, + "license": "MIT", "dependencies": { "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", @@ -12770,9 +9972,8 @@ }, "node_modules/eslint-plugin-lit-a11y": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.1.tgz", - "integrity": "sha512-PTUEwTMMtbZccrGQUPFfWI3Ope8oF8XEMLUckNbV0IvDTkEbXYlYlvNrkzI92gYKAVaVlNi2QZ/0n8Q3YiOBUg==", "dev": true, + "license": "ISC", "dependencies": { "aria-query": "^5.1.3", "axe-core": "^4.3.3", @@ -12792,9 +9993,8 @@ }, "node_modules/eslint-plugin-lit-a11y/node_modules/parse5": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, + "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -12804,15 +10004,13 @@ }, "node_modules/eslint-plugin-local-rules": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-local-rules/-/eslint-plugin-local-rules-2.0.1.tgz", - "integrity": "sha512-AJhGd+GcI5r2dbjiGPixM8jnBl0XFxqoVbqzwKbYz+nTk+Cj5dNE3+OlhC176bl5r25KsGsIthLi1VqIW5Ga+A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eslint-plugin-storybook": { "version": "0.6.15", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz", - "integrity": "sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/csf": "^0.0.1", "@typescript-eslint/utils": "^5.45.0", @@ -12828,18 +10026,16 @@ }, "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", - "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.15" } }, "node_modules/eslint-plugin-wc": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-2.0.4.tgz", - "integrity": "sha512-ORu7MBv0hXIvq894EJad70m+AvHGbmrDdKT6lcgtCVVhEbuIAyxg0ilfqqqHOmsh8PfcUBeEae3y7CElKvm1KQ==", "dev": true, + "license": "MIT", "dependencies": { "is-valid-element-name": "^1.0.0", "js-levenshtein-esm": "^1.2.0" @@ -12850,9 +10046,8 @@ }, "node_modules/eslint-rule-extender": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/eslint-rule-extender/-/eslint-rule-extender-0.0.1.tgz", - "integrity": "sha512-F0j1Twve3lamL3J0rRSVAynlp58sDPG39JFcQrM+u9Na7PmCgiPHNODh6YE9mduaGcsn3NBqbf6LZRj0cLr8Ng==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12863,9 +10058,8 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -12876,9 +10070,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -12888,9 +10081,8 @@ }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12903,15 +10095,13 @@ }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12925,9 +10115,8 @@ }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12937,9 +10126,8 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -12953,18 +10141,16 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -12973,10 +10159,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.24.0", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -12989,18 +10174,16 @@ }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -13010,9 +10193,8 @@ }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13022,9 +10204,8 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -13034,9 +10215,8 @@ }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -13051,9 +10231,8 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -13064,9 +10243,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -13076,18 +10254,16 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -13097,60 +10273,53 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/etag": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -13171,9 +10340,8 @@ }, "node_modules/expand-tilde": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, + "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -13183,9 +10351,8 @@ }, "node_modules/express": { "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -13225,23 +10392,19 @@ }, "node_modules/express/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/express/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -13256,19 +10419,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -13280,9 +10442,8 @@ }, "node_modules/extract-zip": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -13300,9 +10461,8 @@ }, "node_modules/extract-zip/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -13315,21 +10475,18 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-fifo": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -13343,54 +10500,47 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/fd-slicer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, + "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/fetch-retry": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", - "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -13403,9 +10553,8 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -13415,9 +10564,8 @@ }, "node_modules/file-system-cache": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz", - "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==", "dev": true, + "license": "MIT", "dependencies": { "fs-extra": "11.1.1", "ramda": "0.29.0" @@ -13425,27 +10573,24 @@ }, "node_modules/filelist": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } }, "node_modules/filelist/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -13455,9 +10600,8 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -13467,9 +10611,8 @@ }, "node_modules/finalhandler": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -13485,24 +10628,21 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -13517,9 +10657,8 @@ }, "node_modules/find-cache-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -13530,9 +10669,8 @@ }, "node_modules/find-cache-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -13542,9 +10680,8 @@ }, "node_modules/find-cache-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -13557,9 +10694,8 @@ }, "node_modules/find-cache-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -13569,9 +10705,8 @@ }, "node_modules/find-cache-dir/node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -13581,9 +10716,8 @@ }, "node_modules/find-replace": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^3.0.1" }, @@ -13593,9 +10727,8 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -13609,9 +10742,8 @@ }, "node_modules/findup-sync": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, + "license": "MIT", "dependencies": { "detect-file": "^1.0.0", "is-glob": "^4.0.3", @@ -13624,9 +10756,8 @@ }, "node_modules/fined": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "is-plain-object": "^5.0.0", @@ -13640,18 +10771,16 @@ }, "node_modules/flagged-respawn": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.13.0" } }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -13662,29 +10791,26 @@ }, "node_modules/flatted": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/flow-parser": { "version": "0.226.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.226.0.tgz", - "integrity": "sha512-YlH+Y/P/5s0S7Vg14RwXlJMF/JsGfkG7gcKB/zljyoqaPNX9YVsGzx+g6MLTbhZaWbPhs4347aTpmSb9GgiPtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/follow-redirects": { "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -13696,27 +10822,24 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/for-own": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, + "license": "MIT", "dependencies": { "for-in": "^1.0.1" }, @@ -13726,9 +10849,8 @@ }, "node_modules/foreground-child": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -13742,9 +10864,8 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -13754,8 +10875,7 @@ }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -13767,33 +10887,29 @@ }, "node_modules/forwarded": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fs-extra": { "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -13805,9 +10921,8 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -13817,9 +10932,8 @@ }, "node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13829,22 +10943,18 @@ }, "node_modules/fs-minipass/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -13855,18 +10965,16 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -13882,36 +10990,32 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", @@ -13924,36 +11028,32 @@ }, "node_modules/get-nonce": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/get-npm-tarball-url": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz", - "integrity": "sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-port": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -13963,9 +11063,8 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13975,9 +11074,8 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -13991,9 +11089,8 @@ }, "node_modules/get-tsconfig": { "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -14003,9 +11100,8 @@ }, "node_modules/get-uri": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", - "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", "dev": true, + "license": "MIT", "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.0", @@ -14018,9 +11114,8 @@ }, "node_modules/get-uri/node_modules/fs-extra": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -14032,27 +11127,24 @@ }, "node_modules/get-uri/node_modules/jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/get-uri/node_modules/universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/giget": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.1.tgz", - "integrity": "sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==", "dev": true, + "license": "MIT", "dependencies": { "citty": "^0.1.5", "consola": "^3.2.3", @@ -14069,15 +11161,13 @@ }, "node_modules/github-slugger": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14094,9 +11184,8 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -14106,24 +11195,21 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -14133,9 +11219,8 @@ }, "node_modules/global-modules": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -14147,9 +11232,8 @@ }, "node_modules/global-prefix": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -14163,9 +11247,8 @@ }, "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -14175,18 +11258,16 @@ }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -14199,15 +11280,13 @@ }, "node_modules/globalyzer": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -14225,15 +11304,13 @@ }, "node_modules/globrex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -14243,30 +11320,26 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/graphql": { "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/gunzip-maybe": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", - "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", "dev": true, + "license": "MIT", "dependencies": { "browserify-zlib": "^0.1.4", "is-deflate": "^1.0.0", @@ -14281,9 +11354,8 @@ }, "node_modules/handlebars": { "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -14302,18 +11374,16 @@ }, "node_modules/handlebars/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -14323,27 +11393,24 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -14353,9 +11420,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -14365,9 +11431,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -14377,9 +11442,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -14392,9 +11456,8 @@ }, "node_modules/hasown": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -14404,9 +11467,8 @@ }, "node_modules/header-case": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dev": true, + "license": "MIT", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -14414,15 +11476,13 @@ }, "node_modules/headers-polyfill": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz", - "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/homedir-polyfill": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, + "license": "MIT", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -14432,21 +11492,18 @@ }, "node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-assert": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", "dev": true, + "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" @@ -14457,24 +11514,21 @@ }, "node_modules/http-assert/node_modules/deep-equal": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-assert/node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/http-assert/node_modules/http-errors": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -14488,18 +11542,16 @@ }, "node_modules/http-assert/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -14513,9 +11565,8 @@ }, "node_modules/http-proxy-agent": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -14526,9 +11577,8 @@ }, "node_modules/https-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -14539,18 +11589,16 @@ }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -14560,334 +11608,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, "funding": [ { @@ -14903,15 +11623,326 @@ "url": "https://feross.org/support" } ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflation": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute-url": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/is-builtin-module": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, + "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -14924,9 +11955,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -14936,9 +11966,8 @@ }, "node_modules/is-core-module": { "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -14948,9 +11977,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -14963,15 +11991,13 @@ }, "node_modules/is-deflate": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", - "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -14984,27 +12010,24 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -15017,9 +12040,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -15029,42 +12051,37 @@ }, "node_modules/is-gzip": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-map": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-nan": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" @@ -15078,9 +12095,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -15090,24 +12106,21 @@ }, "node_modules/is-node-process": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", - "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -15120,27 +12133,24 @@ }, "node_modules/is-path-cwd": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -15150,33 +12160,29 @@ }, "node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-reference": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -15190,9 +12196,8 @@ }, "node_modules/is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, + "license": "MIT", "dependencies": { "is-unc-path": "^1.0.0" }, @@ -15202,18 +12207,16 @@ }, "node_modules/is-set": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -15223,9 +12226,8 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -15235,9 +12237,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -15250,9 +12251,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -15265,9 +12265,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.11" }, @@ -15280,9 +12279,8 @@ }, "node_modules/is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, + "license": "MIT", "dependencies": { "unc-path-regex": "^0.1.2" }, @@ -15292,9 +12290,8 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -15304,27 +12301,24 @@ }, "node_modules/is-valid-element-name": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-element-name/-/is-valid-element-name-1.0.0.tgz", - "integrity": "sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "is-potential-custom-element-name": "^1.0.0" } }, "node_modules/is-weakmap": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -15334,9 +12328,8 @@ }, "node_modules/is-weakset": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -15347,18 +12340,16 @@ }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -15368,15 +12359,13 @@ }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isbinaryfile": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz", - "integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 14.0.0" }, @@ -15386,33 +12375,29 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -15426,9 +12411,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -15440,18 +12424,16 @@ }, "node_modules/istanbul-lib-report/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -15461,9 +12443,8 @@ }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -15476,9 +12457,8 @@ }, "node_modules/istanbul-lib-report/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -15491,9 +12471,8 @@ }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15503,15 +12482,13 @@ }, "node_modules/istanbul-lib-report/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/istanbul-reports": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -15522,9 +12499,8 @@ }, "node_modules/jackspeak": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -15540,9 +12516,8 @@ }, "node_modules/jake": { "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -15558,9 +12533,8 @@ }, "node_modules/jake/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -15573,9 +12547,8 @@ }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15589,18 +12562,16 @@ }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jake/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15610,9 +12581,8 @@ }, "node_modules/jest-haste-map": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -15635,18 +12605,16 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -15661,9 +12629,8 @@ }, "node_modules/jest-util/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -15676,9 +12643,8 @@ }, "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15692,18 +12658,16 @@ }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15713,9 +12677,8 @@ }, "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -15728,18 +12691,16 @@ }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15752,30 +12713,26 @@ }, "node_modules/js-levenshtein": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/js-levenshtein-esm": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz", - "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -15786,9 +12743,8 @@ }, "node_modules/jscodeshift": { "version": "0.15.1", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.1.tgz", - "integrity": "sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.23.0", "@babel/parser": "^7.23.0", @@ -15825,9 +12781,8 @@ }, "node_modules/jscodeshift/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -15840,9 +12795,8 @@ }, "node_modules/jscodeshift/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15856,18 +12810,16 @@ }, "node_modules/jscodeshift/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jscodeshift/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15877,9 +12829,8 @@ }, "node_modules/jscodeshift/node_modules/write-file-atomic": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -15888,9 +12839,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -15900,16 +12850,13 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-ref-parser": { "version": "9.0.9", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", - "deprecated": "Please switch to @apidevtools/json-schema-ref-parser", "dev": true, + "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "9.0.9" }, @@ -15919,21 +12866,18 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -15943,9 +12887,8 @@ }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -15955,9 +12898,8 @@ }, "node_modules/keygrip": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dev": true, + "license": "MIT", "dependencies": { "tsscmp": "1.0.6" }, @@ -15967,27 +12909,24 @@ }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/koa": { "version": "2.14.2", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz", - "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", @@ -16019,15 +12958,13 @@ }, "node_modules/koa-compose": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/koa-convert": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, + "license": "MIT", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -16038,18 +12975,16 @@ }, "node_modules/koa-etag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", - "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", "dev": true, + "license": "MIT", "dependencies": { "etag": "^1.8.1" } }, "node_modules/koa-send": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", - "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "http-errors": "^1.7.3", @@ -16061,18 +12996,16 @@ }, "node_modules/koa-send/node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/koa-send/node_modules/http-errors": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -16086,18 +13019,16 @@ }, "node_modules/koa-send/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/koa-static": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", - "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.1.0", "koa-send": "^5.0.0" @@ -16108,18 +13039,16 @@ }, "node_modules/koa-static/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/koa/node_modules/http-errors": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -16133,42 +13062,37 @@ }, "node_modules/koa/node_modules/http-errors/node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/koa/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/language-subtag-registry": { "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.8.tgz", - "integrity": "sha512-aWAZwgPLS8hJ20lNPm9HNVs4inexz6S2sQa3wx/+ycuutMNE5/IfYxiWYBbi+9UWCQVaXYCOPUl6gFrPR7+jGg==", "dev": true, + "license": "MIT", "dependencies": { "language-subtag-registry": "^0.3.20" } }, "node_modules/lazy-universal-dotenv": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz", - "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "app-root-dir": "^1.0.2", "dotenv": "^16.0.0", @@ -16180,18 +13104,16 @@ }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -16202,9 +13124,8 @@ }, "node_modules/liftoff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", "dev": true, + "license": "MIT", "dependencies": { "extend": "^3.0.2", "findup-sync": "^5.0.0", @@ -16221,9 +13142,8 @@ }, "node_modules/lighthouse-logger": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" @@ -16231,24 +13151,21 @@ }, "node_modules/lighthouse-logger/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lit": { "version": "2.8.0", @@ -16261,16 +13178,48 @@ } }, "node_modules/lit-element": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", - "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", + "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.1.0", "@lit/reactive-element": "^1.3.0", - "lit-html": "^2.7.0" + "lit-html": "^2.8.0" + } + }, + "node_modules/lit-element/node_modules/@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/lit-element/node_modules/lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "dependencies": { + "@types/trusted-types": "^2.0.2" } }, "node_modules/lit-html": { + "version": "3.1.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/lit/node_modules/@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/lit/node_modules/lit-html": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", @@ -16280,9 +13229,8 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -16295,50 +13243,42 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "license": "MIT" }, "node_modules/lodash.assignwith": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -16352,9 +13292,8 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -16367,9 +13306,8 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -16383,18 +13321,16 @@ }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16404,9 +13340,8 @@ }, "node_modules/log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -16422,9 +13357,8 @@ }, "node_modules/log-update/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -16437,9 +13371,8 @@ }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -16451,9 +13384,8 @@ }, "node_modules/longest-streak": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16461,9 +13393,8 @@ }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -16473,33 +13404,29 @@ }, "node_modules/lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/lucide-static": { "version": "0.290.0", - "resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-0.290.0.tgz", - "integrity": "sha512-g2JVS1v2xVypOyMRrWH5lFhJwAftBvAn732Ig4VqS60+4MtL1F+bsbI8wVG3MM6RFhL12gT1hs5vEZufr6XbKA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/magic-string": { "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -16507,17 +13434,10 @@ "node": ">=12" } }, - "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, "node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -16530,15 +13450,13 @@ }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/make-iterator": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -16548,33 +13466,29 @@ }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/map-or-similar": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", - "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/markdown-table": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16582,9 +13496,8 @@ }, "node_modules/markdown-to-jsx": { "version": "7.4.0", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.0.tgz", - "integrity": "sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" }, @@ -16594,8 +13507,7 @@ }, "node_modules/marked": { "version": "11.1.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-11.1.1.tgz", - "integrity": "sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==", + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -16605,15 +13517,13 @@ }, "node_modules/marky": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/mdast-util-definitions": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", "dev": true, + "license": "MIT", "dependencies": { "unist-util-visit": "^2.0.0" }, @@ -16624,9 +13534,8 @@ }, "node_modules/mdast-util-find-and-replace": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "escape-string-regexp": "^5.0.0", @@ -16640,9 +13549,8 @@ }, "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -16652,9 +13560,8 @@ }, "node_modules/mdast-util-from-markdown": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", - "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -16676,9 +13583,8 @@ }, "node_modules/mdast-util-gfm": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^1.0.0", "mdast-util-gfm-autolink-literal": "^1.0.0", @@ -16695,9 +13601,8 @@ }, "node_modules/mdast-util-gfm-autolink-literal": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "ccount": "^2.0.0", @@ -16711,9 +13616,8 @@ }, "node_modules/mdast-util-gfm-footnote": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.3.0", @@ -16726,9 +13630,8 @@ }, "node_modules/mdast-util-gfm-strikethrough": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.3.0" @@ -16740,9 +13643,8 @@ }, "node_modules/mdast-util-gfm-table": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "markdown-table": "^3.0.0", @@ -16756,9 +13658,8 @@ }, "node_modules/mdast-util-gfm-task-list-item": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.3.0" @@ -16770,9 +13671,8 @@ }, "node_modules/mdast-util-phrasing": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "unist-util-is": "^5.0.0" @@ -16784,9 +13684,8 @@ }, "node_modules/mdast-util-to-markdown": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -16804,9 +13703,8 @@ }, "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -16819,9 +13717,8 @@ }, "node_modules/mdast-util-to-string": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0" }, @@ -16832,56 +13729,48 @@ }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memoizerific": { "version": "1.11.3", - "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", - "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", "dev": true, + "license": "MIT", "dependencies": { "map-or-similar": "^1.5.0" } }, "node_modules/merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromark": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", "dev": true, "funding": [ { @@ -16893,6 +13782,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -16915,8 +13805,6 @@ }, "node_modules/micromark-core-commonmark": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", "dev": true, "funding": [ { @@ -16928,6 +13816,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", @@ -16949,9 +13838,8 @@ }, "node_modules/micromark-extension-gfm": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", - "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", "dev": true, + "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^1.0.0", "micromark-extension-gfm-footnote": "^1.0.0", @@ -16969,9 +13857,8 @@ }, "node_modules/micromark-extension-gfm-autolink-literal": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.4.tgz", - "integrity": "sha512-WCssN+M9rUyfHN5zPBn3/f0mIA7tqArHL/EKbv3CZK+LT2rG77FEikIQEqBkv46fOqXQK4NEW/Pc7Z27gshpeg==", "dev": true, + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", @@ -16985,9 +13872,8 @@ }, "node_modules/micromark-extension-gfm-footnote": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.0.tgz", - "integrity": "sha512-RWYce7j8+c0n7Djzv5NzGEGitNNYO3uj+h/XYMdS/JinH1Go+/Qkomg/rfxExFzYTiydaV6GLeffGO5qcJbMPA==", "dev": true, + "license": "MIT", "dependencies": { "micromark-core-commonmark": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -17005,9 +13891,8 @@ }, "node_modules/micromark-extension-gfm-strikethrough": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.5.tgz", - "integrity": "sha512-X0oI5eYYQVARhiNfbETy7BfLSmSilzN1eOuoRnrf9oUNsPRrWOAe9UqSizgw1vNxQBfOwL+n2610S3bYjVNi7w==", "dev": true, + "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-classify-character": "^1.0.0", @@ -17023,9 +13908,8 @@ }, "node_modules/micromark-extension-gfm-table": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.6.tgz", - "integrity": "sha512-92pq7Q+T+4kXH4M6kL+pc8WU23Z9iuhcqmtYFWdFWjm73ZscFpH2xE28+XFpGWlvgq3LUwcN0XC0PGCicYFpgA==", "dev": true, + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -17040,9 +13924,8 @@ }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", "dev": true, + "license": "MIT", "dependencies": { "micromark-util-types": "^1.0.0" }, @@ -17053,9 +13936,8 @@ }, "node_modules/micromark-extension-gfm-task-list-item": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.4.tgz", - "integrity": "sha512-9XlIUUVnYXHsFF2HZ9jby4h3npfX10S1coXTnV035QGPgrtNYQq3J6IfIvcCIUAJrrqBVi5BqA/LmaOMJqPwMQ==", "dev": true, + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -17070,8 +13952,6 @@ }, "node_modules/micromark-factory-destination": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", "dev": true, "funding": [ { @@ -17083,6 +13963,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -17091,8 +13972,6 @@ }, "node_modules/micromark-factory-label": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", "dev": true, "funding": [ { @@ -17104,6 +13983,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -17113,8 +13993,6 @@ }, "node_modules/micromark-factory-space": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", "dev": true, "funding": [ { @@ -17126,6 +14004,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -17133,8 +14012,6 @@ }, "node_modules/micromark-factory-title": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", "dev": true, "funding": [ { @@ -17146,6 +14023,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -17155,8 +14033,6 @@ }, "node_modules/micromark-factory-whitespace": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", "dev": true, "funding": [ { @@ -17168,6 +14044,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -17177,8 +14054,6 @@ }, "node_modules/micromark-util-character": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", "dev": true, "funding": [ { @@ -17190,6 +14065,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -17197,8 +14073,6 @@ }, "node_modules/micromark-util-chunked": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", "dev": true, "funding": [ { @@ -17210,14 +14084,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-classify-character": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", "dev": true, "funding": [ { @@ -17229,6 +14102,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -17237,8 +14111,6 @@ }, "node_modules/micromark-util-combine-extensions": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", "dev": true, "funding": [ { @@ -17250,6 +14122,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -17257,8 +14130,6 @@ }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", "dev": true, "funding": [ { @@ -17270,14 +14141,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-decode-string": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", "dev": true, "funding": [ { @@ -17289,6 +14159,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -17298,40 +14169,6 @@ }, "node_modules/micromark-util-encode": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", "dev": true, "funding": [ { @@ -17343,14 +14180,43 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-resolve-all": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", "dev": true, "funding": [ { @@ -17362,14 +14228,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^1.0.0" } }, "node_modules/micromark-util-sanitize-uri": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", "dev": true, "funding": [ { @@ -17381,6 +14246,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-encode": "^1.0.0", @@ -17389,8 +14255,6 @@ }, "node_modules/micromark-util-subtokenize": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", "dev": true, "funding": [ { @@ -17402,6 +14266,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -17411,8 +14276,6 @@ }, "node_modules/micromark-util-symbol": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", "dev": true, "funding": [ { @@ -17423,12 +14286,11 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", "dev": true, "funding": [ { @@ -17439,13 +14301,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -17456,9 +14318,8 @@ }, "node_modules/mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -17468,16 +14329,14 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -17487,18 +14346,16 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -17508,27 +14365,24 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -17539,9 +14393,8 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -17551,21 +14404,18 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/mitt": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -17575,36 +14425,31 @@ }, "node_modules/mkdirp-classic": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/monaco-editor": { "version": "0.45.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.45.0.tgz", - "integrity": "sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA==" + "license": "MIT" }, "node_modules/mri": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/msw": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/msw/-/msw-1.3.2.tgz", - "integrity": "sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "@mswjs/cookies": "^0.2.2", "@mswjs/interceptors": "^0.17.10", @@ -17647,9 +14492,8 @@ }, "node_modules/msw/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -17661,10 +14505,9 @@ } }, "node_modules/msw/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17678,33 +14521,29 @@ }, "node_modules/msw/node_modules/cookie": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/msw/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/msw/node_modules/path-to-regexp": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/msw/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -17714,15 +14553,13 @@ }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/mylas": { "version": "2.1.13", - "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", - "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0.0" }, @@ -17733,14 +14570,11 @@ }, "node_modules/nanocolors": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", - "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -17748,6 +14582,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -17757,39 +14592,34 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netmask": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/no-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -17797,9 +14627,8 @@ }, "node_modules/node-dir": { "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", "dev": true, + "license": "MIT", "dependencies": { "minimatch": "^3.0.2" }, @@ -17809,9 +14638,8 @@ }, "node_modules/node-fetch": { "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -17829,27 +14657,23 @@ }, "node_modules/node-fetch-native": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.1.tgz", - "integrity": "sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -17857,15 +14681,13 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-plop": { "version": "0.32.0", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.32.0.tgz", - "integrity": "sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/inquirer": "^9.0.3", "change-case": "^4.1.2", @@ -17887,9 +14709,8 @@ }, "node_modules/node-plop/node_modules/aggregate-error": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^4.0.0", "indent-string": "^5.0.0" @@ -17903,9 +14724,8 @@ }, "node_modules/node-plop/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -17918,9 +14738,8 @@ }, "node_modules/node-plop/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -17930,9 +14749,8 @@ }, "node_modules/node-plop/node_modules/clean-stack": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -17945,18 +14763,16 @@ }, "node_modules/node-plop/node_modules/cli-width": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 12" } }, "node_modules/node-plop/node_modules/del": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.1.0.tgz", - "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", "dev": true, + "license": "MIT", "dependencies": { "globby": "^13.1.2", "graceful-fs": "^4.2.10", @@ -17976,9 +14792,8 @@ }, "node_modules/node-plop/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -17988,9 +14803,8 @@ }, "node_modules/node-plop/node_modules/figures": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -18004,9 +14818,8 @@ }, "node_modules/node-plop/node_modules/globby": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -18023,9 +14836,8 @@ }, "node_modules/node-plop/node_modules/indent-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18034,12 +14846,11 @@ } }, "node_modules/node-plop/node_modules/inquirer": { - "version": "9.2.11", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", - "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "version": "9.2.12", "dev": true, + "license": "MIT", "dependencies": { - "@ljharb/through": "^2.3.9", + "@ljharb/through": "^2.3.11", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", @@ -18061,9 +14872,8 @@ }, "node_modules/node-plop/node_modules/is-path-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -18073,9 +14883,8 @@ }, "node_modules/node-plop/node_modules/is-path-inside": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18085,9 +14894,8 @@ }, "node_modules/node-plop/node_modules/is-unicode-supported": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18097,9 +14905,8 @@ }, "node_modules/node-plop/node_modules/mkdirp": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" }, @@ -18112,18 +14919,16 @@ }, "node_modules/node-plop/node_modules/mute-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/node-plop/node_modules/p-map": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^4.0.0" }, @@ -18136,18 +14941,16 @@ }, "node_modules/node-plop/node_modules/run-async": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/node-plop/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18157,9 +14960,8 @@ }, "node_modules/node-plop/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -18171,15 +14973,13 @@ }, "node_modules/node-releases": { "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -18189,27 +14989,24 @@ }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -18219,9 +15016,8 @@ }, "node_modules/nypm": { "version": "0.3.4", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.4.tgz", - "integrity": "sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==", "dev": true, + "license": "MIT", "dependencies": { "citty": "^0.1.5", "execa": "^8.0.1", @@ -18237,9 +15033,8 @@ }, "node_modules/nypm/node_modules/execa": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -18260,9 +15055,8 @@ }, "node_modules/nypm/node_modules/get-stream": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, + "license": "MIT", "engines": { "node": ">=16" }, @@ -18272,18 +15066,16 @@ }, "node_modules/nypm/node_modules/human-signals": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } }, "node_modules/nypm/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -18293,9 +15085,8 @@ }, "node_modules/nypm/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18305,9 +15096,8 @@ }, "node_modules/nypm/node_modules/npm-run-path": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -18320,9 +15110,8 @@ }, "node_modules/nypm/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -18335,9 +15124,8 @@ }, "node_modules/nypm/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18347,9 +15135,8 @@ }, "node_modules/nypm/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -18359,9 +15146,8 @@ }, "node_modules/nypm/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -18371,18 +15157,16 @@ }, "node_modules/object-inspect": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -18396,18 +15180,16 @@ }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -18423,9 +15205,8 @@ }, "node_modules/object.defaults": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, + "license": "MIT", "dependencies": { "array-each": "^1.0.1", "array-slice": "^1.0.0", @@ -18438,9 +15219,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -18455,9 +15235,8 @@ }, "node_modules/object.groupby": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -18467,9 +15246,8 @@ }, "node_modules/object.map": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", "dev": true, + "license": "MIT", "dependencies": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" @@ -18480,9 +15258,8 @@ }, "node_modules/object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -18492,9 +15269,8 @@ }, "node_modules/object.values": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -18509,15 +15285,13 @@ }, "node_modules/ohash": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", - "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -18527,27 +15301,24 @@ }, "node_modules/on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -18560,15 +15331,12 @@ }, "node_modules/only": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, "node_modules/open": { "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -18583,9 +15351,8 @@ }, "node_modules/openapi-typescript-codegen": { "version": "0.25.0", - "resolved": "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.25.0.tgz", - "integrity": "sha512-nN/TnIcGbP58qYgwEEy5FrAAjePcYgfMaCe3tsmYyTgI3v4RR9v8os14L+LEWDvV50+CmqiyTzRkKKtJeb6Ybg==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.3.0", "commander": "^11.0.0", @@ -18599,17 +15366,15 @@ }, "node_modules/opener": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -18624,9 +15389,8 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -18647,9 +15411,8 @@ }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -18662,9 +15425,8 @@ }, "node_modules/ora/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18678,18 +15440,16 @@ }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -18699,24 +15459,21 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/outvariant": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz", - "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -18729,9 +15486,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -18744,9 +15500,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -18759,18 +15514,16 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pac-proxy-agent": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.0.2", @@ -18787,9 +15540,8 @@ }, "node_modules/pac-resolver": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", - "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", "dev": true, + "license": "MIT", "dependencies": { "degenerator": "^5.0.0", "ip": "^1.1.8", @@ -18801,21 +15553,18 @@ }, "node_modules/pac-resolver/node_modules/ip": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pako": { "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/param-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -18823,9 +15572,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -18835,9 +15583,8 @@ }, "node_modules/parse-filepath": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", @@ -18849,9 +15596,8 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -18867,42 +15613,37 @@ }, "node_modules/parse-passwd": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, + "license": "MIT", "dependencies": { "parse5": "^6.0.1" } }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/pascal-case": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -18910,9 +15651,8 @@ }, "node_modules/path-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -18920,48 +15660,42 @@ }, "node_modules/path-equal": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", - "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-root": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, + "license": "MIT", "dependencies": { "path-root-regex": "^0.1.0" }, @@ -18971,18 +15705,16 @@ }, "node_modules/path-root-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-scurry": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -18996,39 +15728,34 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-to-regexp": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathe": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/peek-stream": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", - "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "duplexify": "^3.5.0", @@ -19037,21 +15764,18 @@ }, "node_modules/pend": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -19061,27 +15785,24 @@ }, "node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pirates": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^5.0.0" }, @@ -19091,9 +15812,8 @@ }, "node_modules/playwright": { "version": "1.40.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", - "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "playwright-core": "1.40.1" }, @@ -19109,9 +15829,8 @@ }, "node_modules/playwright-core": { "version": "1.40.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", - "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", "dev": true, + "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, @@ -19121,9 +15840,8 @@ }, "node_modules/playwright-msw": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/playwright-msw/-/playwright-msw-3.0.1.tgz", - "integrity": "sha512-w2bVjt7kPIThOQF9OS/1vDDs0HsQfV9inxMVSUv74x/zhCcrgzVN47xpPk84okf3OcCRHHBJKq8sNeBfCDyhMg==", "dev": true, + "license": "MIT", "dependencies": { "@mswjs/cookies": "^1.1.0", "strict-event-emitter": "^0.5.1" @@ -19138,33 +15856,29 @@ }, "node_modules/playwright-msw/node_modules/@mswjs/cookies": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-1.1.0.tgz", - "integrity": "sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/playwright-msw/node_modules/strict-event-emitter": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", - "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/plimit-lit": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz", - "integrity": "sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==", "dev": true, + "license": "MIT", "dependencies": { "queue-lit": "^1.5.0" } }, "node_modules/plop": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/plop/-/plop-4.0.0.tgz", - "integrity": "sha512-6hsuNofd5crnl7upQSRyw+7zVBZqxF9UZoWqsKqtPthpvtgUuYD+atBx7ZD9RT8qXWnylyCt9bpvYLZPexxDMg==", "dev": true, + "license": "MIT", "dependencies": { "@types/liftoff": "^4.0.1", "chalk": "^5.3.0", @@ -19184,9 +15898,8 @@ }, "node_modules/plop/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19196,9 +15909,8 @@ }, "node_modules/plop/node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -19208,9 +15920,8 @@ }, "node_modules/plop/node_modules/cli-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^4.0.0" }, @@ -19223,9 +15934,8 @@ }, "node_modules/plop/node_modules/is-interactive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19235,9 +15945,8 @@ }, "node_modules/plop/node_modules/is-unicode-supported": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19247,9 +15956,8 @@ }, "node_modules/plop/node_modules/log-symbols": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.0.0", "is-unicode-supported": "^1.1.0" @@ -19263,9 +15971,8 @@ }, "node_modules/plop/node_modules/ora": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", - "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^4.0.0", @@ -19286,9 +15993,8 @@ }, "node_modules/plop/node_modules/restore-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -19302,9 +16008,8 @@ }, "node_modules/plop/node_modules/string-width": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", - "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^10.2.1", @@ -19319,9 +16024,8 @@ }, "node_modules/plop/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -19334,9 +16038,8 @@ }, "node_modules/polished": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", - "integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.17.8" }, @@ -19346,9 +16049,8 @@ }, "node_modules/portfinder": { "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, + "license": "MIT", "dependencies": { "async": "^2.6.4", "debug": "^3.2.7", @@ -19360,27 +16062,24 @@ }, "node_modules/portfinder/node_modules/async": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/portfinder/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/portfinder/node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -19390,8 +16089,6 @@ }, "node_modules/postcss": { "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -19407,6 +16104,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -19418,18 +16116,16 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -19442,42 +16138,37 @@ }, "node_modules/pretty-hrtime": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -19488,9 +16179,8 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -19501,9 +16191,8 @@ }, "node_modules/proxy-agent": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", - "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -19520,24 +16209,21 @@ }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -19545,9 +16231,8 @@ }, "node_modules/pumpify": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, + "license": "MIT", "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -19556,9 +16241,8 @@ }, "node_modules/pumpify/node_modules/pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -19566,18 +16250,16 @@ }, "node_modules/punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/puppeteer-core": { "version": "20.9.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz", - "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "1.4.6", "chromium-bidi": "0.4.16", @@ -19600,9 +16282,8 @@ }, "node_modules/qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -19615,14 +16296,11 @@ }, "node_modules/queue-lit": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.0.tgz", - "integrity": "sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -19637,19 +16315,18 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/queue-tick": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ramda": { "version": "0.29.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", - "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/ramda" @@ -19657,18 +16334,16 @@ }, "node_modules/range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -19681,18 +16356,16 @@ }, "node_modules/raw-body/node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/react": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -19702,9 +16375,8 @@ }, "node_modules/react-colorful": { "version": "5.6.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", - "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", "dev": true, + "license": "MIT", "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" @@ -19712,9 +16384,8 @@ }, "node_modules/react-dom": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -19725,9 +16396,8 @@ }, "node_modules/react-remove-scroll": { "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", "dev": true, + "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", @@ -19750,9 +16420,8 @@ }, "node_modules/react-remove-scroll-bar": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", "dev": true, + "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.1", "tslib": "^2.0.0" @@ -19772,9 +16441,8 @@ }, "node_modules/react-style-singleton": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", "dev": true, + "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -19795,9 +16463,8 @@ }, "node_modules/read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -19810,9 +16477,8 @@ }, "node_modules/read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -19827,9 +16493,8 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -19840,9 +16505,8 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -19852,9 +16516,8 @@ }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -19867,9 +16530,8 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -19879,27 +16541,24 @@ }, "node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19911,9 +16570,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -19923,9 +16581,8 @@ }, "node_modules/recast": { "version": "0.23.4", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.4.tgz", - "integrity": "sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==", "dev": true, + "license": "MIT", "dependencies": { "assert": "^2.0.0", "ast-types": "^0.16.1", @@ -19939,18 +16596,16 @@ }, "node_modules/recast/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/rechoir": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -19960,15 +16615,13 @@ }, "node_modules/regenerate": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -19978,24 +16631,21 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -20010,9 +16660,8 @@ }, "node_modules/regexpu-core": { "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, + "license": "MIT", "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -20027,9 +16676,8 @@ }, "node_modules/regjsparser": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -20039,8 +16687,6 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -20048,9 +16694,8 @@ }, "node_modules/remark-external-links": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", - "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==", "dev": true, + "license": "MIT", "dependencies": { "extend": "^3.0.0", "is-absolute-url": "^3.0.0", @@ -20065,9 +16710,8 @@ }, "node_modules/remark-gfm": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-gfm": "^2.0.0", @@ -20081,9 +16725,8 @@ }, "node_modules/remark-slug": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", - "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==", "dev": true, + "license": "MIT", "dependencies": { "github-slugger": "^1.0.0", "mdast-util-to-string": "^1.0.0", @@ -20096,9 +16739,8 @@ }, "node_modules/remark-slug/node_modules/mdast-util-to-string": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -20106,36 +16748,32 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/requireindex": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.5" } }, "node_modules/resolve": { "version": "1.22.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", - "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -20150,9 +16788,8 @@ }, "node_modules/resolve-dir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -20163,18 +16800,16 @@ }, "node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-path": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", "dev": true, + "license": "MIT", "dependencies": { "http-errors": "~1.6.2", "path-is-absolute": "1.0.1" @@ -20185,18 +16820,16 @@ }, "node_modules/resolve-path/node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/resolve-path/node_modules/http-errors": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -20209,39 +16842,34 @@ }, "node_modules/resolve-path/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/resolve-path/node_modules/setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/resolve-path/node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -20252,9 +16880,8 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -20262,9 +16889,8 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -20277,9 +16903,8 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -20296,10 +16921,9 @@ } }, "node_modules/rollup": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.4.tgz", - "integrity": "sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==", + "version": "4.9.5", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -20311,27 +16935,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.4", - "@rollup/rollup-android-arm64": "4.9.4", - "@rollup/rollup-darwin-arm64": "4.9.4", - "@rollup/rollup-darwin-x64": "4.9.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.4", - "@rollup/rollup-linux-arm64-gnu": "4.9.4", - "@rollup/rollup-linux-arm64-musl": "4.9.4", - "@rollup/rollup-linux-riscv64-gnu": "4.9.4", - "@rollup/rollup-linux-x64-gnu": "4.9.4", - "@rollup/rollup-linux-x64-musl": "4.9.4", - "@rollup/rollup-win32-arm64-msvc": "4.9.4", - "@rollup/rollup-win32-ia32-msvc": "4.9.4", - "@rollup/rollup-win32-x64-msvc": "4.9.4", + "@rollup/rollup-android-arm-eabi": "4.9.5", + "@rollup/rollup-android-arm64": "4.9.5", + "@rollup/rollup-darwin-arm64": "4.9.5", + "@rollup/rollup-darwin-x64": "4.9.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.5", + "@rollup/rollup-linux-arm64-gnu": "4.9.5", + "@rollup/rollup-linux-arm64-musl": "4.9.5", + "@rollup/rollup-linux-riscv64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-musl": "4.9.5", + "@rollup/rollup-win32-arm64-msvc": "4.9.5", + "@rollup/rollup-win32-ia32-msvc": "4.9.5", + "@rollup/rollup-win32-x64-msvc": "4.9.5", "fsevents": "~2.3.2" } }, "node_modules/rollup-plugin-esbuild": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.0.tgz", - "integrity": "sha512-HPpXU65V8bSpW8eSYPahtUJaJHmbxJGybuf/M8B3bz/6i11YaYHlNNJIQ38gSEV0FyohQOgVxJ2YMEEZtEmwvA==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.5", "debug": "^4.3.4", @@ -20348,15 +16971,13 @@ }, "node_modules/rollup-plugin-esbuild/node_modules/es-module-lexer": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rollup-plugin-import-css": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-import-css/-/rollup-plugin-import-css-3.4.0.tgz", - "integrity": "sha512-997dJi7M7yYFn7tZer/UVt72mh4GH/hHBv48j3V4jsGSg+1DdYUXn+QB9SMMCNKF99pSv6QXmIOLTyeuijIsgg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.4" }, @@ -20369,26 +16990,22 @@ }, "node_modules/rollup-plugin-web-worker-loader": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.6.1.tgz", - "integrity": "sha512-4QywQSz1NXFHKdyiou16mH3ijpcfLtLGOrAqvAqu1Gx+P8+zj+3gwC2BSL/VW1d+LW4nIHC8F7d7OXhs9UdR2A==", "dev": true, + "license": "MIT", "peerDependencies": { "rollup": "^1.9.2 || ^2.0.0" } }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -20404,23 +17021,22 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/sade": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, + "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -20430,9 +17046,8 @@ }, "node_modules/safe-array-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -20448,15 +17063,13 @@ }, "node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/safe-regex-test": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -20468,33 +17081,29 @@ }, "node_modules/safe-stable-stringify": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/scheduler": { "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/schema-utils": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", - "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -20511,9 +17120,8 @@ }, "node_modules/schema-utils/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -20527,24 +17135,21 @@ }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/send": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -20566,30 +17171,26 @@ }, "node_modules/send/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sentence-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "dev": true, + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -20598,9 +17199,8 @@ }, "node_modules/serve-static": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, + "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -20613,15 +17213,13 @@ }, "node_modules/set-cookie-parser": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/set-function-length": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", @@ -20634,9 +17232,8 @@ }, "node_modules/set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -20648,15 +17245,13 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -20666,9 +17261,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -20678,18 +17272,16 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -20701,15 +17293,13 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/simple-update-notifier": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -20719,9 +17309,8 @@ }, "node_modules/simple-update-notifier/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -20731,9 +17320,8 @@ }, "node_modules/simple-update-notifier/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -20746,30 +17334,26 @@ }, "node_modules/simple-update-notifier/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -20784,9 +17368,8 @@ }, "node_modules/slice-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -20799,9 +17382,8 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -20809,9 +17391,8 @@ }, "node_modules/snake-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -20819,9 +17400,8 @@ }, "node_modules/socks": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, + "license": "MIT", "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -20833,9 +17413,8 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -20847,27 +17426,24 @@ }, "node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -20875,18 +17451,16 @@ }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/space-separated-tokens": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -20894,9 +17468,8 @@ }, "node_modules/spdx-correct": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -20904,15 +17477,13 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -20920,30 +17491,26 @@ }, "node_modules/spdx-license-ids": { "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/stdin-discarder": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^5.0.0" }, @@ -20956,9 +17523,8 @@ }, "node_modules/stdin-discarder/node_modules/bl": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "inherits": "^2.0.4", @@ -20967,8 +17533,6 @@ }, "node_modules/stdin-discarder/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, "funding": [ { @@ -20984,6 +17548,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -20991,9 +17556,8 @@ }, "node_modules/stop-iteration-iterator": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", "dev": true, + "license": "MIT", "dependencies": { "internal-slot": "^1.0.4" }, @@ -21003,15 +17567,13 @@ }, "node_modules/store2": { "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==", - "dev": true + "dev": true, + "license": "(MIT OR GPL-3.0)" }, "node_modules/storybook": { "version": "7.6.7", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.7.tgz", - "integrity": "sha512-1Cd895dqYIT5MOUOCDlD73OTWoJubLq/sWC7AMzkMrLu76yD4Cu6f+wv1HDrRAheRaCaeT3yhYEhsMB6qHIcaA==", "dev": true, + "license": "MIT", "dependencies": { "@storybook/cli": "7.6.7" }, @@ -21026,24 +17588,21 @@ }, "node_modules/stream-read-all": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", - "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/stream-shift": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/streamx": { "version": "2.15.5", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", - "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", "dev": true, + "license": "MIT", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -21051,24 +17610,21 @@ }, "node_modules/strict-event-emitter": { "version": "0.4.6", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", - "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -21081,9 +17637,8 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -21095,21 +17650,18 @@ }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string.prototype.trim": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -21124,9 +17676,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -21138,9 +17689,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -21152,9 +17702,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -21165,9 +17714,8 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -21177,27 +17725,24 @@ }, "node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -21207,9 +17752,8 @@ }, "node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -21219,9 +17763,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -21231,15 +17774,13 @@ }, "node_modules/synchronous-promise": { "version": "2.0.17", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", - "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/table-layout": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", "dev": true, + "license": "MIT", "dependencies": { "@75lb/deep-merge": "^1.1.1", "array-back": "^6.2.2", @@ -21258,36 +17799,32 @@ }, "node_modules/table-layout/node_modules/array-back": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/table-layout/node_modules/typical": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tar": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -21302,9 +17839,8 @@ }, "node_modules/tar-fs": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", - "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dev": true, + "license": "MIT", "dependencies": { "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", @@ -21313,9 +17849,8 @@ }, "node_modules/tar-stream": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", "dev": true, + "license": "MIT", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -21324,24 +17859,21 @@ }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/telejson": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.2.0.tgz", - "integrity": "sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==", "dev": true, + "license": "MIT", "dependencies": { "memoizerific": "^1.11.3" } }, "node_modules/temp": { "version": "0.8.4", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", - "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", "dev": true, + "license": "MIT", "dependencies": { "rimraf": "~2.6.2" }, @@ -21351,18 +17883,16 @@ }, "node_modules/temp-dir": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/temp/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -21380,9 +17910,8 @@ }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -21392,9 +17921,8 @@ }, "node_modules/tempy": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", "dev": true, + "license": "MIT", "dependencies": { "del": "^6.0.0", "is-stream": "^2.0.0", @@ -21411,9 +17939,8 @@ }, "node_modules/tempy/node_modules/type-fest": { "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -21423,9 +17950,8 @@ }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -21437,9 +17963,8 @@ }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -21457,21 +17982,18 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -21479,15 +18001,13 @@ }, "node_modules/through2/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -21500,9 +18020,8 @@ }, "node_modules/tiny-glob": { "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", "dev": true, + "license": "MIT", "dependencies": { "globalyzer": "0.1.0", "globrex": "^0.1.2" @@ -21510,34 +18029,29 @@ }, "node_modules/tiny-invariant": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tinymce": { "version": "6.8.2", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.2.tgz", - "integrity": "sha512-Lho79o2Y1Yn+XdlTEkHTEkEmzwYWTXz7IUsvPwxJF3VTtgHUIAAuBab29kik+f2KED3rZvQavr9D7sHVMJ9x4A==" + "license": "MIT" }, "node_modules/tinymce-i18n": { "version": "23.12.4", - "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-23.12.4.tgz", - "integrity": "sha512-EIbYrJBasx7T2iZxJ2jQT1xz0ET+PKi/Fzv6KPte0suu1MrCVBYw3Thsne1TCzPbcashajevmFX5z2wQlXqssQ==" + "license": "MIT" }, "node_modules/title-case": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -21547,24 +18061,21 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -21574,24 +18085,21 @@ }, "node_modules/tocbot": { "version": "4.25.0", - "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.25.0.tgz", - "integrity": "sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/tr46": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -21601,9 +18109,8 @@ }, "node_modules/trough": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -21611,9 +18118,8 @@ }, "node_modules/ts-api-utils": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", - "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=16.13.0" }, @@ -21623,18 +18129,16 @@ }, "node_modules/ts-dedent": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.10" } }, "node_modules/ts-node": { "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -21675,24 +18179,21 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/ts-simple-type": { "version": "2.0.0-next.0", - "resolved": "https://registry.npmjs.org/ts-simple-type/-/ts-simple-type-2.0.0-next.0.tgz", - "integrity": "sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tsc-alias": { "version": "1.8.8", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.8.tgz", - "integrity": "sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": "^3.5.3", "commander": "^9.0.0", @@ -21707,18 +18208,16 @@ }, "node_modules/tsc-alias/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/tsconfck": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.1.tgz", - "integrity": "sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww==", "dev": true, + "license": "MIT", "bin": { "tsconfck": "bin/tsconfck.js" }, @@ -21736,9 +18235,8 @@ }, "node_modules/tsconfig-paths": { "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -21748,9 +18246,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -21759,24 +18256,21 @@ } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + "version": "2.6.2", + "license": "0BSD" }, "node_modules/tsscmp": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.x" } }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -21789,15 +18283,13 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -21807,9 +18299,8 @@ }, "node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -21819,9 +18310,8 @@ }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -21832,9 +18322,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -21846,9 +18335,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -21864,9 +18352,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -21883,9 +18370,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -21897,15 +18383,13 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typescript": { "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -21916,9 +18400,8 @@ }, "node_modules/typescript-json-schema": { "version": "0.62.0", - "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.62.0.tgz", - "integrity": "sha512-qRO6pCgyjKJ230QYdOxDRpdQrBeeino4v5p2rYmSD72Jf4rD3O+cJcROv46sQukm46CLWoeusqvBgKpynEv25g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@types/json-schema": "^7.0.9", "@types/node": "^16.9.2", @@ -21935,9 +18418,8 @@ }, "node_modules/typescript-json-schema/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -21955,9 +18437,8 @@ }, "node_modules/typescript-json-schema/node_modules/typescript": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -21968,17 +18449,14 @@ }, "node_modules/typical": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ua-parser-js": { "version": "1.0.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", - "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", "dev": true, "funding": [ { @@ -21990,21 +18468,20 @@ "url": "https://paypal.me/faisalman" } ], + "license": "MIT", "engines": { "node": "*" } }, "node_modules/ufo": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/uglify-js": { "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -22015,9 +18492,8 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -22030,9 +18506,8 @@ }, "node_modules/unbzip2-stream": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" @@ -22040,33 +18515,29 @@ }, "node_modules/unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -22077,27 +18548,24 @@ }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unified": { "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -22114,9 +18582,8 @@ }, "node_modules/unique-string": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, + "license": "MIT", "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -22126,9 +18593,8 @@ }, "node_modules/unist-util-is": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0" }, @@ -22139,9 +18605,8 @@ }, "node_modules/unist-util-stringify-position": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0" }, @@ -22152,9 +18617,8 @@ }, "node_modules/unist-util-visit": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", @@ -22167,9 +18631,8 @@ }, "node_modules/unist-util-visit-parents": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" @@ -22181,9 +18644,8 @@ }, "node_modules/unist-util-visit/node_modules/unist-util-is": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -22191,9 +18653,8 @@ }, "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" @@ -22204,28 +18665,25 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/unplugin": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz", - "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.11.2", "chokidar": "^3.5.3", @@ -22235,17 +18693,14 @@ }, "node_modules/untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/update-browserslist-db": { "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -22261,6 +18716,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -22274,36 +18730,32 @@ }, "node_modules/upper-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/use-callback-ref": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", - "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -22322,9 +18774,8 @@ }, "node_modules/use-resize-observer": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", - "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", "dev": true, + "license": "MIT", "dependencies": { "@juggle/resize-observer": "^3.3.1" }, @@ -22335,9 +18786,8 @@ }, "node_modules/use-sidecar": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", "dev": true, + "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -22357,9 +18807,8 @@ }, "node_modules/util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -22370,36 +18819,32 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/uvu": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", "dev": true, + "license": "MIT", "dependencies": { "dequal": "^2.0.0", "diff": "^5.0.0", @@ -22415,24 +18860,21 @@ }, "node_modules/uvu/node_modules/kleur": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/v8-to-istanbul": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -22444,18 +18886,16 @@ }, "node_modules/v8flags": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", - "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.13.0" } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -22463,18 +18903,16 @@ }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vfile": { "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -22488,9 +18926,8 @@ }, "node_modules/vfile-message": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" @@ -22502,9 +18939,8 @@ }, "node_modules/vite": { "version": "5.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz", - "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.19.3", "postcss": "^8.4.32", @@ -22557,9 +18993,8 @@ }, "node_modules/vite-plugin-static-copy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.0.tgz", - "integrity": "sha512-kMlrB3WDtC5GzFedNIPkpjnOAr8M11PfWOiUaONrUZ3AqogTsOmIhTt6w7Fh311wl8pN81ld7sfuOEogFJ9N8A==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": "^3.5.3", "fast-glob": "^3.2.11", @@ -22575,9 +19010,8 @@ }, "node_modules/vite-tsconfig-paths": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.3.tgz", - "integrity": "sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "globrex": "^0.1.2", @@ -22594,10 +19028,8 @@ }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -22608,18 +19040,16 @@ }, "node_modules/walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, "node_modules/watchpack": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -22630,18 +19060,16 @@ }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/web-component-analyzer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/web-component-analyzer/-/web-component-analyzer-2.0.0.tgz", - "integrity": "sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "^3.2.2", "ts-simple-type": "2.0.0-next.0", @@ -22655,9 +19083,8 @@ }, "node_modules/web-component-analyzer/node_modules/typescript": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -22668,9 +19095,8 @@ }, "node_modules/web-component-analyzer/node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -22686,9 +19112,8 @@ }, "node_modules/web-encoding": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", "dev": true, + "license": "MIT", "dependencies": { "util": "^0.12.3" }, @@ -22698,33 +19123,29 @@ }, "node_modules/webidl-conversions": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/webpack-virtual-modules": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz", - "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/whatwg-url": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -22735,9 +19156,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -22750,9 +19170,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -22766,9 +19185,8 @@ }, "node_modules/which-collection": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.1", "is-set": "^2.0.1", @@ -22781,9 +19199,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", @@ -22800,24 +19217,21 @@ }, "node_modules/wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wordwrapjs": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -22833,9 +19247,8 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -22850,9 +19263,8 @@ }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -22865,9 +19277,8 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -22880,15 +19291,13 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -22899,9 +19308,8 @@ }, "node_modules/ws": { "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -22920,33 +19328,29 @@ }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -22962,18 +19366,16 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -22981,27 +19383,24 @@ }, "node_modules/ylru": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -23011,9 +19410,8 @@ }, "node_modules/zwitch": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" From 3e4c66c2102794680fefd2229162f07b4ec03cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 09:37:01 +0100 Subject: [PATCH 399/786] create block methods --- .../manager/block-list-manager.context.ts | 15 +++++++++++++ .../property-editor-ui-block-list.element.ts | 14 +++--------- .../block/block/context/block.context.ts | 4 ++-- .../block/manager/block-manager.context.ts | 22 +++++++++++++++---- 4 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts new file mode 100644 index 0000000000..4e72075956 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts @@ -0,0 +1,15 @@ +import { UmbBlockManagerContext } from '@umbraco-cms/backoffice/block'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { buildUdi } from '@umbraco-cms/backoffice/utils'; + +export class UmbBlockListManagerContext extends UmbBlockManagerContext { + createBlock(contentElementTypeKey: string) { + return super._createBlockData({}, contentElementTypeKey); + } +} + +export const UMB_BLOCK_LIST_MANAGER_CONTEXT = new UmbContextToken< + UmbBlockListManagerContext, + UmbBlockListManagerContext +>('UmbBlockManagerContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 9c0e5383db..dbdc8f8110 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -7,16 +7,14 @@ import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/ import { UMB_BLOCK_CATALOGUE_MODAL, UmbBlockLayoutBaseModel, - UmbBlockManagerContext, UmbBlockTypeBase, type UmbBlockValueType, } from '@umbraco-cms/backoffice/block'; import '../../components/block-list-block/index.js'; -import { buildUdi } from '@umbraco-cms/backoffice/utils'; -import { UmbId } from '@umbraco-cms/backoffice/id'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { UmbBlockListManagerContext } from '../../manager/block-list-manager.context.js'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} @@ -73,7 +71,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement @state() private _blocks?: Array; - #context = new UmbBlockManagerContext(this); + #context = new UmbBlockListManagerContext(this); @state() _layouts: Array = []; @@ -133,13 +131,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement if (!block?.contentElementTypeKey) return; - this.#context.createBlock( - { - contentUdi: buildUdi('element', UmbId.new()), - settingsUdi: buildUdi('element', UmbId.new()), - }, - block.contentElementTypeKey, - ); + this.#context.createBlock(block.contentElementTypeKey); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index 9d0f8daa21..155b5ec29b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -1,6 +1,6 @@ import type { UmbBlockTypeBase } from '../../block-type/types.js'; import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; -import { UMB_BLOCK_MANAGER_CONTEXT, type UmbBlockManagerContext } from '../manager/index.js'; +import { UMB_BLOCK_MANAGER_CONTEXT } from '../manager/index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -11,7 +11,7 @@ export class UmbBlockContext< BlockLayoutType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, > extends UmbContextBase { // - #manager?: UmbBlockManagerContext; + #manager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; #blockTypeName = new UmbStringState(undefined); public readonly blockTypeName = this.#blockTypeName.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 03d0a98523..64f7b72dd6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -5,14 +5,15 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; +import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; import { UmbBlockTypeBase } from '@umbraco-cms/backoffice/block'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { UmbId } from '@umbraco-cms/backoffice/id'; // TODO: We are using backend model here, I think we should get our own model: type ElementTypeModel = DocumentTypeResponseModel; -export class UmbBlockManagerContext< +export abstract class UmbBlockManagerContext< BlockType extends UmbBlockTypeBase = UmbBlockTypeBase, BlockLayoutType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, > extends UmbContextBase { @@ -124,14 +125,23 @@ export class UmbBlockManagerContext< this.#settings.appendOne(settingsData); } - createBlock(layoutEntry: BlockLayoutType, contentElementTypeKey: string) { + abstract createBlock(contentElementTypeKey: string): boolean; + + protected _createBlockData(layoutEntry: Omit, contentElementTypeKey: string) { // Find block type. const blockType = this.#blockTypes.value.find((x) => x.contentElementTypeKey === contentElementTypeKey); if (!blockType) { throw new Error(`Cannot create block, missing block type for ${contentElementTypeKey}`); + return false; } - this.#layouts.appendOne(layoutEntry); + // Create layout entry: + layoutEntry.contentUdi = buildUdi('element', UmbId.new()); + if (blockType.settingsElementTypeKey) { + layoutEntry.settingsUdi = buildUdi('element', UmbId.new()); + } + + this.#layouts.appendOne(layoutEntry as BlockLayoutType); // Create content entry: if (layoutEntry.contentUdi) { @@ -141,6 +151,7 @@ export class UmbBlockManagerContext< }); } else { throw new Error('Cannot create block, missing contentUdi'); + return false; } //Create settings entry: @@ -152,8 +163,11 @@ export class UmbBlockManagerContext< }); } else { throw new Error('Cannot create block, missing settingsUdi'); + return false; } } + + return true; } deleteBlock(contentUdi: string) { From 1d242bced3850aa9c48dff3b36d167ce27e348b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 09:38:30 +0100 Subject: [PATCH 400/786] prop correction --- .../block/manager/block-manager.context.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 64f7b72dd6..a823065669 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -136,18 +136,21 @@ export abstract class UmbBlockManagerContext< } // Create layout entry: - layoutEntry.contentUdi = buildUdi('element', UmbId.new()); + const fullLayoutEntry: BlockLayoutType = { + ...(layoutEntry as BlockLayoutType), + contentUdi: buildUdi('element', UmbId.new()), + }; if (blockType.settingsElementTypeKey) { - layoutEntry.settingsUdi = buildUdi('element', UmbId.new()); + fullLayoutEntry.settingsUdi = buildUdi('element', UmbId.new()); } - this.#layouts.appendOne(layoutEntry as BlockLayoutType); + this.#layouts.appendOne(fullLayoutEntry); // Create content entry: - if (layoutEntry.contentUdi) { + if (fullLayoutEntry.contentUdi) { this.#contents.appendOne({ contentTypeKey: contentElementTypeKey, - udi: layoutEntry.contentUdi, + udi: fullLayoutEntry.contentUdi, }); } else { throw new Error('Cannot create block, missing contentUdi'); @@ -156,10 +159,10 @@ export abstract class UmbBlockManagerContext< //Create settings entry: if (blockType.settingsElementTypeKey) { - if (layoutEntry.settingsUdi) { + if (fullLayoutEntry.settingsUdi) { this.#contents.appendOne({ contentTypeKey: blockType.settingsElementTypeKey, - udi: layoutEntry.settingsUdi, + udi: fullLayoutEntry.settingsUdi, }); } else { throw new Error('Cannot create block, missing settingsUdi'); From 7a667efe1b6e39208a27dd756838fcab4c947438 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 18 Jan 2024 09:40:47 +0100 Subject: [PATCH 401/786] block input groups --- .../manifests.ts | 13 +++ ...-block-grid-group-configuration.element.ts | 61 ++++++++++ ...-block-grid-group-configuration.stories.ts | 15 +++ ...i-block-grid-type-configuration.element.ts | 54 +++++++-- .../block-grid/property-editors/manifests.ts | 9 +- .../src/packages/block/block-grid/types.ts | 5 + .../input-block-type.element.ts | 109 ++++++++++++++++-- 7 files changed, 250 insertions(+), 16 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/manifests.ts new file mode 100644 index 0000000000..7bb496f59d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/manifests.ts @@ -0,0 +1,13 @@ +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: ManifestPropertyEditorUi = { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.BlockTypeGroupConfiguration', + name: 'Block Grid Group Configuration Property Editor UI', + js: () => import('./property-editor-ui-block-grid-group-configuration.element.js'), + meta: { + label: '', + icon: 'icon-box-alt', + group: 'common', + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts new file mode 100644 index 0000000000..b26157b711 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts @@ -0,0 +1,61 @@ +import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit'; +import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { BlockGridGroupConfigration } from '@umbraco-cms/backoffice/block'; + +@customElement('umb-property-editor-ui-block-grid-group-configuration') +export class UmbPropertyEditorUIBlockGridGroupConfigurationElement + extends UmbLitElement + implements UmbPropertyEditorUiElement +{ + private _value: Array = []; + + @property({ type: Array }) + public get value(): Array { + return this._value; + } + public set value(value: Array) { + this._value = value || []; + } + + @property({ attribute: false }) + public set config(config: UmbPropertyEditorConfigCollection | undefined) {} + + #addGroup() { + if (Array.isArray(this.value)) { + this.value = [...this.value, { name: 'Unnamed group', key: UmbId.new() }]; + } else { + this.value = [{ name: 'Unnamed group', key: UmbId.new() }]; + } + + this.dispatchEvent(new CustomEvent('property-value-change')); + } + + render() { + return html` + + ${this.localize.term('blockEditor_addBlockGroup')} + + `; + } + + static styles = [ + UmbTextStyles, + css` + uui-button { + display: block; + } + `, + ]; +} + +export default UmbPropertyEditorUIBlockGridGroupConfigurationElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-property-editor-ui-block-grid-group-configuration': UmbPropertyEditorUIBlockGridGroupConfigurationElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts new file mode 100644 index 0000000000..7e8cb00391 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts @@ -0,0 +1,15 @@ +import { Meta, Story } from '@storybook/web-components'; +import type { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-grid-group-configuration.element.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; + +import './property-editor-ui-block-grid-group-configuration.element.js'; + +export default { + title: 'Property Editor UIs/Block Grid Group Configuration', + component: 'umb-property-editor-ui-block-grid-group-configuration', + id: 'umb-property-editor-ui-block-grid-group-configuration', +} as Meta; + +export const AAAOverview: Story = () => + html` `; +AAAOverview.storyName = 'Overview'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 94be84645b..c5b918799c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,10 +1,12 @@ -import type { UmbBlockTypeBase, UmbInputBlockTypeElement } from '../../../block-type/index.js'; +import type { UmbBlockTypeWithGroupKey, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { BlockGridGroupConfigration } from '@umbraco-cms/backoffice/block'; /** * @element umb-property-editor-ui-block-grid-type-configuration @@ -14,22 +16,60 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement extends UmbLitElement implements UmbPropertyEditorUiElement { + #context?: UmbPropertyDatasetContext; + @property({ attribute: false }) - value: UmbBlockTypeBase[] = []; + value: UmbBlockTypeWithGroupKey[] = []; @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; + @state() + private _blockGroups: Array = []; + + // @state() + // private _groups: Array<{ name: string; key: string | null; blocks: UmbBlockTypeWithGroupKey[] }> = []; + + constructor() { + super(); + this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, async (instance) => { + this.#context = instance; + this.#observeProperties(); + }); + } + + async #observeProperties() { + if (!this.#context) return; + + this.observe(await this.#context.propertyValueByAlias('blockGroups'), (value) => { + this._blockGroups = value as Array; + }); + } + render() { return html` { - this.value = (e.target as UmbInputBlockTypeElement).value; - }}>`; + @change=${(e: Event) => (this.value = (e.target as UmbInputBlockTypeElement).value)}>`; } - static styles = [UmbTextStyles]; + static styles = [ + UmbTextStyles, + css` + uui-input { + margin-top: var(--uui-size-6); + margin-bottom: var(--uui-size-4); + } + + uui-input:not(:hover, :focus) { + border: 1px solid transparent; + } + uui-input:not(:hover, :focus) uui-button { + opacity: 0; + } + `, + ]; } export default UmbPropertyEditorUIBlockGridTypeConfigurationElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/manifests.ts index 11b3d055ed..f1737b0acd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/manifests.ts @@ -2,5 +2,12 @@ import { manifest as blockGridEditor } from './block-grid-editor/manifests.js'; import { manifest as blockGridLayoutStylesheet } from './block-grid-layout-stylesheet/manifests.js'; import { manifest as blockGridTypeConfiguration } from './block-grid-type-configuration/manifests.js'; import { manifest as blockGridColumnSpan } from './block-grid-column-span/manifests.js'; +import { manifest as blockGridGroupConfiguration } from './block-grid-group-configuration/manifests.js'; -export const manifests = [blockGridTypeConfiguration, blockGridEditor, blockGridLayoutStylesheet, blockGridColumnSpan]; +export const manifests = [ + blockGridTypeConfiguration, + blockGridEditor, + blockGridLayoutStylesheet, + blockGridColumnSpan, + blockGridGroupConfiguration, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts index 1a58b9ea39..f8dfc9f5f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts @@ -11,3 +11,8 @@ export interface UmbBlockGridType extends UmbBlockTypeBase { areas: Array; groupKey: null | string; } + +export interface BlockGridGroupConfigration { + name?: string; + key: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 622c77ed6a..ff15657cac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -1,4 +1,4 @@ -import { UmbBlockTypeBase } from '../../types.js'; +import { UmbBlockTypeBase, UmbBlockTypeGroup, UmbBlockTypeWithGroupKey } from '../../types.js'; import { UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, @@ -9,9 +9,14 @@ import '../block-type-card/index.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { BlockGridGroupConfigration } from '@umbraco-cms/backoffice/block'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; @customElement('umb-input-block-type') -export class UmbInputBlockTypeElement extends UmbLitElement { +export class UmbInputBlockTypeElement< + BlockType extends UmbBlockTypeWithGroupKey = UmbBlockTypeBase, +> extends UmbLitElement { // @property({ type: Array, attribute: false }) public get value() { @@ -19,6 +24,7 @@ export class UmbInputBlockTypeElement = []; + @property({ type: Array }) + public get groups(): Array { + return this.#groups; + } + public set groups(groups: Array) { + this.#groups = groups ?? []; + this.#mapValues(); + } + + #mapValues() { + const valuesWithNoGroup = this.value.filter( + // Look for values without a group, or with a group that is non existent. + (value) => !value.groupKey || this.#groups.find((group) => group.key !== value.groupKey), + ); + + const valuesWithGroup = this.#groups.map((group) => { + return { name: group.name, key: group.key, blocks: this.value.filter((value) => value.groupKey === group.key) }; + }); + + this._mappedGroups = [{ key: '', name: '', blocks: valuesWithNoGroup }, ...valuesWithGroup]; + } + @state() private _items: Array = []; + @state() + private _mappedGroups: Array }> = []; + @state() private _workspacePath?: string; @@ -55,8 +87,13 @@ export class UmbInputBlockTypeElement; + #context?: UmbPropertyDatasetContext; + constructor() { super(); + this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, async (instance) => { + this.#context = instance; + }); } create() { @@ -87,7 +124,7 @@ export class UmbInputBlockTypeElement x.contentElementTypeKey !== contentElementTypeKey); + this.value = this._items.filter((x) => x.contentElementTypeKey !== contentElementTypeKey); this.dispatchEvent(new UmbChangeEvent()); } @@ -95,11 +132,54 @@ export class UmbInputBlockTypeElement (group.key === key ? { ...group, name: groupName } : group)); + + this.#context?.setPropertyValue('blockGroups', groups); + } + + #deleteGroup(key: string) { + this.#context?.setPropertyValue( + 'blockGroups', + this.groups.filter((group) => group.key !== key), + ); + this.value = this.value.filter((block) => block.groupKey !== key); + this.dispatchEvent(new UmbChangeEvent()); + this.#mapValues(); + } + render() { - return html` - ${this._items ? repeat(this._items, (item) => item.contentElementTypeKey, this.#renderItem) : ''} - ${this.#renderButton()} - `; + return html`${repeat( + this._mappedGroups, + (group) => group.key + group.blocks, + (group) => + html` ${group.key + ? html` this.#renameGroup(e, group.key)}> + this.#deleteGroup(group.key)}> + + + ` + : ''} +
+ ${repeat( + group.blocks, + (block) => block.contentElementTypeKey, + (block) => + html` this.deleteItem(block.contentElementTypeKey)}> + `, + )} + ${this.#renderButton()} +
`, + )}`; } #renderButton() { @@ -123,7 +203,7 @@ export class UmbInputBlockTypeElement Date: Thu, 18 Jan 2024 10:00:57 +0100 Subject: [PATCH 402/786] update lockfile --- src/Umbraco.Web.UI.Client/package-lock.json | 8595 ++++++++++++------- 1 file changed, 5663 insertions(+), 2932 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index ef403c49d4..45242082bc 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -91,8 +91,9 @@ }, "node_modules/@75lb/deep-merge": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz", + "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==", "dev": true, - "license": "MIT", "dependencies": { "lodash.assignwith": "^4.2.0", "typical": "^7.1.1" @@ -103,24 +104,27 @@ }, "node_modules/@75lb/deep-merge/node_modules/typical": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -131,8 +135,9 @@ }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", "dev": true, - "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.6", @@ -142,13 +147,15 @@ }, "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -158,8 +165,9 @@ }, "node_modules/@aw-web-design/x-default-browser": { "version": "1.4.126", + "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz", + "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==", "dev": true, - "license": "MIT", "dependencies": { "default-browser-id": "3.0.0" }, @@ -169,8 +177,9 @@ }, "node_modules/@babel/code-frame": { "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -181,27 +190,29 @@ }, "node_modules/@babel/compat-data": { "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.5", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.5", - "@babel/parser": "^7.23.5", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -216,17 +227,13 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/generator": { - "version": "7.23.5", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.23.5", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -237,8 +244,9 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -248,8 +256,9 @@ }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -259,8 +268,9 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -274,8 +284,9 @@ }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", + "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -296,8 +307,9 @@ }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -312,8 +324,9 @@ }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -327,16 +340,18 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -347,8 +362,9 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -358,8 +374,9 @@ }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.23.0" }, @@ -369,8 +386,9 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -380,8 +398,9 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -398,8 +417,9 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -409,16 +429,18 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -433,8 +455,9 @@ }, "node_modules/@babel/helper-replace-supers": { "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.22.15", @@ -449,8 +472,9 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -460,8 +484,9 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -471,8 +496,9 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -482,32 +508,36 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.15", @@ -518,13 +548,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.5", + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", + "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5" + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" }, "engines": { "node": ">=6.9.0" @@ -532,8 +563,9 @@ }, "node_modules/@babel/highlight": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -544,9 +576,10 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.5", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -556,8 +589,9 @@ }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -570,8 +604,9 @@ }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -586,8 +621,9 @@ }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5" @@ -601,8 +637,9 @@ }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -612,8 +649,9 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -623,8 +661,9 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -634,8 +673,9 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -648,8 +688,9 @@ }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -659,8 +700,9 @@ }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -670,8 +712,9 @@ }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", + "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -684,8 +727,9 @@ }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -698,8 +742,9 @@ }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -712,8 +757,9 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -723,8 +769,9 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -734,8 +781,9 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -748,8 +796,9 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -759,8 +808,9 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -770,8 +820,9 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -781,8 +832,9 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -792,8 +844,9 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -803,8 +856,9 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -814,8 +868,9 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -828,8 +883,9 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -842,8 +898,9 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -856,8 +913,9 @@ }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -871,8 +929,9 @@ }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -885,8 +944,9 @@ }, "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", + "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -902,8 +962,9 @@ }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -918,8 +979,9 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -932,8 +994,9 @@ }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -946,8 +1009,9 @@ }, "node_modules/@babel/plugin-transform-class-properties": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -961,8 +1025,9 @@ }, "node_modules/@babel/plugin-transform-class-static-block": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -977,8 +1042,9 @@ }, "node_modules/@babel/plugin-transform-classes": { "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -998,8 +1064,9 @@ }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/template": "^7.22.15" @@ -1013,8 +1080,9 @@ }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1027,8 +1095,9 @@ }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1042,8 +1111,9 @@ }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1056,8 +1126,9 @@ }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1071,8 +1142,9 @@ }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1086,8 +1158,9 @@ }, "node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1101,8 +1174,9 @@ }, "node_modules/@babel/plugin-transform-flow-strip-types": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", + "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-flow": "^7.23.3" @@ -1116,8 +1190,9 @@ }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1131,8 +1206,9 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-function-name": "^7.23.0", @@ -1147,8 +1223,9 @@ }, "node_modules/@babel/plugin-transform-json-strings": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1162,8 +1239,9 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1176,8 +1254,9 @@ }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1191,8 +1270,9 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1205,8 +1285,9 @@ }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1220,8 +1301,9 @@ }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", @@ -1236,8 +1318,9 @@ }, "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", @@ -1253,8 +1336,9 @@ }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1268,8 +1352,9 @@ }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1283,8 +1368,9 @@ }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1297,8 +1383,9 @@ }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1312,8 +1399,9 @@ }, "node_modules/@babel/plugin-transform-numeric-separator": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1327,8 +1415,9 @@ }, "node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", @@ -1345,8 +1434,9 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.20" @@ -1360,8 +1450,9 @@ }, "node_modules/@babel/plugin-transform-optional-catch-binding": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1375,8 +1466,9 @@ }, "node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1391,8 +1483,9 @@ }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1405,8 +1498,9 @@ }, "node_modules/@babel/plugin-transform-private-methods": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1420,8 +1514,9 @@ }, "node_modules/@babel/plugin-transform-private-property-in-object": { "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.22.15", @@ -1437,8 +1532,9 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1451,8 +1547,9 @@ }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -1466,8 +1563,9 @@ }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1480,8 +1578,9 @@ }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1494,8 +1593,9 @@ }, "node_modules/@babel/plugin-transform-spread": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1509,8 +1609,9 @@ }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1523,8 +1624,9 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1537,8 +1639,9 @@ }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1551,8 +1654,9 @@ }, "node_modules/@babel/plugin-transform-typescript": { "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.23.6", @@ -1568,8 +1672,9 @@ }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1582,8 +1687,9 @@ }, "node_modules/@babel/plugin-transform-unicode-property-regex": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1597,8 +1703,9 @@ }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1612,8 +1719,9 @@ }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1627,8 +1735,9 @@ }, "node_modules/@babel/preset-env": { "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.8.tgz", + "integrity": "sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1720,8 +1829,9 @@ }, "node_modules/@babel/preset-flow": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz", + "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", @@ -1736,8 +1846,9 @@ }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1749,8 +1860,9 @@ }, "node_modules/@babel/preset-typescript": { "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", @@ -1767,8 +1879,9 @@ }, "node_modules/@babel/register": { "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", + "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", "dev": true, - "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -1785,8 +1898,9 @@ }, "node_modules/@babel/register/node_modules/find-cache-dir": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, - "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -1798,8 +1912,9 @@ }, "node_modules/@babel/register/node_modules/find-up": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -1809,8 +1924,9 @@ }, "node_modules/@babel/register/node_modules/locate-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -1821,8 +1937,9 @@ }, "node_modules/@babel/register/node_modules/make-dir": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, - "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -1833,8 +1950,9 @@ }, "node_modules/@babel/register/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -1847,8 +1965,9 @@ }, "node_modules/@babel/register/node_modules/p-locate": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -1858,16 +1977,18 @@ }, "node_modules/@babel/register/node_modules/path-exists": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/register/node_modules/pkg-dir": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -1877,23 +1998,26 @@ }, "node_modules/@babel/register/node_modules/semver": { "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/@babel/regjsgen": { "version": "0.8.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true }, "node_modules/@babel/runtime": { - "version": "7.22.3", + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", + "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", "dev": true, - "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -1901,8 +2025,9 @@ }, "node_modules/@babel/template": { "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/parser": "^7.22.15", @@ -1913,19 +2038,20 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.5", + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1933,9 +2059,10 @@ } }, "node_modules/@babel/types": { - "version": "7.23.5", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -1947,8 +2074,9 @@ }, "node_modules/@colors/colors": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -1956,8 +2084,9 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -1967,8 +2096,9 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1976,27 +2106,94 @@ }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", "dev": true, - "license": "MIT", "peerDependencies": { "react": ">=16.8.0" } }, - "node_modules/@esbuild/darwin-arm64": { + "node_modules/@esbuild/aix-ppc64": { "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", + "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -2005,10 +2202,299 @@ "node": ">=12" } }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -2020,17 +2506,19 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2051,13 +2539,25 @@ }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "Python-2.0" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2070,8 +2570,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2079,10 +2580,23 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2092,46 +2606,52 @@ }, "node_modules/@eslint/js": { "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@esm-bundle/chai": { "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", "dev": true, - "license": "MIT", "dependencies": { "@types/chai": "^4.2.12" } }, "node_modules/@fal-works/esbuild-plugin-global-externals": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", + "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", + "dev": true }, "node_modules/@floating-ui/core": { "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.3.tgz", + "integrity": "sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==", "dev": true, - "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/dom": { "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.4.tgz", + "integrity": "sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==", "dev": true, - "license": "MIT", "dependencies": { "@floating-ui/core": "^1.5.3", "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.5", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.6.tgz", + "integrity": "sha512-IB8aCRFxr8nFkdYZgH+Otd9EVQPJoynxeFRGTB8voPoZMRWo8XjYuCRgpI1btvuKY69XMiLnW+ym7zoBHM90Rw==", "dev": true, - "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.5.4" }, @@ -2142,26 +2662,51 @@ }, "node_modules/@floating-ui/utils": { "version": "0.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==", + "dev": true }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2171,19 +2716,22 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "dev": true, - "license": "BSD-3-Clause" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true }, "node_modules/@import-maps/resolve": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@import-maps/resolve/-/resolve-1.0.1.tgz", + "integrity": "sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==", + "dev": true }, "node_modules/@isaacs/cliui": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2198,8 +2746,9 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -2209,8 +2758,9 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -2220,13 +2770,15 @@ }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2241,8 +2793,9 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2255,8 +2808,9 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2271,8 +2825,9 @@ }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2286,16 +2841,18 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -2306,8 +2863,9 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -2317,8 +2875,9 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -2331,8 +2890,9 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -2342,16 +2902,18 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/schemas": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -2361,8 +2923,9 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -2386,8 +2949,9 @@ }, "node_modules/@jest/transform/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2400,8 +2964,9 @@ }, "node_modules/@jest/transform/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2413,23 +2978,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/transform/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2439,8 +3001,9 @@ }, "node_modules/@jest/types": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -2455,8 +3018,9 @@ }, "node_modules/@jest/types/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -2469,8 +3033,9 @@ }, "node_modules/@jest/types/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2484,16 +3049,18 @@ }, "node_modules/@jest/types/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/types/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2503,8 +3070,9 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2515,30 +3083,34 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.21", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", + "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2546,30 +3118,35 @@ }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true }, "node_modules/@juggle/resize-observer": { "version": "3.4.0", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "dev": true }, "node_modules/@lit-labs/ssr-dom-shim": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz", + "integrity": "sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==" }, "node_modules/@lit/reactive-element": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.3.tgz", + "integrity": "sha512-e067EuTNNgOHm1tZcc0Ia7TCzD/9ZpoPegHKgesrGK6pSDRGkGDAQbYuQclqLPIoJ9eC8Kb9mYtGryWcM5AywA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.1.2" } }, "node_modules/@ljharb/through": { "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -2579,13 +3156,15 @@ }, "node_modules/@mdn/browser-compat-data": { "version": "4.2.1", - "dev": true, - "license": "CC0-1.0" + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", + "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "dev": true }, "node_modules/@mdx-js/react": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", + "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdx": "^2.0.0", "@types/react": ">=16" @@ -2600,8 +3179,9 @@ }, "node_modules/@mswjs/cookies": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", + "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", "dev": true, - "license": "MIT", "dependencies": { "@types/set-cookie-parser": "^2.4.0", "set-cookie-parser": "^2.4.6" @@ -2612,8 +3192,9 @@ }, "node_modules/@mswjs/interceptors": { "version": "0.17.10", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz", + "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==", "dev": true, - "license": "MIT", "dependencies": { "@open-draft/until": "^1.0.3", "@types/debug": "^4.1.7", @@ -2630,16 +3211,18 @@ }, "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": { "version": "0.2.8", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", + "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", "dev": true, - "license": "MIT", "dependencies": { "events": "^3.3.0" } }, "node_modules/@ndelangen/get-tarball": { "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz", + "integrity": "sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==", "dev": true, - "license": "MIT", "dependencies": { "gunzip-maybe": "^1.4.2", "pump": "^3.0.0", @@ -2648,13 +3231,15 @@ }, "node_modules/@ndelangen/get-tarball/node_modules/chownr": { "version": "1.1.4", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true }, "node_modules/@ndelangen/get-tarball/node_modules/tar-fs": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, - "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -2664,8 +3249,9 @@ }, "node_modules/@ndelangen/get-tarball/node_modules/tar-stream": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -2679,8 +3265,9 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2691,16 +3278,18 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2711,18 +3300,21 @@ }, "node_modules/@open-draft/until": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "dev": true }, "node_modules/@open-wc/dedupe-mixin": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", + "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==", + "dev": true }, "node_modules/@open-wc/scoped-elements": { "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", + "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, - "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" @@ -2730,8 +3322,9 @@ }, "node_modules/@open-wc/semantic-dom-diff": { "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.20.1.tgz", + "integrity": "sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA==", "dev": true, - "license": "MIT", "dependencies": { "@types/chai": "^4.3.1", "@web/test-runner-commands": "^0.9.0" @@ -2739,8 +3332,9 @@ }, "node_modules/@open-wc/testing": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.2.2.tgz", + "integrity": "sha512-byN4dJTd6ZyI9mWmI4lVj30uiu+rYvQr93g64Pd7UFBdAUgb02DHLj6fkJ1gjxA6LC/MeFd7K7mOZ4+vKrMptw==", "dev": true, - "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", "@open-wc/semantic-dom-diff": "^0.20.0", @@ -2752,8 +3346,9 @@ }, "node_modules/@open-wc/testing-helpers": { "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.3.2.tgz", + "integrity": "sha512-uZMGC/C1m5EiwQsff6KMmCW25TYMQlJt4ilAWIjnelWGFg9HPUiLnlFvAas3ESUP+4OXLO8Oft7p4mHvbYvAEQ==", "dev": true, - "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^2.2.4", "lit": "^2.0.0 || ^3.0.0", @@ -2762,7 +3357,8 @@ }, "node_modules/@openid/appauth": { "version": "1.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@openid/appauth/-/appauth-1.3.1.tgz", + "integrity": "sha512-e54kpi219wES2ijPzeHe1kMnT8VKH8YeTd1GAn9BzVBmutz3tBgcG1y8a4pziNr4vNjFnuD4W446Ua7ELnNDiA==", "dependencies": { "@types/base64-js": "^1.3.0", "@types/jquery": "^3.5.5", @@ -2774,19 +3370,21 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "license": "MIT", "optional": true, "engines": { "node": ">=14" } }, "node_modules/@playwright/test": { - "version": "1.40.1", + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.0.tgz", + "integrity": "sha512-Grvzj841THwtpBOrfiHOeYTJQxDRnKofMSzCiV8XeyLWu3o89qftQ4BCKfkziJhSUQRd0utKhrddtIsiraIwmw==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "playwright": "1.40.1" + "playwright": "1.41.0" }, "bin": { "playwright": "cli.js" @@ -2797,8 +3395,9 @@ }, "node_modules/@puppeteer/browsers": { "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz", + "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "debug": "4.3.4", "extract-zip": "2.0.1", @@ -2823,26 +3422,47 @@ } } }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@radix-ui/number": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", + "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, "node_modules/@radix-ui/primitive": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, "node_modules/@radix-ui/react-arrow": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", + "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -2864,8 +3484,9 @@ }, "node_modules/@radix-ui/react-collection": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", + "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", @@ -2890,8 +3511,9 @@ }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -2907,8 +3529,9 @@ }, "node_modules/@radix-ui/react-context": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -2924,8 +3547,9 @@ }, "node_modules/@radix-ui/react-direction": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", + "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -2941,8 +3565,9 @@ }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", + "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -2968,8 +3593,9 @@ }, "node_modules/@radix-ui/react-focus-guards": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -2985,8 +3611,9 @@ }, "node_modules/@radix-ui/react-focus-scope": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", + "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1", @@ -3010,8 +3637,9 @@ }, "node_modules/@radix-ui/react-id": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.1" @@ -3028,8 +3656,9 @@ }, "node_modules/@radix-ui/react-popper": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz", + "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@floating-ui/react-dom": "^2.0.0", @@ -3060,8 +3689,9 @@ }, "node_modules/@radix-ui/react-portal": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", + "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -3083,8 +3713,9 @@ }, "node_modules/@radix-ui/react-primitive": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "1.0.2" @@ -3106,8 +3737,9 @@ }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", + "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3137,8 +3769,9 @@ }, "node_modules/@radix-ui/react-select": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-1.2.2.tgz", + "integrity": "sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/number": "1.0.1", @@ -3180,8 +3813,9 @@ }, "node_modules/@radix-ui/react-separator": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", + "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -3203,8 +3837,9 @@ }, "node_modules/@radix-ui/react-slot": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.1" @@ -3221,8 +3856,9 @@ }, "node_modules/@radix-ui/react-toggle": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz", + "integrity": "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3246,8 +3882,9 @@ }, "node_modules/@radix-ui/react-toggle-group": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz", + "integrity": "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3275,8 +3912,9 @@ }, "node_modules/@radix-ui/react-toolbar": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.0.4.tgz", + "integrity": "sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.1", @@ -3304,8 +3942,9 @@ }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3321,8 +3960,9 @@ }, "node_modules/@radix-ui/react-use-controllable-state": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.1" @@ -3339,8 +3979,9 @@ }, "node_modules/@radix-ui/react-use-escape-keydown": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.1" @@ -3357,8 +3998,9 @@ }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3374,8 +4016,9 @@ }, "node_modules/@radix-ui/react-use-previous": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", + "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -3391,8 +4034,9 @@ }, "node_modules/@radix-ui/react-use-rect": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", + "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/rect": "1.0.1" @@ -3409,8 +4053,9 @@ }, "node_modules/@radix-ui/react-use-size": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", + "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.1" @@ -3427,8 +4072,9 @@ }, "node_modules/@radix-ui/react-visually-hidden": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", + "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.3" @@ -3450,16 +4096,18 @@ }, "node_modules/@radix-ui/rect": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", + "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, "node_modules/@rollup/plugin-commonjs": { "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", + "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", @@ -3482,8 +4130,9 @@ }, "node_modules/@rollup/plugin-json": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.1.0" }, @@ -3501,8 +4150,9 @@ }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -3525,8 +4175,9 @@ }, "node_modules/@rollup/plugin-replace": { "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.5.tgz", + "integrity": "sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "magic-string": "^0.30.3" @@ -3545,8 +4196,9 @@ }, "node_modules/@rollup/pluginutils": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -3564,27 +4216,186 @@ } } }, - "node_modules/@rollup/rollup-darwin-arm64": { + "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz", + "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz", + "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz", + "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ] }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz", + "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz", + "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz", + "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz", + "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz", + "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", + "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz", + "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz", + "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz", + "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz", + "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, "node_modules/@storybook/addon-a11y": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-7.6.7.tgz", + "integrity": "sha512-poT2oXIYDwLnhqn6g9ACTQ+7gi8QDHVlib4TQANdcozC/qYg+Bs6Pd99wT6rT4lrC/npVNTSKKwLw+3oXqlCxg==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/addon-highlight": "7.6.7", "axe-core": "^4.2.0" @@ -3596,8 +4407,9 @@ }, "node_modules/@storybook/addon-actions": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.7.tgz", + "integrity": "sha512-+6EZvhIeKEqG/RNsU3R5DxOrd60BL5GEvmzE2w60s2eKaNNxtyilDjiO1g4z2s2zDNyr7JL/Ft03pJ0Jgo0lew==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/core-events": "7.6.7", "@storybook/global": "^5.0.0", @@ -3613,8 +4425,9 @@ }, "node_modules/@storybook/addon-backgrounds": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.7.tgz", + "integrity": "sha512-55sBy1YUqponAVe+qL16qtWxdf63vHEnIoqFyHEwGpk7K9IhFA1BmdSpFr5VnWEwXeJXKj30db78frh2LUdk3Q==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3", @@ -3627,8 +4440,9 @@ }, "node_modules/@storybook/addon-controls": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.7.tgz", + "integrity": "sha512-DJ3gfvcdCgqi7AQxu83vx0AEUKiuJrNcSATfWV3Jqi8dH6fYO2yqpemHEeWOEy+DAHxIOaqLKwb1QjIBj+vSRQ==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/blocks": "7.6.7", "lodash": "^4.17.21", @@ -3641,8 +4455,9 @@ }, "node_modules/@storybook/addon-docs": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.7.tgz", + "integrity": "sha512-2dfajNhweofJ3LxjGO83UE5sBMvKtJB0Agj7q8mMtK/9PUCUcbvsFSyZnO/s6X1zAjSn5ZrirbSoTXU4IqxwSA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", @@ -3675,8 +4490,9 @@ }, "node_modules/@storybook/addon-essentials": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.7.tgz", + "integrity": "sha512-nNLMrpIvc04z4XCA+kval/44eKAFJlUJeeL2pxwP7F/PSzjWe5BXv1bQHOiw8inRO5II0PzqwWnVCI9jsj7K5A==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/addon-actions": "7.6.7", "@storybook/addon-backgrounds": "7.6.7", @@ -3704,8 +4520,9 @@ }, "node_modules/@storybook/addon-highlight": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.7.tgz", + "integrity": "sha512-2F/tJdn45d4zrvf/cmE1vsczl99wK8+I+kkj0G7jLsrJR0w1zTgbgjy6T9j86HBTBvWcnysNFNIRWPAOh5Wdbw==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0" }, @@ -3716,8 +4533,9 @@ }, "node_modules/@storybook/addon-links": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.7.tgz", + "integrity": "sha512-O5LekPslkAIDtXC/TCIyg/3c0htBxDYwb/s+NrZUPTNWJsngxvTAwp6aIk6aVSeSCFUMWvBFcVsuV3hv+ndK6w==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", @@ -3738,8 +4556,9 @@ }, "node_modules/@storybook/addon-measure": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.7.tgz", + "integrity": "sha512-t1RnnNO4Xzgnsxu63FlZwsCTF0+9jKxr44NiJAUOxW9ppbCvs/JfSDOOvcDRtPWyjgnyzexNUUctMfxvLrU01A==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "tiny-invariant": "^1.3.1" @@ -3751,8 +4570,9 @@ }, "node_modules/@storybook/addon-outline": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.7.tgz", + "integrity": "sha512-gu2y46ijjMkXlxy1f8Cctgjw5b5y8vSIqNAYlrs5/Qy+hJAWyU6lj2PFGOCCUG4L+F45fAjwWAin6qz43+WnRQ==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", "ts-dedent": "^2.0.0" @@ -3764,8 +4584,9 @@ }, "node_modules/@storybook/addon-toolbars": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.7.tgz", + "integrity": "sha512-vT+YMzw8yVwndhJglI0XtELfXWq1M0HEy5ST3XPzbjmsJ54LgTf1b29UMkh0E/05qBQNFCcbT9B/tLxqWezxlg==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -3773,8 +4594,9 @@ }, "node_modules/@storybook/addon-viewport": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.7.tgz", + "integrity": "sha512-Q/BKjJaKzl4RWxH45K2iIXwkicj4ReVAUIpIyd7dPBb/Bx+hEDYZxR5dDg82AMkZdA71x5ttMnuDSuVpmWAE6g==", "dev": true, - "license": "MIT", "dependencies": { "memoizerific": "^1.11.3" }, @@ -3785,8 +4607,9 @@ }, "node_modules/@storybook/blocks": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.7.tgz", + "integrity": "sha512-+QEvGQ0he/YvFS3lsZORJWxhQIyqcCDWsxbJxJiByePd+Z4my3q8xwtPhHW0TKRL0xUgNE/GnTfMMqJfevTuSw==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -3823,8 +4646,9 @@ }, "node_modules/@storybook/builder-manager": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.7.tgz", + "integrity": "sha512-6HYpj6+g/qbDMvImVz/G/aANbkhppyBa1ozfHxLK7tRD79YvozCWmj2Z9umRekPv9VIeMxnI5EEzJXOsoMX5DQ==", "dev": true, - "license": "MIT", "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", "@storybook/core-common": "7.6.7", @@ -3848,61 +4672,11 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/builder-manager/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@storybook/builder-manager/node_modules/esbuild": { - "version": "0.18.20", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, "node_modules/@storybook/builder-vite": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.7.tgz", + "integrity": "sha512-Sv+0ROFU9k+mkvIPsPHC0lkKDzBeMpvfO9uFRl1RDSsXBfcPPZKNo5YK7U7fOhesH0BILzurGA+U/aaITMSZ9g==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -3945,8 +4719,9 @@ }, "node_modules/@storybook/builder-vite/node_modules/rollup": { "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, - "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -3960,8 +4735,9 @@ }, "node_modules/@storybook/channels": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.7.tgz", + "integrity": "sha512-u1hURhfQHHtZyRIDUENRCp+CRRm7IQfcjQaoWI06XCevQPuhVEtFUfXHjG+J74aA/JuuTLFUtqwNm1zGqbXTAQ==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/core-events": "7.6.7", @@ -3977,8 +4753,9 @@ }, "node_modules/@storybook/cli": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.7.tgz", + "integrity": "sha512-DwDWzkifBH17ry+n+d+u52Sv69dZQ+04ETJdDDzghcyAcKnFzrRNukj4tJ21cm+ZAU/r0fKR9d4Qpbogca9fAg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", @@ -4033,16 +4810,18 @@ }, "node_modules/@storybook/cli/node_modules/agent-base": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6.0.0" } }, "node_modules/@storybook/cli/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4053,10 +4832,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/@storybook/cli/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@storybook/cli/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4070,16 +4860,18 @@ }, "node_modules/@storybook/cli/node_modules/commander": { "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/@storybook/cli/node_modules/extract-zip": { "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -4092,16 +4884,18 @@ }, "node_modules/@storybook/cli/node_modules/extract-zip/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/@storybook/cli/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4119,16 +4913,18 @@ }, "node_modules/@storybook/cli/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@storybook/cli/node_modules/https-proxy-agent": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "5", "debug": "4" @@ -4139,8 +4935,9 @@ }, "node_modules/@storybook/cli/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4150,8 +4947,9 @@ }, "node_modules/@storybook/cli/node_modules/mime": { "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, - "license": "MIT", "bin": { "mime": "cli.js" }, @@ -4159,10 +4957,23 @@ "node": ">=4.0.0" } }, + "node_modules/@storybook/cli/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@storybook/cli/node_modules/mkdirp": { "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -4172,13 +4983,15 @@ }, "node_modules/@storybook/cli/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/@storybook/cli/node_modules/prettier": { "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -4191,8 +5004,9 @@ }, "node_modules/@storybook/cli/node_modules/puppeteer-core": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-2.1.1.tgz", + "integrity": "sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@types/mime-types": "^2.1.0", "debug": "^4.1.0", @@ -4211,8 +5025,9 @@ }, "node_modules/@storybook/cli/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -4222,8 +5037,9 @@ }, "node_modules/@storybook/cli/node_modules/semver": { "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4236,8 +5052,9 @@ }, "node_modules/@storybook/cli/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4247,21 +5064,24 @@ }, "node_modules/@storybook/cli/node_modules/ws": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, - "license": "MIT", "dependencies": { "async-limiter": "~1.0.0" } }, "node_modules/@storybook/cli/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@storybook/client-logger": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.7.tgz", + "integrity": "sha512-A16zpWgsa0gSdXMR9P3bWVdC9u/1B1oG4H7Z1+JhNzgnL3CdyOYO0qFSiAtNBso4nOjIAJVb6/AoBzdRhmSVQg==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0" }, @@ -4272,8 +5092,9 @@ }, "node_modules/@storybook/codemod": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.7.tgz", + "integrity": "sha512-an2pD5OHqO7CE8Wb7JxjrDnpQgeoxB22MyOs8PPJ9Rvclhpjg+Ku9RogoObYm//zR4g406l7Ec8mTltUkVCEOA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", @@ -4297,8 +5118,9 @@ }, "node_modules/@storybook/codemod/node_modules/prettier": { "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -4311,8 +5133,9 @@ }, "node_modules/@storybook/components": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.7.tgz", + "integrity": "sha512-1HN4p+MCI4Tx9VGZayZyqbW7SB7mXQLnS5fUbTE1gXaMYHpzFvcrRNROeV1LZPClJX6qx1jgE5ngZojhxGuxMA==", "dev": true, - "license": "MIT", "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", @@ -4336,8 +5159,9 @@ }, "node_modules/@storybook/core-client": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.7.tgz", + "integrity": "sha512-ZQivyEzYsZok8vRj5Qan7LbiMUnO89rueWzTnZs4IS6JIaQtjoPI1rGVq+h6qOCM6tki478hic8FS+zwGQ6q+w==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/preview-api": "7.6.7" @@ -4349,8 +5173,9 @@ }, "node_modules/@storybook/core-common": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.7.tgz", + "integrity": "sha512-F1fJnauVSPQtAlpicbN/O4XW38Ai8kf/IoU0Hgm9gEwurIk6MF5hiVLsaTI/5GUbrepMl9d9J+iIL4lHAT8IyA==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/core-events": "7.6.7", "@storybook/node-logger": "7.6.7", @@ -4381,33 +5206,20 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core-common/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.19.7", + "version": "18.19.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", + "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4418,18 +5230,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/core-common/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/@storybook/core-common/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4441,46 +5246,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/core-common/node_modules/esbuild": { - "version": "0.18.20", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, "node_modules/@storybook/core-common/node_modules/glob": { "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -4500,30 +5270,18 @@ }, "node_modules/@storybook/core-common/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/@storybook/core-common/node_modules/minimatch": { - "version": "9.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@storybook/core-common/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4533,8 +5291,9 @@ }, "node_modules/@storybook/core-events": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.7.tgz", + "integrity": "sha512-KZ5d03c47pnr5/kY26pJtWq7WpmCPXLbgyjJZDSc+TTY153BdZksvlBXRHtqM1yj2UM6QsSyIuiJaADJNAbP2w==", "dev": true, - "license": "MIT", "dependencies": { "ts-dedent": "^2.0.0" }, @@ -4545,8 +5304,9 @@ }, "node_modules/@storybook/core-server": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.7.tgz", + "integrity": "sha512-elKRv/DNahNNkGcQY/FdOBrLPmZF0T0fwmAmbc4qqeAisjl+to9TO77zdo2ieaEHKyRwE3B3dOB4EXomdF4N/g==", "dev": true, - "license": "MIT", "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", @@ -4596,17 +5356,19 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.7", + "version": "18.19.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", + "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/core-server/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4619,8 +5381,9 @@ }, "node_modules/@storybook/core-server/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4634,16 +5397,18 @@ }, "node_modules/@storybook/core-server/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@storybook/core-server/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4653,8 +5418,9 @@ }, "node_modules/@storybook/core-server/node_modules/semver": { "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4667,8 +5433,9 @@ }, "node_modules/@storybook/core-server/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4678,21 +5445,24 @@ }, "node_modules/@storybook/core-server/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@storybook/csf": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.2.tgz", + "integrity": "sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^2.19.0" } }, "node_modules/@storybook/csf-plugin": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.7.tgz", + "integrity": "sha512-YL7e6H4iVcsDI0UpgpdQX2IiGDrlbgaQMHQgDLWXmZyKxBcy0ONROAX5zoT1ml44EHkL60TMaG4f7SinviJCog==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/csf-tools": "7.6.7", "unplugin": "^1.3.1" @@ -4704,8 +5474,9 @@ }, "node_modules/@storybook/csf-tools": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.7.tgz", + "integrity": "sha512-hyRbUGa2Uxvz3U09BjcOfMNf/5IYgRum1L6XszqK2O8tK9DGte1r6hArCIAcqiEmFMC40d0kalPzqu6WMNn7sg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/generator": "^7.23.0", "@babel/parser": "^7.23.0", @@ -4724,13 +5495,15 @@ }, "node_modules/@storybook/docs-mdx": { "version": "0.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", + "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==", + "dev": true }, "node_modules/@storybook/docs-tools": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.7.tgz", + "integrity": "sha512-enTO/xVjBqwUraGCYTwdyjMvug3OSAM7TPPUEJ3KPieJNwAzcYkww/qNDMIAR4S39zPMrkAmtS3STvVadlJz7g==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/core-common": "7.6.7", "@storybook/preview-api": "7.6.7", @@ -4747,13 +5520,15 @@ }, "node_modules/@storybook/global": { "version": "5.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", + "dev": true }, "node_modules/@storybook/manager": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.7.tgz", + "integrity": "sha512-ZCrkB2zEXogzdOcVzD242ZVm4tlHqrayotnI6iOn9uiun0Pgny0m2d7s9Zge6K2dTOO1vZiOHuA/Mr6nnIDjsA==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -4761,8 +5536,9 @@ }, "node_modules/@storybook/manager-api": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.7.tgz", + "integrity": "sha512-3Wk/BvuGUlw/X05s57zZO7gJbzfUeE9Xe+CSIvuH7RY5jx9PYnNwqNlTXPXhJ5LPvwMthae7WJVn3SuBpbptoQ==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -4786,13 +5562,15 @@ }, "node_modules/@storybook/mdx2-csf": { "version": "1.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz", + "integrity": "sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==", + "dev": true }, "node_modules/@storybook/node-logger": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.7.tgz", + "integrity": "sha512-XLih8MxylkpZG9+8tgp8sPGc2tldlWF+DpuAkUv6J3Mc81mPyc3cQKQWZ7Hb+m1LpRGqKV4wyOQj1rC+leVMoQ==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -4800,8 +5578,9 @@ }, "node_modules/@storybook/postinstall": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.7.tgz", + "integrity": "sha512-mrpRmcwFd9FcvtHPXA9x6vOrHLVCKScZX/Xx2QPWgAvB3W6uzP8G+8QNb1u834iToxrWeuszUMB9UXZK4Qj5yg==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -4809,8 +5588,9 @@ }, "node_modules/@storybook/preview": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.7.tgz", + "integrity": "sha512-/ddKIyT+6b8CKGJAma1wood4nwCAoi/E1olCqgpCmviMeUtAiMzgK0xzPwvq5Mxkz/cPeXVi8CQgaQZCa4yvNA==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -4818,8 +5598,9 @@ }, "node_modules/@storybook/preview-api": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", + "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@storybook/client-logger": "7.6.7", @@ -4843,8 +5624,9 @@ }, "node_modules/@storybook/react-dom-shim": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.7.tgz", + "integrity": "sha512-b/rmy/YzVrwP+ifyZG4yXVIdeFVdTbmziodHUlbrWiUNsqtTZZur9kqkKRUH/7ofji9MFe81nd0MRlcTNFomqg==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" @@ -4856,8 +5638,9 @@ }, "node_modules/@storybook/router": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.7.tgz", + "integrity": "sha512-kkhNSdC3fXaQxILg8a26RKk4/ZbF/AUVrepUEyO8lwvbJ6LItTyWSE/4I9Ih4qV2Mjx33ncc8vLqM9p8r5qnMA==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "memoizerific": "^1.11.3", @@ -4870,8 +5653,9 @@ }, "node_modules/@storybook/telemetry": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.7.tgz", + "integrity": "sha512-NHGzC/LGLXpK4AFbVj8ln5ab86ZiiNFvORQMn3+LNGwUt3ZdsHBzExN+WPZdw7OPtfk4ubUY89FXH2GedhTALw==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/core-common": "7.6.7", @@ -4889,8 +5673,9 @@ }, "node_modules/@storybook/telemetry/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4903,8 +5688,9 @@ }, "node_modules/@storybook/telemetry/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4918,16 +5704,18 @@ }, "node_modules/@storybook/telemetry/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@storybook/telemetry/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -4937,8 +5725,9 @@ }, "node_modules/@storybook/theming": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.7.tgz", + "integrity": "sha512-+42rfC4rZtWVAXJ7JBUQKnQ6vWBXJVHZ9HtNUWzQLPR9sJSMmHnnSMV6y5tizGgZqmBnAIkuoYk+Tt6NfwUmSA==", "dev": true, - "license": "MIT", "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", "@storybook/client-logger": "7.6.7", @@ -4956,8 +5745,9 @@ }, "node_modules/@storybook/types": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.7.tgz", + "integrity": "sha512-VcGwrI4AkBENxkoAUJ+Z7SyMK73hpoY0TTtw2J7tc05/xdiXhkQTX15Qa12IBWIkoXCyNrtaU+q7KR8Tjzi+uw==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/channels": "7.6.7", "@types/babel__core": "^7.0.0", @@ -4971,8 +5761,9 @@ }, "node_modules/@storybook/web-components": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.7.tgz", + "integrity": "sha512-TrBhMctSIgV2qqyV7fhhaNIdAvuaca2jEDXLXFiH/M2NkyXRepNjG7AZndWhQUGvG01ojs1+2vRNqJZtKCmFDg==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/client-logger": "7.6.7", "@storybook/core-client": "7.6.7", @@ -4997,8 +5788,9 @@ }, "node_modules/@storybook/web-components-vite": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.7.tgz", + "integrity": "sha512-jfnVNhmgDYBdEnOliNcfo9FwfDDke66y6Zw2zkOz9qhJy8DCd5TzgDEmE7AU2XRzb1a464A90xfvJpvlUracfA==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/builder-vite": "7.6.7", "@storybook/core-server": "7.6.7", @@ -5016,46 +5808,54 @@ }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true }, "node_modules/@types/accepts": { - "version": "1.3.5", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/babel__code-frame": { - "version": "7.0.3", - "dev": true, - "license": "MIT" + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.6.tgz", + "integrity": "sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==", + "dev": true }, "node_modules/@types/babel__core": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -5066,16 +5866,18 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -5083,42 +5885,48 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/base64-js": { - "version": "1.3.0", - "license": "MIT" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/base64-js/-/base64-js-1.3.2.tgz", + "integrity": "sha512-Q2Xn2/vQHRGLRXhQ5+BSLwhHkR3JVflxVKywH0Q6fVoAiUE8fFYL2pE5/l2ZiOiBDfA8qUqRnSxln4G/NFz1Sg==" }, "node_modules/@types/body-parser": { - "version": "1.19.2", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, - "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/chai": { - "version": "4.3.5", - "dev": true, - "license": "MIT" + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz", + "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==", + "dev": true }, "node_modules/@types/chai-dom": { "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@types/chai-dom/-/chai-dom-1.11.3.tgz", + "integrity": "sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/chai": "*" } }, "node_modules/@types/co-body": { - "version": "6.1.0", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.3.tgz", + "integrity": "sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*" @@ -5126,36 +5934,42 @@ }, "node_modules/@types/command-line-args": { "version": "5.2.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", + "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", + "dev": true }, "node_modules/@types/connect": { - "version": "3.4.35", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/content-disposition": { - "version": "0.5.5", - "dev": true, - "license": "MIT" + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", + "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==", + "dev": true }, "node_modules/@types/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.3.tgz", + "integrity": "sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==", + "dev": true }, "node_modules/@types/cookie": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true }, "node_modules/@types/cookies": { - "version": "0.7.7", + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.10.tgz", + "integrity": "sha512-hmUCjAk2fwZVPPkkPBcI7jGLIR5mg4OVoNMBwU6aVsMm/iNPY7z9/R+x2fSwLt/ZXoGua6C5Zy2k5xOo9jUyhQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -5165,61 +5979,71 @@ }, "node_modules/@types/cross-spawn": { "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/debounce": { - "version": "1.2.1", - "dev": true, - "license": "MIT" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz", + "integrity": "sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==", + "dev": true }, "node_modules/@types/debug": { - "version": "4.1.8", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/detect-port": { "version": "1.3.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.5.tgz", + "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==", + "dev": true }, "node_modules/@types/doctrine": { "version": "0.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==", + "dev": true }, "node_modules/@types/dompurify": { "version": "3.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz", + "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==", "dependencies": { "@types/trusted-types": "*" } }, "node_modules/@types/ejs": { "version": "3.1.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==", + "dev": true }, "node_modules/@types/emscripten": { "version": "1.39.10", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.10.tgz", + "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==", + "dev": true }, "node_modules/@types/estree": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true }, "node_modules/@types/express": { - "version": "4.17.17", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -5228,9 +6052,10 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -5240,93 +6065,108 @@ }, "node_modules/@types/find-cache-dir": { "version": "3.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz", + "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", + "dev": true }, "node_modules/@types/fined": { - "version": "1.1.4", - "dev": true, - "license": "MIT" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.5.tgz", + "integrity": "sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==", + "dev": true }, "node_modules/@types/graceful-fs": { "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-assert": { - "version": "1.5.3", - "dev": true, - "license": "MIT" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz", + "integrity": "sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==", + "dev": true }, "node_modules/@types/http-errors": { - "version": "2.0.1", - "dev": true, - "license": "MIT" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true }, "node_modules/@types/inquirer": { - "version": "9.0.6", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.7.tgz", + "integrity": "sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==", "dev": true, - "license": "MIT", "dependencies": { "@types/through": "*", "rxjs": "^7.2.0" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jquery": { - "version": "3.5.16", - "license": "MIT", + "version": "3.5.29", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz", + "integrity": "sha512-oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg==", "dependencies": { "@types/sizzle": "*" } }, "node_modules/@types/js-levenshtein": { - "version": "1.1.1", - "dev": true, - "license": "MIT" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.3.tgz", + "integrity": "sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ==", + "dev": true }, "node_modules/@types/json-schema": { - "version": "7.0.12", - "dev": true, - "license": "MIT" + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true }, "node_modules/@types/keygrip": { - "version": "1.0.2", - "dev": true, - "license": "MIT" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", + "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", + "dev": true }, "node_modules/@types/koa": { - "version": "2.13.6", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.14.0.tgz", + "integrity": "sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA==", "dev": true, - "license": "MIT", "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -5339,77 +6179,92 @@ } }, "node_modules/@types/koa-compose": { - "version": "3.2.5", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", + "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", "dev": true, - "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/liftoff": { - "version": "4.0.2", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.3.tgz", + "integrity": "sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==", "dev": true, - "license": "MIT", "dependencies": { "@types/fined": "*", "@types/node": "*" } }, "node_modules/@types/lodash": { - "version": "4.14.195", - "dev": true, - "license": "MIT" + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", + "dev": true }, "node_modules/@types/lodash-es": { - "version": "4.17.8", + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/mdast": { - "version": "3.0.11", + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dev": true, - "license": "MIT", "dependencies": { - "@types/unist": "*" + "@types/unist": "^2" } }, "node_modules/@types/mdx": { - "version": "2.0.5", - "dev": true, - "license": "MIT" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz", + "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==", + "dev": true }, "node_modules/@types/mime": { - "version": "1.3.2", - "dev": true, - "license": "MIT" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true }, "node_modules/@types/mime-types": { "version": "2.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz", + "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==", + "dev": true }, "node_modules/@types/mocha": { - "version": "10.0.1", - "dev": true, - "license": "MIT" + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", + "dev": true }, "node_modules/@types/ms": { - "version": "0.7.31", - "dev": true, - "license": "MIT" + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true }, "node_modules/@types/node": { - "version": "16.18.71", + "version": "20.11.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", + "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", "dev": true, - "license": "MIT" + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/node-fetch": { - "version": "2.6.10", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -5417,38 +6272,45 @@ }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true }, "node_modules/@types/parse5": { "version": "6.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true }, "node_modules/@types/pretty-hrtime": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==", + "dev": true }, "node_modules/@types/prop-types": { - "version": "15.7.5", - "dev": true, - "license": "MIT" + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "dev": true }, "node_modules/@types/qs": { - "version": "6.9.7", - "dev": true, - "license": "MIT" + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", + "dev": true }, "node_modules/@types/range-parser": { - "version": "1.2.4", - "dev": true, - "license": "MIT" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true }, "node_modules/@types/react": { - "version": "18.2.7", + "version": "18.2.48", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz", + "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==", "dev": true, - "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -5457,57 +6319,66 @@ }, "node_modules/@types/resolve": { "version": "1.20.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true }, "node_modules/@types/scheduler": { - "version": "0.16.3", - "dev": true, - "license": "MIT" + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true }, "node_modules/@types/semver": { - "version": "7.5.0", - "dev": true, - "license": "MIT" + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true }, "node_modules/@types/send": { - "version": "0.17.1", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, - "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.1", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, - "license": "MIT", "dependencies": { + "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/set-cookie-parser": { - "version": "2.4.2", + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.7.tgz", + "integrity": "sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/sinon": { "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", "dev": true, - "license": "MIT", "dependencies": { "@types/sinonjs__fake-timers": "*" } }, "node_modules/@types/sinon-chai": { "version": "3.2.12", + "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.12.tgz", + "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/chai": "*", "@types/sinon": "*" @@ -5515,74 +6386,85 @@ }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true }, "node_modules/@types/sizzle": { - "version": "2.3.3", - "license": "MIT" + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==" }, "node_modules/@types/through": { - "version": "0.0.32", + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", + "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/trusted-types": { - "version": "2.0.3", - "license": "MIT" + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, "node_modules/@types/unist": { - "version": "2.0.6", - "dev": true, - "license": "MIT" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true }, "node_modules/@types/uuid": { "version": "9.0.7", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz", + "integrity": "sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==" }, "node_modules/@types/ws": { "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, - "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true }, "node_modules/@types/yauzl": { "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, - "license": "MIT", "optional": true, "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.14.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", + "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/type-utils": "6.14.0", - "@typescript-eslint/utils": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/type-utils": "6.19.0", + "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -5607,104 +6489,11 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5714,8 +6503,9 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5728,18 +6518,20 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.14.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", + "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4" }, "engines": { @@ -5758,116 +6550,17 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", + "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -5875,12 +6568,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.14.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", + "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.14.0", - "@typescript-eslint/utils": "6.14.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/utils": "6.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -5900,136 +6594,13 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.14.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/visitor-keys": "6.14.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.14.0", - "@typescript-eslint/types": "6.14.0", - "@typescript-eslint/typescript-estree": "6.14.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.14.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", + "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", "dev": true, - "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -6037,20 +6608,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", + "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -6064,8 +6637,9 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6075,8 +6649,9 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6089,38 +6664,40 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", + "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6130,8 +6707,9 @@ }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6144,19 +6722,21 @@ }, "node_modules/@typescript-eslint/utils/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", + "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.19.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -7008,13 +7588,15 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, "node_modules/@web/browser-logs": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", + "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", "dev": true, - "license": "MIT", "dependencies": { "errorstacks": "^2.2.0" }, @@ -7024,16 +7606,18 @@ }, "node_modules/@web/config-loader": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.1.tgz", + "integrity": "sha512-IYjHXUgSGGNpO3YJQ9foLcazbJlAWDdJGRe9be7aOhon0Nd6Na5JIOJAej7jsMu76fKHr4b4w2LfIdNQ4fJ8pA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" } }, "node_modules/@web/dev-server": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.1.tgz", + "integrity": "sha512-GHeyH8MBZQpODFiHiXAdX4hOVbeDyD/DUermUinh/nexWAZUcXyXa200RItuAL6b25MQ3D/5hKNDypujSvXxiw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", @@ -7060,8 +7644,9 @@ }, "node_modules/@web/dev-server-core": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", + "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", "dev": true, - "license": "MIT", "dependencies": { "@types/koa": "^2.11.6", "@types/ws": "^7.4.0", @@ -7088,21 +7673,24 @@ }, "node_modules/@web/dev-server-core/node_modules/es-module-lexer": { "version": "1.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true }, "node_modules/@web/dev-server-core/node_modules/lru-cache": { "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, - "license": "ISC", "engines": { "node": ">=16.14" } }, "node_modules/@web/dev-server-core/node_modules/ws": { "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -7121,8 +7709,9 @@ }, "node_modules/@web/dev-server-esbuild": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-esbuild/-/dev-server-esbuild-1.0.1.tgz", + "integrity": "sha512-EoLLFuv5Y47pqY1IJBcGZswzkqJd+/vN4BDI3oYq8p9dDE9EuQVkC7vweAUkH7vDzI7xUp+f0UzJeQcj9t7zNQ==", "dev": true, - "license": "MIT", "dependencies": { "@mdn/browser-compat-data": "^4.0.0", "@web/dev-server-core": "^0.7.0", @@ -7134,10 +7723,401 @@ "node": ">=18.0.0" } }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/darwin-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-loong64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-s390x": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/sunos-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@web/dev-server-esbuild/node_modules/esbuild": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" + } + }, "node_modules/@web/dev-server-import-maps": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@web/dev-server-import-maps/-/dev-server-import-maps-0.2.0.tgz", + "integrity": "sha512-+Z4mNGJqHo370ZFmPl83O4BqpPzQDjprfLO3AwsOZck9x94LcAVmVsC7fnet1DQRR11x9M7FNliS6mmkZv26TQ==", "dev": true, - "license": "MIT", "dependencies": { "@import-maps/resolve": "^1.0.1", "@types/parse5": "^6.0.1", @@ -7152,8 +8132,9 @@ }, "node_modules/@web/dev-server-rollup": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.1.tgz", + "integrity": "sha512-vhtsQ8qu1pBHailOBOYJwZnYDc1Lmx6ZAd2j+y5PD2ck0R1LmVsZ7dZK8hDCpkvpvlu2ndURjL9tbzdcsBRJmg==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^15.0.1", "@web/dev-server-core": "^0.7.0", @@ -7168,13 +8149,15 @@ }, "node_modules/@web/dev-server/node_modules/ip": { "version": "1.1.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true }, "node_modules/@web/parse5-utils": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", + "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", "dev": true, - "license": "MIT", "dependencies": { "@types/parse5": "^6.0.1", "parse5": "^6.0.1" @@ -7185,8 +8168,9 @@ }, "node_modules/@web/test-runner": { "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.18.0.tgz", + "integrity": "sha512-aAlQrdSqwCie1mxuSK5kM0RYDJZL4Q0Hd5LeXn1on3OtHLtgztL4dZzzNSuAWablR2/Vuve3ChwDDxmYSTqXRg==", "dev": true, - "license": "MIT", "dependencies": { "@web/browser-logs": "^0.4.0", "@web/config-loader": "^0.3.0", @@ -7215,8 +8199,9 @@ }, "node_modules/@web/test-runner-chrome": { "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.15.0.tgz", + "integrity": "sha512-ZqkTJGQ57FDz3lWw+9CKfHuTV64S9GzBy5+0siSQulEVPfGiTzpksx9DohtA3BCLXdbEq4OHg40/XIQJomlc9w==", "dev": true, - "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0", "@web/test-runner-coverage-v8": "^0.8.0", @@ -7230,8 +8215,9 @@ }, "node_modules/@web/test-runner-commands": { "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", + "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==", "dev": true, - "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0", "mkdirp": "^1.0.4" @@ -7242,8 +8228,9 @@ }, "node_modules/@web/test-runner-core": { "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.0.tgz", + "integrity": "sha512-mUrETPg9n4dHWEk+D46BU3xVhQf+ljT4cG7FSpmF7AIOsXWgWHoaXp6ReeVcEmM5fmznXec2O/apTb9hpGrP3w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/babel__code-frame": "^7.0.2", @@ -7276,20 +8263,17 @@ "node": ">=18.0.0" } }, - "node_modules/@web/test-runner-core/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/@web/test-runner-core/node_modules/ip": { "version": "1.1.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true }, "node_modules/@web/test-runner-coverage-v8": { "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", + "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", "dev": true, - "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0", "istanbul-lib-coverage": "^3.0.0", @@ -7303,16 +8287,18 @@ }, "node_modules/@web/test-runner-coverage-v8/node_modules/lru-cache": { "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, - "license": "ISC", "engines": { "node": ">=16.14" } }, "node_modules/@web/test-runner-mocha": { "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", + "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", "dev": true, - "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0" }, @@ -7322,8 +8308,9 @@ }, "node_modules/@web/test-runner-playwright": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.11.0.tgz", + "integrity": "sha512-s+f43DSAcssKYVOD9SuzueUcctJdHzq1by45gAnSCKa9FQcaTbuYe8CzmxA21g+NcL5+ayo4z+MA9PO4H+PssQ==", "dev": true, - "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0", "@web/test-runner-coverage-v8": "^0.8.0", @@ -7333,23 +8320,20 @@ "node": ">=18.0.0" } }, - "node_modules/@web/test-runner/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@yarnpkg/esbuild-plugin-pnp": { "version": "3.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz", + "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "tslib": "^2.4.0" }, @@ -7362,8 +8346,9 @@ }, "node_modules/@yarnpkg/fslib": { "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", + "integrity": "sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@yarnpkg/libzip": "^2.3.0", "tslib": "^1.13.0" @@ -7374,13 +8359,15 @@ }, "node_modules/@yarnpkg/fslib/node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@yarnpkg/libzip": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz", + "integrity": "sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@types/emscripten": "^1.39.6", "tslib": "^1.13.0" @@ -7391,19 +8378,22 @@ }, "node_modules/@yarnpkg/libzip/node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/@zxing/text-encoding": { "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", "dev": true, - "license": "(Unlicense OR Apache-2.0)", "optional": true }, "node_modules/accepts": { "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -7413,9 +8403,10 @@ } }, "node_modules/acorn": { - "version": "8.11.2", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -7425,32 +8416,36 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.2.0", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/address": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/agent-base": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -7459,21 +8454,26 @@ } }, "node_modules/aggregate-error": { - "version": "3.1.0", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "dev": true, - "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -7487,8 +8487,9 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -7503,8 +8504,9 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -7518,13 +8520,15 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/ajv-keywords": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -7534,8 +8538,9 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -7548,8 +8553,9 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7559,16 +8565,18 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -7578,21 +8586,24 @@ }, "node_modules/ansi-styles/node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/ansi-styles/node_modules/color-name": { "version": "1.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "node_modules/anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7603,26 +8614,30 @@ }, "node_modules/app-root-dir": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", + "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", + "dev": true }, "node_modules/arg": { "version": "4.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true }, "node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/aria-hidden": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -7631,25 +8646,28 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/array-back": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -7660,21 +8678,24 @@ }, "node_modules/array-each": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-flatten": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true }, "node_modules/array-includes": { "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7691,24 +8712,27 @@ }, "node_modules/array-slice": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-union": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.findlastindex": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7725,8 +8749,9 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7742,8 +8767,9 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7759,8 +8785,9 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, - "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -7779,8 +8806,9 @@ }, "node_modules/assert": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-nan": "^1.3.2", @@ -7790,9 +8818,10 @@ } }, "node_modules/ast-types": { - "version": "0.16.1", + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.1" }, @@ -7802,38 +8831,44 @@ }, "node_modules/astral-regex": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async": { "version": "3.2.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true }, "node_modules/async-limiter": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true }, "node_modules/async-mutex": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.4.0" } }, "node_modules/asynckit": { "version": "0.4.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/available-typed-arrays": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7842,35 +8877,40 @@ } }, "node_modules/axe-core": { - "version": "4.7.2", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.3.tgz", + "integrity": "sha512-d5ZQHPSPkF9Tw+yfyDcRoUOc4g/8UloJJe5J8m4L5+c7AtDdjDLRxew/knnI4CxvtdxEUVgWz4x3OIQUIFiMfw==", "dev": true, - "license": "MPL-2.0", "engines": { "node": ">=4" } }, "node_modules/axobject-query": { "version": "2.2.0", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true }, "node_modules/b4a": { "version": "1.6.4", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true }, "node_modules/babel-core": { "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "dev": true, - "license": "MIT", "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-loader": { "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, - "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -7885,8 +8925,9 @@ }, "node_modules/babel-loader/node_modules/find-cache-dir": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, - "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -7900,8 +8941,9 @@ }, "node_modules/babel-loader/node_modules/find-up": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -7915,8 +8957,9 @@ }, "node_modules/babel-loader/node_modules/locate-path": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -7929,8 +8972,9 @@ }, "node_modules/babel-loader/node_modules/p-limit": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -7943,8 +8987,9 @@ }, "node_modules/babel-loader/node_modules/p-locate": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -7957,16 +9002,18 @@ }, "node_modules/babel-loader/node_modules/path-exists": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, - "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/babel-loader/node_modules/pkg-dir": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -7979,8 +9026,9 @@ }, "node_modules/babel-loader/node_modules/yocto-queue": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.20" }, @@ -7990,8 +9038,9 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -8005,8 +9054,9 @@ }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.4.4", @@ -8018,8 +9068,9 @@ }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.4", "core-js-compat": "^3.33.1" @@ -8030,8 +9081,9 @@ }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.4" }, @@ -8041,8 +9093,9 @@ }, "node_modules/bail": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8050,11 +9103,14 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -8068,21 +9124,22 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/basic-ftp": { - "version": "5.0.3", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz", + "integrity": "sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/better-opn": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", "dev": true, - "license": "MIT", "dependencies": { "open": "^8.0.4" }, @@ -8092,24 +9149,27 @@ }, "node_modules/big-integer": { "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", "dev": true, - "license": "Unlicense", "engines": { "node": ">=0.6" } }, "node_modules/binary-extensions": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bl": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -8118,8 +9178,9 @@ }, "node_modules/body-parser": { "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, - "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -8141,29 +9202,63 @@ }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "license": "MIT" + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/body-parser/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } }, "node_modules/bplist-parser": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", "dev": true, - "license": "MIT", "dependencies": { "big-integer": "^1.6.44" }, @@ -8172,18 +9267,19 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -8193,18 +9289,23 @@ }, "node_modules/browser-assert": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", + "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", "dev": true }, "node_modules/browserify-zlib": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", "dev": true, - "license": "MIT", "dependencies": { "pako": "~0.2.0" } }, "node_modules/browserslist": { "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -8220,7 +9321,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001565", "electron-to-chromium": "^1.4.601", @@ -8236,14 +9336,17 @@ }, "node_modules/bser": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/buffer": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -8259,7 +9362,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -8267,21 +9369,24 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/builtin-modules": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -8291,16 +9396,18 @@ }, "node_modules/bytes": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cache-content-type": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, - "license": "MIT", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -8311,8 +9418,9 @@ }, "node_modules/call-bind": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", @@ -8324,21 +9432,24 @@ }, "node_modules/call-me-maybe": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camel-case": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, - "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -8346,8 +9457,9 @@ }, "node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -8356,7 +9468,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001570", + "version": "1.0.30001579", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", + "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", "dev": true, "funding": [ { @@ -8371,13 +9485,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/capital-case": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dev": true, - "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -8386,8 +9500,9 @@ }, "node_modules/ccount": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8395,16 +9510,18 @@ }, "node_modules/chai-a11y-axe": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/chai-a11y-axe/-/chai-a11y-axe-1.5.0.tgz", + "integrity": "sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==", "dev": true, - "license": "MIT", "dependencies": { "axe-core": "^4.3.3" } }, "node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -8416,8 +9533,9 @@ }, "node_modules/chalk-template": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.2" }, @@ -8430,8 +9548,9 @@ }, "node_modules/chalk-template/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -8444,8 +9563,9 @@ }, "node_modules/chalk-template/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8459,16 +9579,18 @@ }, "node_modules/chalk-template/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/chalk-template/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8478,8 +9600,9 @@ }, "node_modules/change-case": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dev": true, - "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -8497,8 +9620,9 @@ }, "node_modules/character-entities": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8506,11 +9630,14 @@ }, "node_modules/chardet": { "version": "0.7.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, "node_modules/chokidar": { "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -8518,7 +9645,6 @@ "url": "https://paulmillr.com/funding/" } ], - "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -8537,16 +9663,18 @@ }, "node_modules/chownr": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/chrome-launcher": { "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", @@ -8562,8 +9690,9 @@ }, "node_modules/chrome-launcher/node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -8573,8 +9702,9 @@ }, "node_modules/chromium-bidi": { "version": "0.4.16", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", + "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "mitt": "3.0.0" }, @@ -8584,6 +9714,8 @@ }, "node_modules/ci-info": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -8591,31 +9723,51 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/citty": { "version": "0.1.5", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.5.tgz", + "integrity": "sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==", "dev": true, - "license": "MIT", "dependencies": { "consola": "^3.2.3" } }, "node_modules/clean-stack": { - "version": "2.2.0", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, - "license": "MIT", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, - "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -8624,9 +9776,10 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.0", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" }, @@ -8636,8 +9789,9 @@ }, "node_modules/cli-table3": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, - "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -8650,16 +9804,18 @@ }, "node_modules/cli-width": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, - "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -8669,18 +9825,52 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/clone": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -8692,8 +9882,9 @@ }, "node_modules/clone-deep/node_modules/is-plain-object": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -8703,8 +9894,9 @@ }, "node_modules/co": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -8712,8 +9904,9 @@ }, "node_modules/co-body": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", + "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", "dev": true, - "license": "MIT", "dependencies": { "inflation": "^2.0.0", "qs": "^6.5.2", @@ -8723,8 +9916,9 @@ }, "node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -8734,16 +9928,19 @@ }, "node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/colord": { "version": "2.9.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" }, "node_modules/combined-stream": { "version": "1.0.8", - "license": "MIT", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -8753,8 +9950,9 @@ }, "node_modules/command-line-args": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, - "license": "MIT", "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -8767,8 +9965,9 @@ }, "node_modules/command-line-usage": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", + "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", "dev": true, - "license": "MIT", "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", @@ -8781,42 +9980,48 @@ }, "node_modules/command-line-usage/node_modules/array-back": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/command-line-usage/node_modules/typical": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/commander": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=16" } }, "node_modules/common-path-prefix": { "version": "3.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true }, "node_modules/commondir": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true }, "node_modules/compressible": { "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -8826,8 +10031,9 @@ }, "node_modules/compression": { "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "license": "MIT", "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -8843,29 +10049,33 @@ }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/concat-stream": { "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ "node >= 0.8" ], - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -8875,13 +10085,15 @@ }, "node_modules/concat-stream/node_modules/isarray": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "node_modules/concat-stream/node_modules/readable-stream": { "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8892,18 +10104,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/consola": { "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", "dev": true, - "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" } }, "node_modules/constant-case": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dev": true, - "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -8912,8 +10135,9 @@ }, "node_modules/content-disposition": { "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -8923,6 +10147,8 @@ }, "node_modules/content-disposition/node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -8937,39 +10163,43 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/content-type": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "node_modules/cookie": { "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true }, "node_modules/cookies": { - "version": "0.8.0", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, - "license": "MIT", "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" @@ -8980,8 +10210,9 @@ }, "node_modules/core-js-compat": { "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", + "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", "dev": true, - "license": "MIT", "dependencies": { "browserslist": "^4.22.2" }, @@ -8992,26 +10223,30 @@ }, "node_modules/core-util-is": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, "node_modules/create-require": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true }, "node_modules/cross-fetch": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "dev": true, - "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -9023,34 +10258,39 @@ }, "node_modules/crypto-random-string": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/csstype": { - "version": "3.1.2", - "dev": true, - "license": "MIT" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true }, "node_modules/data-uri-to-buffer": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", + "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14" } }, "node_modules/debounce": { "version": "1.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true }, "node_modules/debug": { "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -9065,8 +10305,9 @@ }, "node_modules/decode-named-character-reference": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, - "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -9076,53 +10317,31 @@ } }, "node_modules/deep-equal": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true }, "node_modules/deep-is": { "version": "0.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, "node_modules/deepmerge": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/default-browser-id": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", "dev": true, - "license": "MIT", "dependencies": { "bplist-parser": "^0.2.0", "untildify": "^4.0.0" @@ -9136,8 +10355,9 @@ }, "node_modules/defaults": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, - "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -9147,16 +10367,18 @@ }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/define-data-property": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -9168,17 +10390,20 @@ }, "node_modules/define-lazy-prop": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/define-properties": { - "version": "1.2.0", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "license": "MIT", "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -9191,13 +10416,15 @@ }, "node_modules/defu": { "version": "6.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true }, "node_modules/degenerator": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, - "license": "MIT", "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", @@ -9207,33 +10434,66 @@ "node": ">= 14" } }, - "node_modules/degenerator/node_modules/ast-types": { - "version": "0.13.4", + "node_modules/del": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-7.1.0.tgz", + "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", "dev": true, - "license": "MIT", "dependencies": { - "tslib": "^2.0.1" + "globby": "^13.1.2", + "graceful-fs": "^4.2.10", + "is-glob": "^4.0.3", + "is-path-cwd": "^3.0.0", + "is-path-inside": "^4.0.0", + "p-map": "^5.5.0", + "rimraf": "^3.0.2", + "slash": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del": { - "version": "6.1.1", + "node_modules/del/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, - "license": "MIT", "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9241,44 +10501,50 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true }, "node_modules/depd": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/dependency-graph": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/dequal": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/destroy": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -9286,29 +10552,33 @@ }, "node_modules/detect-file": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/detect-indent": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detect-node-es": { "version": "1.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "dev": true }, "node_modules/detect-package-manager": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", + "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", "dev": true, - "license": "MIT", "dependencies": { "execa": "^5.1.1" }, @@ -9318,8 +10588,9 @@ }, "node_modules/detect-port": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", "dev": true, - "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "4" @@ -9331,21 +10602,24 @@ }, "node_modules/devtools-protocol": { "version": "0.0.1147663", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", + "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==", + "dev": true }, "node_modules/diff": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/dir-glob": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -9355,8 +10629,9 @@ }, "node_modules/doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -9366,8 +10641,9 @@ }, "node_modules/dom5": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.1.tgz", + "integrity": "sha512-JPFiouQIr16VQ4dX6i0+Hpbg3H2bMKPmZ+WZgBOSSvOPx9QHwwY8sPzeM2baUtViESYto6wC2nuZOMC/6gulcA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@types/parse5": "^2.2.34", "clone": "^2.1.0", @@ -9376,25 +10652,29 @@ }, "node_modules/dom5/node_modules/@types/parse5": { "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha512-p3qOvaRsRpFyEmaS36RtLzpdxZZnmxGuT1GMgzkTtTJVFuEw7KFjGK83MFODpJExgX1bEzy9r0NYjMC3IMfi7w==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/dom5/node_modules/parse5": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true }, "node_modules/dompurify": { - "version": "3.0.6", - "license": "(MPL-2.0 OR Apache-2.0)" + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.8.tgz", + "integrity": "sha512-b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==" }, "node_modules/dot-case": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, - "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -9402,8 +10682,9 @@ }, "node_modules/dotenv": { "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -9413,16 +10694,18 @@ }, "node_modules/dotenv-expand": { "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/duplexify": { "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, - "license": "MIT", "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -9432,13 +10715,15 @@ }, "node_modules/duplexify/node_modules/isarray": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "node_modules/duplexify/node_modules/readable-stream": { "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9449,20 +10734,32 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true }, "node_modules/ee-first": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true }, "node_modules/ejs": { "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -9474,39 +10771,45 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.614", - "dev": true, - "license": "ISC" + "version": "1.4.637", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.637.tgz", + "integrity": "sha512-G7j3UCOukFtxVO1vWrPQUoDk3kL70mtvjc/DC/k2o7lE0wAdq+Vwp1ipagOow+BH0uVztFysLWbkM/RTIrbK3w==", + "dev": true }, "node_modules/element-internals-polyfill": { - "version": "1.3.9", - "license": "MIT" + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/element-internals-polyfill/-/element-internals-polyfill-1.3.10.tgz", + "integrity": "sha512-hflkht5sNZ2LF2sP9+OHfqGDcr8R9NIiDCuDfXep8uptqqt0OjZDaWJ/7ip+OdoIZBFJL+fFJ3+aLku1cTIEGA==" }, "node_modules/emoji-regex": { "version": "10.3.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true }, "node_modules/encodeurl": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/end-of-stream": { "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { - "version": "5.14.1", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -9517,8 +10820,9 @@ }, "node_modules/entities": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -9528,8 +10832,9 @@ }, "node_modules/envinfo": { "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true, - "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -9539,21 +10844,24 @@ }, "node_modules/error-ex": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/errorstacks": { - "version": "2.4.0", - "dev": true, - "license": "MIT" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.1.tgz", + "integrity": "sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==", + "dev": true }, "node_modules/es-abstract": { "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, - "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -9602,34 +10910,17 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-module-lexer": { "version": "0.9.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true }, "node_modules/es-set-tostringtag": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.2", "has-tostringtag": "^1.0.0", @@ -9641,16 +10932,18 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -9664,10 +10957,11 @@ } }, "node_modules/esbuild": { - "version": "0.19.11", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -9675,40 +10969,41 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, "node_modules/esbuild-plugin-alias": { "version": "0.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz", + "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==", + "dev": true }, "node_modules/esbuild-register": { "version": "3.5.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.5.0.tgz", + "integrity": "sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -9718,29 +11013,33 @@ }, "node_modules/escalade": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -9757,18 +11056,11 @@ "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" @@ -9776,8 +11068,9 @@ }, "node_modules/eslint": { "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -9830,8 +11123,9 @@ }, "node_modules/eslint-config-prettier": { "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, - "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -9841,8 +11135,9 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -9851,16 +11146,18 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-import-resolver-typescript": { "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", "dev": true, - "license": "ISC", "dependencies": { "debug": "^4.3.4", "enhanced-resolve": "^5.12.0", @@ -9883,8 +11180,9 @@ }, "node_modules/eslint-module-utils": { "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -9899,16 +11197,18 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -9935,18 +11235,30 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -9954,10 +11266,23 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-lit": { - "version": "1.10.1", + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-lit": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit/-/eslint-plugin-lit-1.11.0.tgz", + "integrity": "sha512-jVqy2juQTAtOzj1ILf+ZW5GpDobXlSw0kvpP2zu2r8ZbW7KISt7ikj1Gw9DhNeirEU1UlSJR0VIWpdr4lzjayw==", "dev": true, - "license": "MIT", "dependencies": { "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", @@ -9972,8 +11297,9 @@ }, "node_modules/eslint-plugin-lit-a11y": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.1.tgz", + "integrity": "sha512-PTUEwTMMtbZccrGQUPFfWI3Ope8oF8XEMLUckNbV0IvDTkEbXYlYlvNrkzI92gYKAVaVlNi2QZ/0n8Q3YiOBUg==", "dev": true, - "license": "ISC", "dependencies": { "aria-query": "^5.1.3", "axe-core": "^4.3.3", @@ -9993,8 +11319,9 @@ }, "node_modules/eslint-plugin-lit-a11y/node_modules/parse5": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, - "license": "MIT", "dependencies": { "entities": "^4.4.0" }, @@ -10004,13 +11331,15 @@ }, "node_modules/eslint-plugin-local-rules": { "version": "2.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/eslint-plugin-local-rules/-/eslint-plugin-local-rules-2.0.1.tgz", + "integrity": "sha512-AJhGd+GcI5r2dbjiGPixM8jnBl0XFxqoVbqzwKbYz+nTk+Cj5dNE3+OlhC176bl5r25KsGsIthLi1VqIW5Ga+A==", + "dev": true }, "node_modules/eslint-plugin-storybook": { "version": "0.6.15", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz", + "integrity": "sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/csf": "^0.0.1", "@typescript-eslint/utils": "^5.45.0", @@ -10026,16 +11355,173 @@ }, "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", + "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", "dev": true, - "license": "MIT", "dependencies": { "lodash": "^4.17.15" } }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/eslint-plugin-wc": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-2.0.4.tgz", + "integrity": "sha512-ORu7MBv0hXIvq894EJad70m+AvHGbmrDdKT6lcgtCVVhEbuIAyxg0ilfqqqHOmsh8PfcUBeEae3y7CElKvm1KQ==", "dev": true, - "license": "MIT", "dependencies": { "is-valid-element-name": "^1.0.0", "js-levenshtein-esm": "^1.2.0" @@ -10046,8 +11532,9 @@ }, "node_modules/eslint-rule-extender": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/eslint-rule-extender/-/eslint-rule-extender-0.0.1.tgz", + "integrity": "sha512-F0j1Twve3lamL3J0rRSVAynlp58sDPG39JFcQrM+u9Na7PmCgiPHNODh6YE9mduaGcsn3NBqbf6LZRj0cLr8Ng==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -10057,21 +11544,26 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -10081,8 +11573,9 @@ }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -10095,13 +11588,25 @@ }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "Python-2.0" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10115,8 +11620,9 @@ }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -10124,33 +11630,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -10160,8 +11644,9 @@ }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -10174,16 +11659,18 @@ }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -10191,10 +11678,23 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10204,8 +11704,9 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -10215,8 +11716,9 @@ }, "node_modules/espree": { "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -10231,8 +11733,9 @@ }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -10243,8 +11746,9 @@ }, "node_modules/esquery": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -10252,18 +11756,11 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -10271,55 +11768,53 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/estraverse": { - "version": "4.3.0", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "2.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/etag": { "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/events": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -10340,8 +11835,9 @@ }, "node_modules/expand-tilde": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, - "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -10351,8 +11847,9 @@ }, "node_modules/express": { "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, - "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -10392,19 +11889,38 @@ }, "node_modules/express/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/express/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "license": "MIT" + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -10419,18 +11935,19 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/extend": { "version": "3.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "node_modules/external-editor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -10442,8 +11959,9 @@ }, "node_modules/extract-zip": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -10461,8 +11979,9 @@ }, "node_modules/extract-zip/node_modules/get-stream": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, - "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -10475,18 +11994,21 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-fifo": { "version": "1.3.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true }, "node_modules/fast-glob": { - "version": "3.3.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -10500,47 +12022,54 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, "node_modules/fastq": { - "version": "1.15.0", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, - "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/fd-slicer": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, - "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/fetch-retry": { "version": "5.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", + "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", + "dev": true }, "node_modules/figures": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -10553,8 +12082,9 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -10564,33 +12094,42 @@ }, "node_modules/file-system-cache": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz", + "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==", "dev": true, - "license": "MIT", "dependencies": { "fs-extra": "11.1.1", "ramda": "0.29.0" } }, + "node_modules/file-system-cache/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/filelist": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10600,8 +12139,9 @@ }, "node_modules/fill-range": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -10611,8 +12151,9 @@ }, "node_modules/finalhandler": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, - "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -10628,21 +12169,24 @@ }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/find-cache-dir": { "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -10657,8 +12201,9 @@ }, "node_modules/find-cache-dir/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -10669,8 +12214,9 @@ }, "node_modules/find-cache-dir/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -10680,8 +12226,9 @@ }, "node_modules/find-cache-dir/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -10694,8 +12241,9 @@ }, "node_modules/find-cache-dir/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -10705,8 +12253,9 @@ }, "node_modules/find-cache-dir/node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -10716,8 +12265,9 @@ }, "node_modules/find-replace": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, - "license": "MIT", "dependencies": { "array-back": "^3.0.1" }, @@ -10727,8 +12277,9 @@ }, "node_modules/find-up": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -10742,8 +12293,9 @@ }, "node_modules/findup-sync": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, - "license": "MIT", "dependencies": { "detect-file": "^1.0.0", "is-glob": "^4.0.3", @@ -10756,8 +12308,9 @@ }, "node_modules/fined": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "dev": true, - "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "is-plain-object": "^5.0.0", @@ -10771,18 +12324,21 @@ }, "node_modules/flagged-respawn": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.13.0" } }, "node_modules/flat-cache": { - "version": "3.0.4", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -10790,27 +12346,30 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "dev": true, - "license": "ISC" + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true }, "node_modules/flow-parser": { "version": "0.226.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.226.0.tgz", + "integrity": "sha512-YlH+Y/P/5s0S7Vg14RwXlJMF/JsGfkG7gcKB/zljyoqaPNX9YVsGzx+g6MLTbhZaWbPhs4347aTpmSb9GgiPtw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/follow-redirects": { - "version": "1.15.4", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -10822,24 +12381,27 @@ }, "node_modules/for-each": { "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/for-in": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/for-own": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, - "license": "MIT", "dependencies": { "for-in": "^1.0.1" }, @@ -10849,8 +12411,9 @@ }, "node_modules/foreground-child": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, - "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -10864,8 +12427,9 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "ISC", "engines": { "node": ">=14" }, @@ -10875,7 +12439,8 @@ }, "node_modules/form-data": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -10887,29 +12452,33 @@ }, "node_modules/forwarded": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fresh": { "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fs-constants": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true }, "node_modules/fs-extra": { - "version": "11.1.1", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -10921,8 +12490,9 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10932,8 +12502,9 @@ }, "node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10943,18 +12514,22 @@ }, "node_modules/fs-minipass/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "license": "MIT", + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -10965,16 +12540,18 @@ }, "node_modules/function-bind": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10990,32 +12567,48 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", @@ -11028,32 +12621,36 @@ }, "node_modules/get-nonce": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/get-npm-tarball-url": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz", + "integrity": "sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/get-package-type": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-port": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -11063,8 +12660,9 @@ }, "node_modules/get-stream": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -11074,8 +12672,9 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -11089,8 +12688,9 @@ }, "node_modules/get-tsconfig": { "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dev": true, - "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -11100,8 +12700,9 @@ }, "node_modules/get-uri": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", + "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", "dev": true, - "license": "MIT", "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.0", @@ -11114,8 +12715,9 @@ }, "node_modules/get-uri/node_modules/fs-extra": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -11127,24 +12729,27 @@ }, "node_modules/get-uri/node_modules/jsonfile": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/get-uri/node_modules/universalify": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/giget": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.1.tgz", + "integrity": "sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==", "dev": true, - "license": "MIT", "dependencies": { "citty": "^0.1.5", "consola": "^3.2.3", @@ -11161,13 +12766,15 @@ }, "node_modules/github-slugger": { "version": "1.5.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "dev": true }, "node_modules/glob": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11184,8 +12791,9 @@ }, "node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -11195,21 +12803,15 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "node_modules/glob/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -11219,8 +12821,9 @@ }, "node_modules/global-modules": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, - "license": "MIT", "dependencies": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -11232,8 +12835,9 @@ }, "node_modules/global-prefix": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, - "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -11247,8 +12851,9 @@ }, "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -11258,16 +12863,18 @@ }, "node_modules/globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, - "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -11280,13 +12887,15 @@ }, "node_modules/globalyzer": { "version": "0.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true }, "node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -11304,13 +12913,15 @@ }, "node_modules/globrex": { "version": "0.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true }, "node_modules/gopd": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -11320,26 +12931,30 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true }, "node_modules/graphql": { "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/gunzip-maybe": { "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", + "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", "dev": true, - "license": "MIT", "dependencies": { "browserify-zlib": "^0.1.4", "is-deflate": "^1.0.0", @@ -11354,8 +12969,9 @@ }, "node_modules/handlebars": { "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -11374,45 +12990,38 @@ }, "node_modules/handlebars/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11420,8 +13029,9 @@ }, "node_modules/has-proto": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11431,8 +13041,9 @@ }, "node_modules/has-symbols": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11442,8 +13053,9 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -11456,8 +13068,9 @@ }, "node_modules/hasown": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -11467,8 +13080,9 @@ }, "node_modules/header-case": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dev": true, - "license": "MIT", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -11476,13 +13090,15 @@ }, "node_modules/headers-polyfill": { "version": "3.2.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz", + "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==", + "dev": true }, "node_modules/homedir-polyfill": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, - "license": "MIT", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -11492,18 +13108,21 @@ }, "node_modules/hosted-git-info": { "version": "2.8.9", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true }, "node_modules/html-escaper": { "version": "2.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true }, "node_modules/http-assert": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", "dev": true, - "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" @@ -11512,23 +13131,20 @@ "node": ">= 0.8" } }, - "node_modules/http-assert/node_modules/deep-equal": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/http-assert/node_modules/depd": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/http-assert/node_modules/http-errors": { "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -11542,16 +13158,18 @@ }, "node_modules/http-assert/node_modules/statuses": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/http-errors": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -11565,8 +13183,9 @@ }, "node_modules/http-proxy-agent": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -11577,8 +13196,9 @@ }, "node_modules/https-proxy-agent": { "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -11589,16 +13209,18 @@ }, "node_modules/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/iconv-lite": { "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -11608,6 +13230,8 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -11622,21 +13246,22 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/ignore": { - "version": "5.2.4", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -11650,40 +13275,48 @@ }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { - "version": "4.0.0", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inflation": { - "version": "2.0.0", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -11691,18 +13324,21 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/ini": { "version": "1.3.8", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, "node_modules/inquirer": { "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -11726,8 +13362,9 @@ }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -11740,8 +13377,9 @@ }, "node_modules/inquirer/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11755,16 +13393,18 @@ }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11772,26 +13412,14 @@ "node": ">=8" } }, - "node_modules/inquirer/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/internal-slot": { - "version": "1.0.5", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -11800,37 +13428,42 @@ }, "node_modules/interpret": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/invariant": { "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, - "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/ip": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true }, "node_modules/ipaddr.js": { "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/is-absolute": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, - "license": "MIT", "dependencies": { "is-relative": "^1.0.0", "is-windows": "^1.0.1" @@ -11841,16 +13474,18 @@ }, "node_modules/is-absolute-url": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-arguments": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -11864,8 +13499,9 @@ }, "node_modules/is-array-buffer": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -11877,13 +13513,15 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "node_modules/is-bigint": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -11893,8 +13531,9 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -11904,8 +13543,9 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -11919,6 +13559,8 @@ }, "node_modules/is-buffer": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, "funding": [ { @@ -11934,15 +13576,15 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/is-builtin-module": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, - "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -11955,8 +13597,9 @@ }, "node_modules/is-callable": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11966,8 +13609,9 @@ }, "node_modules/is-core-module": { "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -11977,8 +13621,9 @@ }, "node_modules/is-date-object": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11991,13 +13636,15 @@ }, "node_modules/is-deflate": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", + "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", + "dev": true }, "node_modules/is-docker": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -12010,24 +13657,27 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-function": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12040,8 +13690,9 @@ }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -12051,37 +13702,33 @@ }, "node_modules/is-gzip": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-interactive": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-map": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-module": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true }, "node_modules/is-nan": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" @@ -12095,8 +13742,9 @@ }, "node_modules/is-negative-zero": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12106,21 +13754,24 @@ }, "node_modules/is-node-process": { "version": "1.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "dev": true }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12132,25 +13783,31 @@ } }, "node_modules/is-path-cwd": { - "version": "2.2.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", + "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-path-inside": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -12160,29 +13817,33 @@ }, "node_modules/is-plain-object": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true }, "node_modules/is-reference": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/is-regex": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -12196,8 +13857,9 @@ }, "node_modules/is-relative": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, - "license": "MIT", "dependencies": { "is-unc-path": "^1.0.0" }, @@ -12205,18 +13867,11 @@ "node": ">=0.10.0" } }, - "node_modules/is-set": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -12226,8 +13881,9 @@ }, "node_modules/is-stream": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -12237,8 +13893,9 @@ }, "node_modules/is-string": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -12251,8 +13908,9 @@ }, "node_modules/is-symbol": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -12265,8 +13923,9 @@ }, "node_modules/is-typed-array": { "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, - "license": "MIT", "dependencies": { "which-typed-array": "^1.1.11" }, @@ -12279,8 +13938,9 @@ }, "node_modules/is-unc-path": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, - "license": "MIT", "dependencies": { "unc-path-regex": "^0.1.2" }, @@ -12290,8 +13950,9 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -12301,24 +13962,18 @@ }, "node_modules/is-valid-element-name": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-element-name/-/is-valid-element-name-1.0.0.tgz", + "integrity": "sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "is-potential-custom-element-name": "^1.0.0" } }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-weakref": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -12326,30 +13981,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakset": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-windows": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -12359,13 +14004,15 @@ }, "node_modules/isarray": { "version": "2.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true }, "node_modules/isbinaryfile": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz", + "integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 14.0.0" }, @@ -12375,29 +14022,33 @@ }, "node_modules/isexe": { "version": "2.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/isobject": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -12411,8 +14062,9 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -12424,16 +14076,18 @@ }, "node_modules/istanbul-lib-report/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -12443,8 +14097,9 @@ }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -12457,8 +14112,9 @@ }, "node_modules/istanbul-lib-report/node_modules/semver": { "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12471,8 +14127,9 @@ }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12482,13 +14139,15 @@ }, "node_modules/istanbul-lib-report/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/istanbul-reports": { - "version": "3.1.5", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -12499,8 +14158,9 @@ }, "node_modules/jackspeak": { "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -12516,8 +14176,9 @@ }, "node_modules/jake": { "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -12533,8 +14194,9 @@ }, "node_modules/jake/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12545,10 +14207,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12562,16 +14235,30 @@ }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/jake/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12581,8 +14268,9 @@ }, "node_modules/jest-haste-map": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -12605,16 +14293,18 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-util": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -12629,8 +14319,9 @@ }, "node_modules/jest-util/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12643,8 +14334,9 @@ }, "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12658,16 +14350,18 @@ }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12677,8 +14371,9 @@ }, "node_modules/jest-worker": { "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, - "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -12691,16 +14386,18 @@ }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12713,26 +14410,30 @@ }, "node_modules/js-levenshtein": { "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/js-levenshtein-esm": { "version": "1.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz", + "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==", + "dev": true }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -12743,8 +14444,9 @@ }, "node_modules/jscodeshift": { "version": "0.15.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.1.tgz", + "integrity": "sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/core": "^7.23.0", "@babel/parser": "^7.23.0", @@ -12781,8 +14483,9 @@ }, "node_modules/jscodeshift/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -12795,8 +14498,9 @@ }, "node_modules/jscodeshift/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -12810,16 +14514,18 @@ }, "node_modules/jscodeshift/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jscodeshift/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12829,8 +14535,9 @@ }, "node_modules/jscodeshift/node_modules/write-file-atomic": { "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, - "license": "ISC", "dependencies": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", @@ -12839,8 +14546,9 @@ }, "node_modules/jsesc": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -12848,15 +14556,24 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-schema-ref-parser": { "version": "9.0.9", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", + "deprecated": "Please switch to @apidevtools/json-schema-ref-parser", "dev": true, - "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "9.0.9" }, @@ -12866,18 +14583,21 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -12887,8 +14607,9 @@ }, "node_modules/jsonfile": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -12898,8 +14619,9 @@ }, "node_modules/keygrip": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dev": true, - "license": "MIT", "dependencies": { "tsscmp": "1.0.6" }, @@ -12907,32 +14629,44 @@ "node": ">= 0.6" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/kleur": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/koa": { - "version": "2.14.2", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.0.tgz", + "integrity": "sha512-KEL/vU1knsoUvfP4MC4/GthpQrY/p6dzwaaGI6Rt4NQuFqkw3qrvsdYF5pz3wOfi7IGTvMPHC9aZIcUKYFNxsw==", "dev": true, - "license": "MIT", "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", "content-disposition": "~0.5.2", "content-type": "^1.0.4", - "cookies": "~0.8.0", + "cookies": "~0.9.0", "debug": "^4.3.2", "delegates": "^1.0.0", "depd": "^2.0.0", @@ -12958,13 +14692,15 @@ }, "node_modules/koa-compose": { "version": "4.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true }, "node_modules/koa-convert": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, - "license": "MIT", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -12975,16 +14711,18 @@ }, "node_modules/koa-etag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", + "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", "dev": true, - "license": "MIT", "dependencies": { "etag": "^1.8.1" } }, "node_modules/koa-send": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.1.1", "http-errors": "^1.7.3", @@ -12996,16 +14734,18 @@ }, "node_modules/koa-send/node_modules/depd": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/koa-send/node_modules/http-errors": { "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -13019,16 +14759,18 @@ }, "node_modules/koa-send/node_modules/statuses": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/koa-static": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.1.0", "koa-send": "^5.0.0" @@ -13039,16 +14781,18 @@ }, "node_modules/koa-static/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/koa/node_modules/http-errors": { "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -13062,37 +14806,45 @@ }, "node_modules/koa/node_modules/http-errors/node_modules/depd": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/koa/node_modules/statuses": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/language-subtag-registry": { "version": "0.3.22", - "dev": true, - "license": "CC0-1.0" + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true }, "node_modules/language-tags": { - "version": "1.0.8", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, - "license": "MIT", "dependencies": { "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" } }, "node_modules/lazy-universal-dotenv": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz", + "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "app-root-dir": "^1.0.2", "dotenv": "^16.0.0", @@ -13104,16 +14856,18 @@ }, "node_modules/leven": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -13124,8 +14878,9 @@ }, "node_modules/liftoff": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", "dev": true, - "license": "MIT", "dependencies": { "extend": "^3.0.2", "findup-sync": "^5.0.0", @@ -13142,8 +14897,9 @@ }, "node_modules/lighthouse-logger": { "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, - "license": "Apache-2.0", "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" @@ -13151,21 +14907,24 @@ }, "node_modules/lighthouse-logger/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/lines-and-columns": { "version": "1.2.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "node_modules/lit": { "version": "2.8.0", @@ -13205,8 +14964,9 @@ }, "node_modules/lit-html": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.1.tgz", + "integrity": "sha512-x/EwfGk2D/f4odSFM40hcGumzqoKv0/SUh6fBO+1Ragez81APrcAMPo1jIrCDd9Sn+Z4CT867HWKViByvkDZUA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -13229,8 +14989,9 @@ }, "node_modules/locate-path": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -13243,42 +15004,50 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "node_modules/lodash-es": { "version": "4.17.21", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, "node_modules/lodash.assignwith": { "version": "4.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", + "dev": true }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -13292,8 +15061,9 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -13306,8 +15076,9 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -13321,16 +15092,18 @@ }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13340,8 +15113,9 @@ }, "node_modules/log-update": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -13355,37 +15129,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/longest-streak": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13393,8 +15141,9 @@ }, "node_modules/loose-envify": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, - "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -13404,29 +15153,33 @@ }, "node_modules/lower-case": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/lucide-static": { "version": "0.290.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-0.290.0.tgz", + "integrity": "sha512-g2JVS1v2xVypOyMRrWH5lFhJwAftBvAn732Ig4VqS60+4MtL1F+bsbI8wVG3MM6RFhL12gT1hs5vEZufr6XbKA==", + "dev": true }, "node_modules/magic-string": { "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -13436,8 +15189,9 @@ }, "node_modules/make-dir": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -13450,13 +15204,15 @@ }, "node_modules/make-error": { "version": "1.3.6", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, "node_modules/make-iterator": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", "dev": true, - "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -13466,29 +15222,33 @@ }, "node_modules/makeerror": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/map-cache": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/map-or-similar": { "version": "1.5.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", + "dev": true }, "node_modules/markdown-table": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13496,8 +15256,9 @@ }, "node_modules/markdown-to-jsx": { "version": "7.4.0", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.0.tgz", + "integrity": "sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10" }, @@ -13507,7 +15268,8 @@ }, "node_modules/marked": { "version": "11.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/marked/-/marked-11.1.1.tgz", + "integrity": "sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==", "bin": { "marked": "bin/marked.js" }, @@ -13517,13 +15279,15 @@ }, "node_modules/marky": { "version": "1.2.5", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true }, "node_modules/mdast-util-definitions": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", "dev": true, - "license": "MIT", "dependencies": { "unist-util-visit": "^2.0.0" }, @@ -13534,8 +15298,9 @@ }, "node_modules/mdast-util-find-and-replace": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", + "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "escape-string-regexp": "^5.0.0", @@ -13549,8 +15314,9 @@ }, "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -13559,9 +15325,10 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "1.3.0", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -13583,8 +15350,9 @@ }, "node_modules/mdast-util-gfm": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", + "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", "dev": true, - "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^1.0.0", "mdast-util-gfm-autolink-literal": "^1.0.0", @@ -13601,8 +15369,9 @@ }, "node_modules/mdast-util-gfm-autolink-literal": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "ccount": "^2.0.0", @@ -13616,8 +15385,9 @@ }, "node_modules/mdast-util-gfm-footnote": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", + "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.3.0", @@ -13630,8 +15400,9 @@ }, "node_modules/mdast-util-gfm-strikethrough": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", + "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.3.0" @@ -13643,8 +15414,9 @@ }, "node_modules/mdast-util-gfm-table": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", + "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "markdown-table": "^3.0.0", @@ -13658,8 +15430,9 @@ }, "node_modules/mdast-util-gfm-task-list-item": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.3.0" @@ -13671,8 +15444,9 @@ }, "node_modules/mdast-util-phrasing": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "unist-util-is": "^5.0.0" @@ -13684,8 +15458,9 @@ }, "node_modules/mdast-util-to-markdown": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -13703,8 +15478,9 @@ }, "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -13717,8 +15493,9 @@ }, "node_modules/mdast-util-to-string": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0" }, @@ -13729,48 +15506,56 @@ }, "node_modules/media-typer": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memoizerific": { "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", "dev": true, - "license": "MIT", "dependencies": { "map-or-similar": "^1.5.0" } }, "node_modules/merge-descriptors": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/methods": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromark": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", "dev": true, "funding": [ { @@ -13782,7 +15567,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -13805,6 +15589,8 @@ }, "node_modules/micromark-core-commonmark": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", "dev": true, "funding": [ { @@ -13816,7 +15602,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", @@ -13838,8 +15623,9 @@ }, "node_modules/micromark-extension-gfm": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", + "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", "dev": true, - "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^1.0.0", "micromark-extension-gfm-footnote": "^1.0.0", @@ -13856,9 +15642,10 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.4", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz", + "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==", "dev": true, - "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", @@ -13871,9 +15658,10 @@ } }, "node_modules/micromark-extension-gfm-footnote": { - "version": "1.1.0", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz", + "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==", "dev": true, - "license": "MIT", "dependencies": { "micromark-core-commonmark": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -13890,9 +15678,10 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.5", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz", + "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==", "dev": true, - "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-classify-character": "^1.0.0", @@ -13907,9 +15696,10 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.6", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz", + "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==", "dev": true, - "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -13924,8 +15714,9 @@ }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", + "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", "dev": true, - "license": "MIT", "dependencies": { "micromark-util-types": "^1.0.0" }, @@ -13935,9 +15726,10 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.4", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz", + "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==", "dev": true, - "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -13952,6 +15744,8 @@ }, "node_modules/micromark-factory-destination": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", "dev": true, "funding": [ { @@ -13963,7 +15757,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -13972,6 +15765,8 @@ }, "node_modules/micromark-factory-label": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", "dev": true, "funding": [ { @@ -13983,7 +15778,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -13993,6 +15787,8 @@ }, "node_modules/micromark-factory-space": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", "dev": true, "funding": [ { @@ -14004,7 +15800,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -14012,6 +15807,8 @@ }, "node_modules/micromark-factory-title": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", "dev": true, "funding": [ { @@ -14023,7 +15820,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -14033,6 +15829,8 @@ }, "node_modules/micromark-factory-whitespace": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", "dev": true, "funding": [ { @@ -14044,7 +15842,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -14054,6 +15851,8 @@ }, "node_modules/micromark-util-character": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", "dev": true, "funding": [ { @@ -14065,7 +15864,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -14073,6 +15871,8 @@ }, "node_modules/micromark-util-chunked": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", "dev": true, "funding": [ { @@ -14084,13 +15884,14 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-classify-character": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", "dev": true, "funding": [ { @@ -14102,7 +15903,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -14111,6 +15911,8 @@ }, "node_modules/micromark-util-combine-extensions": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", "dev": true, "funding": [ { @@ -14122,7 +15924,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -14130,6 +15931,8 @@ }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", "dev": true, "funding": [ { @@ -14141,13 +15944,14 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-decode-string": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", "dev": true, "funding": [ { @@ -14159,7 +15963,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -14169,6 +15972,8 @@ }, "node_modules/micromark-util-encode": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", "dev": true, "funding": [ { @@ -14179,11 +15984,12 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "license": "MIT" + ] }, "node_modules/micromark-util-html-tag-name": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", "dev": true, "funding": [ { @@ -14194,11 +16000,12 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "license": "MIT" + ] }, "node_modules/micromark-util-normalize-identifier": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", "dev": true, "funding": [ { @@ -14210,13 +16017,14 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-resolve-all": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", "dev": true, "funding": [ { @@ -14228,13 +16036,14 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-types": "^1.0.0" } }, "node_modules/micromark-util-sanitize-uri": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", "dev": true, "funding": [ { @@ -14246,7 +16055,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-encode": "^1.0.0", @@ -14255,6 +16063,8 @@ }, "node_modules/micromark-util-subtokenize": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", "dev": true, "funding": [ { @@ -14266,7 +16076,6 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -14276,6 +16085,8 @@ }, "node_modules/micromark-util-symbol": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", "dev": true, "funding": [ { @@ -14286,11 +16097,12 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "license": "MIT" + ] }, "node_modules/micromark-util-types": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", "dev": true, "funding": [ { @@ -14301,13 +16113,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ], - "license": "MIT" + ] }, "node_modules/micromatch": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -14318,8 +16130,9 @@ }, "node_modules/mime": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "license": "MIT", "bin": { "mime": "cli.js" }, @@ -14329,14 +16142,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { "mime-db": "1.52.0" }, @@ -14346,43 +16161,51 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/minimatch": { - "version": "3.1.2", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/minizlib": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -14393,8 +16216,9 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -14404,18 +16228,21 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/mitt": { "version": "3.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", + "dev": true }, "node_modules/mkdirp": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -14425,31 +16252,36 @@ }, "node_modules/mkdirp-classic": { "version": "0.5.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true }, "node_modules/monaco-editor": { "version": "0.45.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.45.0.tgz", + "integrity": "sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA==" }, "node_modules/mri": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ms": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/msw": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-1.3.2.tgz", + "integrity": "sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==", "dev": true, "hasInstallScript": true, - "license": "MIT", "dependencies": { "@mswjs/cookies": "^0.2.2", "@mswjs/interceptors": "^0.17.10", @@ -14492,8 +16324,9 @@ }, "node_modules/msw/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -14506,8 +16339,9 @@ }, "node_modules/msw/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -14521,29 +16355,33 @@ }, "node_modules/msw/node_modules/cookie": { "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/msw/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/msw/node_modules/path-to-regexp": { "version": "6.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true }, "node_modules/msw/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -14553,13 +16391,15 @@ }, "node_modules/mute-stream": { "version": "0.0.8", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true }, "node_modules/mylas": { "version": "2.1.13", + "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", + "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.0.0" }, @@ -14570,11 +16410,14 @@ }, "node_modules/nanocolors": { "version": "0.2.13", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", + "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", + "dev": true }, "node_modules/nanoid": { "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -14582,7 +16425,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -14592,34 +16434,39 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/negotiator": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node_modules/netmask": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/no-case": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, - "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -14627,8 +16474,9 @@ }, "node_modules/node-dir": { "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", "dev": true, - "license": "MIT", "dependencies": { "minimatch": "^3.0.2" }, @@ -14636,10 +16484,33 @@ "node": ">= 0.10.5" } }, - "node_modules/node-fetch": { - "version": "2.6.12", + "node_modules/node-dir/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/node-dir/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, - "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -14657,23 +16528,27 @@ }, "node_modules/node-fetch-native": { "version": "1.6.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.1.tgz", + "integrity": "sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==", + "dev": true }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "dev": true, - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, - "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -14681,13 +16556,15 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true }, "node_modules/node-plop": { "version": "0.32.0", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.32.0.tgz", + "integrity": "sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/inquirer": "^9.0.3", "change-case": "^4.1.2", @@ -14707,39 +16584,11 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/node-plop/node_modules/aggregate-error": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/node-plop/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/node-plop/node_modules/chalk": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, - "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -14747,53 +16596,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/node-plop/node_modules/clean-stack": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-plop/node_modules/cli-width": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, - "license": "ISC", "engines": { "node": ">= 12" } }, - "node_modules/node-plop/node_modules/del": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-plop/node_modules/escape-string-regexp": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -14803,8 +16619,9 @@ }, "node_modules/node-plop/node_modules/figures": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dev": true, - "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -14818,8 +16635,9 @@ }, "node_modules/node-plop/node_modules/globby": { "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, - "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -14834,21 +16652,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-plop/node_modules/indent-string": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-plop/node_modules/inquirer": { "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", "dev": true, - "license": "MIT", "dependencies": { "@ljharb/through": "^2.3.11", "ansi-escapes": "^4.3.2", @@ -14870,32 +16678,11 @@ "node": ">=14.18.0" } }, - "node_modules/node-plop/node_modules/is-path-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/node-plop/node_modules/is-path-inside": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-plop/node_modules/is-unicode-supported": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -14905,8 +16692,9 @@ }, "node_modules/node-plop/node_modules/mkdirp": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, - "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" }, @@ -14919,38 +16707,27 @@ }, "node_modules/node-plop/node_modules/mute-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, - "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-plop/node_modules/p-map": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-plop/node_modules/run-async": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/node-plop/node_modules/slash": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -14958,28 +16735,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-plop/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/node-releases": { "version": "2.0.14", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true }, "node_modules/normalize-package-data": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -14989,24 +16755,27 @@ }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -15016,8 +16785,9 @@ }, "node_modules/nypm": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.4.tgz", + "integrity": "sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==", "dev": true, - "license": "MIT", "dependencies": { "citty": "^0.1.5", "execa": "^8.0.1", @@ -15033,8 +16803,9 @@ }, "node_modules/nypm/node_modules/execa": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^8.0.1", @@ -15055,8 +16826,9 @@ }, "node_modules/nypm/node_modules/get-stream": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "dev": true, - "license": "MIT", "engines": { "node": ">=16" }, @@ -15066,16 +16838,18 @@ }, "node_modules/nypm/node_modules/human-signals": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=16.17.0" } }, "node_modules/nypm/node_modules/is-stream": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -15085,8 +16859,9 @@ }, "node_modules/nypm/node_modules/mimic-fn": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -15096,8 +16871,9 @@ }, "node_modules/nypm/node_modules/npm-run-path": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -15110,8 +16886,9 @@ }, "node_modules/nypm/node_modules/onetime": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -15124,8 +16901,9 @@ }, "node_modules/nypm/node_modules/path-key": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -15135,8 +16913,9 @@ }, "node_modules/nypm/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "ISC", "engines": { "node": ">=14" }, @@ -15146,8 +16925,9 @@ }, "node_modules/nypm/node_modules/strip-final-newline": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -15157,16 +16937,18 @@ }, "node_modules/object-inspect": { "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -15180,19 +16962,21 @@ }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.4", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -15205,8 +16989,9 @@ }, "node_modules/object.defaults": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, - "license": "MIT", "dependencies": { "array-each": "^1.0.1", "array-slice": "^1.0.0", @@ -15219,8 +17004,9 @@ }, "node_modules/object.fromentries": { "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -15235,8 +17021,9 @@ }, "node_modules/object.groupby": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -15246,8 +17033,9 @@ }, "node_modules/object.map": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", "dev": true, - "license": "MIT", "dependencies": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" @@ -15258,8 +17046,9 @@ }, "node_modules/object.pick": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, - "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -15269,8 +17058,9 @@ }, "node_modules/object.values": { "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -15285,13 +17075,15 @@ }, "node_modules/ohash": { "version": "1.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", + "dev": true }, "node_modules/on-finished": { "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -15301,24 +17093,27 @@ }, "node_modules/on-headers": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -15331,12 +17126,15 @@ }, "node_modules/only": { "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, "node_modules/open": { "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, - "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -15351,8 +17149,9 @@ }, "node_modules/openapi-typescript-codegen": { "version": "0.25.0", + "resolved": "https://registry.npmjs.org/openapi-typescript-codegen/-/openapi-typescript-codegen-0.25.0.tgz", + "integrity": "sha512-nN/TnIcGbP58qYgwEEy5FrAAjePcYgfMaCe3tsmYyTgI3v4RR9v8os14L+LEWDvV50+CmqiyTzRkKKtJeb6Ybg==", "dev": true, - "license": "MIT", "dependencies": { "camelcase": "^6.3.0", "commander": "^11.0.0", @@ -15366,15 +17165,17 @@ }, "node_modules/opener": { "version": "1.5.2", - "license": "(WTFPL OR MIT)", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "bin": { "opener": "bin/opener-bin.js" } }, "node_modules/optionator": { "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, - "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -15389,8 +17190,9 @@ }, "node_modules/ora": { "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -15411,8 +17213,9 @@ }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -15425,8 +17228,9 @@ }, "node_modules/ora/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15440,16 +17244,18 @@ }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -15459,21 +17265,24 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/outvariant": { "version": "1.4.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz", + "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==", + "dev": true }, "node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -15486,8 +17295,9 @@ }, "node_modules/p-locate": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -15499,14 +17309,15 @@ } }, "node_modules/p-map": { - "version": "4.0.0", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", + "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, - "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "aggregate-error": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15514,16 +17325,18 @@ }, "node_modules/p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pac-proxy-agent": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dev": true, - "license": "MIT", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.0.2", @@ -15540,8 +17353,9 @@ }, "node_modules/pac-resolver": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", "dev": true, - "license": "MIT", "dependencies": { "degenerator": "^5.0.0", "ip": "^1.1.8", @@ -15553,18 +17367,21 @@ }, "node_modules/pac-resolver/node_modules/ip": { "version": "1.1.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true }, "node_modules/pako": { "version": "0.2.9", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "dev": true }, "node_modules/param-case": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, - "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -15572,8 +17389,9 @@ }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -15583,8 +17401,9 @@ }, "node_modules/parse-filepath": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, - "license": "MIT", "dependencies": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", @@ -15596,8 +17415,9 @@ }, "node_modules/parse-json": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -15613,37 +17433,42 @@ }, "node_modules/parse-passwd": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/parse5": { "version": "6.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, - "license": "MIT", "dependencies": { "parse5": "^6.0.1" } }, "node_modules/parseurl": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/pascal-case": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, - "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -15651,8 +17476,9 @@ }, "node_modules/path-case": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dev": true, - "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -15660,42 +17486,48 @@ }, "node_modules/path-equal": { "version": "1.2.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", + "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==", + "dev": true }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-root": { "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, - "license": "MIT", "dependencies": { "path-root-regex": "^0.1.0" }, @@ -15705,16 +17537,18 @@ }, "node_modules/path-root-regex": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-scurry": { "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -15728,34 +17562,39 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, - "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-to-regexp": { "version": "0.1.7", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true }, "node_modules/path-type": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathe": { - "version": "1.1.1", - "dev": true, - "license": "MIT" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true }, "node_modules/peek-stream": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", + "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "duplexify": "^3.5.0", @@ -15764,18 +17603,21 @@ }, "node_modules/pend": { "version": "1.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true }, "node_modules/picocolors": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -15785,24 +17627,27 @@ }, "node_modules/pify": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pirates": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^5.0.0" }, @@ -15811,11 +17656,12 @@ } }, "node_modules/playwright": { - "version": "1.40.1", + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.0.tgz", + "integrity": "sha512-XOsfl5ZtAik/T9oek4V0jAypNlaCNzuKOwVhqhgYT3os6kH34PzbRb74F0VWcLYa5WFdnmxl7qyAHBXvPv7lqQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.40.1" + "playwright-core": "1.41.0" }, "bin": { "playwright": "cli.js" @@ -15828,9 +17674,10 @@ } }, "node_modules/playwright-core": { - "version": "1.40.1", + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.41.0.tgz", + "integrity": "sha512-UGKASUhXmvqm2Lxa1fNr8sFwAtqjpgBRr9jQ7XBI8Rn5uFiEowGUGwrruUQsVPIom4bk7Lt+oLGpXobnXzrBIw==", "dev": true, - "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, @@ -15840,8 +17687,9 @@ }, "node_modules/playwright-msw": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/playwright-msw/-/playwright-msw-3.0.1.tgz", + "integrity": "sha512-w2bVjt7kPIThOQF9OS/1vDDs0HsQfV9inxMVSUv74x/zhCcrgzVN47xpPk84okf3OcCRHHBJKq8sNeBfCDyhMg==", "dev": true, - "license": "MIT", "dependencies": { "@mswjs/cookies": "^1.1.0", "strict-event-emitter": "^0.5.1" @@ -15856,50 +17704,72 @@ }, "node_modules/playwright-msw/node_modules/@mswjs/cookies": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-1.1.0.tgz", + "integrity": "sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==", "dev": true, - "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/playwright-msw/node_modules/strict-event-emitter": { "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "license": "MIT" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/plimit-lit": { - "version": "1.5.0", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.6.1.tgz", + "integrity": "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==", "dev": true, - "license": "MIT", "dependencies": { - "queue-lit": "^1.5.0" + "queue-lit": "^1.5.1" + }, + "engines": { + "node": ">=12" } }, "node_modules/plop": { - "version": "4.0.0", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/plop/-/plop-4.0.1.tgz", + "integrity": "sha512-5n8QU93kvL/ObOzBcPAB1siVFtAH1TZM6TntJ3JK5kXT0jIgnQV+j+uaOWWFJlg1cNkzLYm8klgASF65K36q9w==", "dev": true, - "license": "MIT", "dependencies": { - "@types/liftoff": "^4.0.1", + "@types/liftoff": "^4.0.3", "chalk": "^5.3.0", "interpret": "^3.1.1", "liftoff": "^4.0.0", "minimist": "^1.2.8", "node-plop": "^0.32.0", - "ora": "^7.0.1", + "ora": "^8.0.0", "v8flags": "^4.0.1" }, "bin": { "plop": "bin/plop.js" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" } }, "node_modules/plop/node_modules/ansi-regex": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -15909,8 +17779,9 @@ }, "node_modules/plop/node_modules/chalk": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, - "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -15920,8 +17791,9 @@ }, "node_modules/plop/node_modules/cli-cursor": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, - "license": "MIT", "dependencies": { "restore-cursor": "^4.0.0" }, @@ -15934,8 +17806,9 @@ }, "node_modules/plop/node_modules/is-interactive": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -15944,24 +17817,38 @@ } }, "node_modules/plop/node_modules/is-unicode-supported": { - "version": "1.3.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/plop/node_modules/log-symbols": { - "version": "5.1.0", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/plop/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, "engines": { "node": ">=12" }, @@ -15970,22 +17857,23 @@ } }, "node_modules/plop/node_modules/ora": { - "version": "7.0.1", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", + "integrity": "sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^4.0.0", - "cli-spinners": "^2.9.0", + "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.3.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "string-width": "^6.1.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.1", + "string-width": "^7.0.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15993,8 +17881,9 @@ }, "node_modules/plop/node_modules/restore-cursor": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, - "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -16007,16 +17896,17 @@ } }, "node_modules/plop/node_modules/string-width": { - "version": "6.1.0", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", + "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", "dev": true, - "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^10.2.1", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16024,8 +17914,9 @@ }, "node_modules/plop/node_modules/strip-ansi": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -16038,8 +17929,9 @@ }, "node_modules/polished": { "version": "4.2.2", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", + "integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.17.8" }, @@ -16049,8 +17941,9 @@ }, "node_modules/portfinder": { "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, - "license": "MIT", "dependencies": { "async": "^2.6.4", "debug": "^3.2.7", @@ -16062,24 +17955,27 @@ }, "node_modules/portfinder/node_modules/async": { "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, - "license": "MIT", "dependencies": { "lodash": "^4.17.14" } }, "node_modules/portfinder/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/portfinder/node_modules/mkdirp": { "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -16088,7 +17984,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", "dev": true, "funding": [ { @@ -16104,7 +18002,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -16116,16 +18013,18 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -16138,37 +18037,42 @@ }, "node_modules/pretty-hrtime": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/process": { "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "node_modules/progress": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/prompts": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -16179,8 +18083,9 @@ }, "node_modules/proxy-addr": { "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -16191,8 +18096,9 @@ }, "node_modules/proxy-agent": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", + "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -16209,21 +18115,24 @@ }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/proxy-from-env": { "version": "1.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true }, "node_modules/pump": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, - "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -16231,8 +18140,9 @@ }, "node_modules/pumpify": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, - "license": "MIT", "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -16241,25 +18151,28 @@ }, "node_modules/pumpify/node_modules/pump": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, - "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/punycode": { - "version": "2.3.0", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/puppeteer-core": { "version": "20.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz", + "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "1.4.6", "chromium-bidi": "0.4.16", @@ -16280,10 +18193,32 @@ } } }, - "node_modules/qs": { - "version": "6.11.0", + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -16295,12 +18230,18 @@ } }, "node_modules/queue-lit": { - "version": "1.5.0", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.2.tgz", + "integrity": "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=12" + } }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -16315,18 +18256,19 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/queue-tick": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true }, "node_modules/ramda": { "version": "0.29.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", + "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/ramda" @@ -16334,16 +18276,18 @@ }, "node_modules/range-parser": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.5.1", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -16356,16 +18300,18 @@ }, "node_modules/raw-body/node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/react": { "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dev": true, - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -16375,8 +18321,9 @@ }, "node_modules/react-colorful": { "version": "5.6.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", + "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", "dev": true, - "license": "MIT", "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" @@ -16384,8 +18331,9 @@ }, "node_modules/react-dom": { "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "dev": true, - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -16396,8 +18344,9 @@ }, "node_modules/react-remove-scroll": { "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", "dev": true, - "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", @@ -16420,8 +18369,9 @@ }, "node_modules/react-remove-scroll-bar": { "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", "dev": true, - "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.1", "tslib": "^2.0.0" @@ -16441,8 +18391,9 @@ }, "node_modules/react-style-singleton": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", "dev": true, - "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -16463,8 +18414,9 @@ }, "node_modules/read-pkg": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -16477,8 +18429,9 @@ }, "node_modules/read-pkg-up": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -16493,8 +18446,9 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -16505,8 +18459,9 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -16516,8 +18471,9 @@ }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -16530,8 +18486,9 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -16541,24 +18498,27 @@ }, "node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/readable-stream": { "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16570,8 +18530,9 @@ }, "node_modules/readdirp": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -16581,8 +18542,9 @@ }, "node_modules/recast": { "version": "0.23.4", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.4.tgz", + "integrity": "sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==", "dev": true, - "license": "MIT", "dependencies": { "assert": "^2.0.0", "ast-types": "^0.16.1", @@ -16594,18 +18556,32 @@ "node": ">= 4" } }, + "node_modules/recast/node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/recast/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/rechoir": { "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, - "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -16615,13 +18591,15 @@ }, "node_modules/regenerate": { "version": "1.4.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true }, "node_modules/regenerate-unicode-properties": { "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -16630,22 +18608,25 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "dev": true, - "license": "MIT" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true }, "node_modules/regenerator-transform": { "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -16660,8 +18641,9 @@ }, "node_modules/regexpu-core": { "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, - "license": "MIT", "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -16676,8 +18658,9 @@ }, "node_modules/regjsparser": { "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -16687,6 +18670,8 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -16694,8 +18679,9 @@ }, "node_modules/remark-external-links": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", + "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==", "dev": true, - "license": "MIT", "dependencies": { "extend": "^3.0.0", "is-absolute-url": "^3.0.0", @@ -16710,8 +18696,9 @@ }, "node_modules/remark-gfm": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "dev": true, - "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-gfm": "^2.0.0", @@ -16725,8 +18712,9 @@ }, "node_modules/remark-slug": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", + "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==", "dev": true, - "license": "MIT", "dependencies": { "github-slugger": "^1.0.0", "mdast-util-to-string": "^1.0.0", @@ -16739,8 +18727,9 @@ }, "node_modules/remark-slug/node_modules/mdast-util-to-string": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -16748,32 +18737,36 @@ }, "node_modules/require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/requireindex": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.5" } }, "node_modules/resolve": { - "version": "1.22.4", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -16788,8 +18781,9 @@ }, "node_modules/resolve-dir": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, - "license": "MIT", "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -16800,16 +18794,18 @@ }, "node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-path": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", "dev": true, - "license": "MIT", "dependencies": { "http-errors": "~1.6.2", "path-is-absolute": "1.0.1" @@ -16820,16 +18816,18 @@ }, "node_modules/resolve-path/node_modules/depd": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/resolve-path/node_modules/http-errors": { "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, - "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -16842,34 +18840,39 @@ }, "node_modules/resolve-path/node_modules/inherits": { "version": "2.0.3", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true }, "node_modules/resolve-path/node_modules/setprototypeof": { "version": "1.1.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true }, "node_modules/resolve-path/node_modules/statuses": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/restore-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -16880,8 +18883,9 @@ }, "node_modules/reusify": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -16889,8 +18893,9 @@ }, "node_modules/rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -16901,10 +18906,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -16920,10 +18936,23 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { "version": "4.9.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz", + "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -16953,8 +18982,9 @@ }, "node_modules/rollup-plugin-esbuild": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.0.tgz", + "integrity": "sha512-HPpXU65V8bSpW8eSYPahtUJaJHmbxJGybuf/M8B3bz/6i11YaYHlNNJIQ38gSEV0FyohQOgVxJ2YMEEZtEmwvA==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.5", "debug": "^4.3.4", @@ -16971,13 +19001,15 @@ }, "node_modules/rollup-plugin-esbuild/node_modules/es-module-lexer": { "version": "1.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true }, "node_modules/rollup-plugin-import-css": { "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-import-css/-/rollup-plugin-import-css-3.4.0.tgz", + "integrity": "sha512-997dJi7M7yYFn7tZer/UVt72mh4GH/hHBv48j3V4jsGSg+1DdYUXn+QB9SMMCNKF99pSv6QXmIOLTyeuijIsgg==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.4" }, @@ -16990,22 +19022,26 @@ }, "node_modules/rollup-plugin-web-worker-loader": { "version": "1.6.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.6.1.tgz", + "integrity": "sha512-4QywQSz1NXFHKdyiou16mH3ijpcfLtLGOrAqvAqu1Gx+P8+zj+3gwC2BSL/VW1d+LW4nIHC8F7d7OXhs9UdR2A==", "dev": true, - "license": "MIT", "peerDependencies": { "rollup": "^1.9.2 || ^2.0.0" } }, "node_modules/run-async": { "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -17021,22 +19057,23 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/sade": { "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, - "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -17045,12 +19082,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.1", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -17063,47 +19101,56 @@ }, "node_modules/safe-buffer": { "version": "5.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "node_modules/safe-regex-test": { - "version": "1.0.0", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", + "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/safe-stable-stringify": { "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/safer-buffer": { "version": "2.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "node_modules/scheduler": { "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dev": true, - "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/schema-utils": { - "version": "4.0.1", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -17120,8 +19167,9 @@ }, "node_modules/schema-utils/node_modules/ajv": { "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -17135,21 +19183,24 @@ }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/send": { "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, - "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -17171,26 +19222,30 @@ }, "node_modules/send/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/send/node_modules/ms": { "version": "2.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "node_modules/sentence-case": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "dev": true, - "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -17199,8 +19254,9 @@ }, "node_modules/serve-static": { "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, - "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -17213,18 +19269,21 @@ }, "node_modules/set-cookie-parser": { "version": "2.6.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true }, "node_modules/set-function-length": { - "version": "1.1.1", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", "dev": true, - "license": "MIT", "dependencies": { "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -17232,8 +19291,9 @@ }, "node_modules/set-function-name": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, - "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -17245,13 +19305,15 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "node_modules/shallow-clone": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -17261,8 +19323,9 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -17272,16 +19335,18 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -17293,13 +19358,15 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, "node_modules/simple-update-notifier": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -17309,8 +19376,9 @@ }, "node_modules/simple-update-notifier/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -17320,8 +19388,9 @@ }, "node_modules/simple-update-notifier/node_modules/semver": { "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -17334,26 +19403,30 @@ }, "node_modules/simple-update-notifier/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/sisteransi": { "version": "1.0.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -17368,8 +19441,9 @@ }, "node_modules/slice-ansi/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -17382,8 +19456,9 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -17391,8 +19466,9 @@ }, "node_modules/snake-case": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, - "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -17400,8 +19476,9 @@ }, "node_modules/socks": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, - "license": "MIT", "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -17413,8 +19490,9 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, - "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -17426,24 +19504,27 @@ }, "node_modules/source-map": { "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/source-map-js": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -17451,16 +19532,18 @@ }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/space-separated-tokens": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -17468,8 +19551,9 @@ }, "node_modules/spdx-correct": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -17477,13 +19561,15 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -17491,89 +19577,48 @@ }, "node_modules/spdx-license-ids": { "version": "3.0.16", - "dev": true, - "license": "CC0-1.0" + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true }, "node_modules/sprintf-js": { "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, "node_modules/statuses": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/stdin-discarder": { - "version": "0.1.0", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^5.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stdin-discarder/node_modules/bl": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/stdin-discarder/node_modules/buffer": { - "version": "6.0.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/store2": { "version": "2.14.2", - "dev": true, - "license": "(MIT OR GPL-3.0)" + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==", + "dev": true }, "node_modules/storybook": { "version": "7.6.7", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.7.tgz", + "integrity": "sha512-1Cd895dqYIT5MOUOCDlD73OTWoJubLq/sWC7AMzkMrLu76yD4Cu6f+wv1HDrRAheRaCaeT3yhYEhsMB6qHIcaA==", "dev": true, - "license": "MIT", "dependencies": { "@storybook/cli": "7.6.7" }, @@ -17588,21 +19633,24 @@ }, "node_modules/stream-read-all": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", + "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/stream-shift": { - "version": "1.0.1", - "dev": true, - "license": "MIT" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true }, "node_modules/streamx": { - "version": "2.15.5", + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", "dev": true, - "license": "MIT", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -17610,21 +19658,44 @@ }, "node_modules/strict-event-emitter": { "version": "0.4.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", + "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", + "dev": true }, "node_modules/string_decoder": { - "version": "1.1.1", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -17637,8 +19708,9 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -17650,18 +19722,21 @@ }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/string.prototype.trim": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -17676,8 +19751,9 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -17689,8 +19765,9 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -17702,8 +19779,9 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -17714,8 +19792,9 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -17725,24 +19804,27 @@ }, "node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -17752,8 +19834,9 @@ }, "node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -17763,8 +19846,9 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -17774,13 +19858,15 @@ }, "node_modules/synchronous-promise": { "version": "2.0.17", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", + "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==", + "dev": true }, "node_modules/table-layout": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", + "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", "dev": true, - "license": "MIT", "dependencies": { "@75lb/deep-merge": "^1.1.1", "array-back": "^6.2.2", @@ -17799,32 +19885,36 @@ }, "node_modules/table-layout/node_modules/array-back": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/table-layout/node_modules/typical": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/tapable": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tar": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, - "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -17839,8 +19929,9 @@ }, "node_modules/tar-fs": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", "dev": true, - "license": "MIT", "dependencies": { "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", @@ -17849,8 +19940,9 @@ }, "node_modules/tar-stream": { "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", "dev": true, - "license": "MIT", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -17859,21 +19951,24 @@ }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/telejson": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.2.0.tgz", + "integrity": "sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==", "dev": true, - "license": "MIT", "dependencies": { "memoizerific": "^1.11.3" } }, "node_modules/temp": { "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", "dev": true, - "license": "MIT", "dependencies": { "rimraf": "~2.6.2" }, @@ -17883,16 +19978,28 @@ }, "node_modules/temp-dir": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/temp/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/temp/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17908,10 +20015,23 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/temp/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -17921,8 +20041,9 @@ }, "node_modules/tempy": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", "dev": true, - "license": "MIT", "dependencies": { "del": "^6.0.0", "is-stream": "^2.0.0", @@ -17937,10 +20058,88 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tempy/node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy/node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tempy/node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy/node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tempy/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tempy/node_modules/type-fest": { "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -17950,8 +20149,9 @@ }, "node_modules/test-exclude": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -17961,10 +20161,21 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17980,20 +20191,35 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-table": { "version": "0.2.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "node_modules/through": { "version": "2.3.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true }, "node_modules/through2": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, - "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -18001,13 +20227,15 @@ }, "node_modules/through2/node_modules/isarray": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "node_modules/through2/node_modules/readable-stream": { "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -18018,10 +20246,20 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/tiny-glob": { "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", "dev": true, - "license": "MIT", "dependencies": { "globalyzer": "0.1.0", "globrex": "^0.1.2" @@ -18029,29 +20267,34 @@ }, "node_modules/tiny-invariant": { "version": "1.3.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "dev": true }, "node_modules/tinymce": { "version": "6.8.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.2.tgz", + "integrity": "sha512-Lho79o2Y1Yn+XdlTEkHTEkEmzwYWTXz7IUsvPwxJF3VTtgHUIAAuBab29kik+f2KED3rZvQavr9D7sHVMJ9x4A==" }, "node_modules/tinymce-i18n": { - "version": "23.12.4", - "license": "MIT" + "version": "23.12.19", + "resolved": "https://registry.npmjs.org/tinymce-i18n/-/tinymce-i18n-23.12.19.tgz", + "integrity": "sha512-z73zjNgzNRgiJsO1g6sBHnp5pqLquVhaK+7+9aeZR5w5/kV36YxJAFbaN6qo/8TXwygPctkMnJTxiRR8n+ZYIQ==" }, "node_modules/title-case": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/tmp": { "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -18061,21 +20304,24 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, "node_modules/to-fast-properties": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -18085,21 +20331,24 @@ }, "node_modules/tocbot": { "version": "4.25.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.25.0.tgz", + "integrity": "sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==", + "dev": true }, "node_modules/toidentifier": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/tr46": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, - "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -18109,17 +20358,19 @@ }, "node_modules/trough": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/ts-api-utils": { - "version": "1.0.1", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, - "license": "MIT", "engines": { "node": ">=16.13.0" }, @@ -18129,16 +20380,18 @@ }, "node_modules/ts-dedent": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.10" } }, "node_modules/ts-node": { - "version": "10.9.1", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, - "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -18179,21 +20432,24 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/ts-simple-type": { "version": "2.0.0-next.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ts-simple-type/-/ts-simple-type-2.0.0-next.0.tgz", + "integrity": "sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg==", + "dev": true }, "node_modules/tsc-alias": { "version": "1.8.8", + "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.8.tgz", + "integrity": "sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==", "dev": true, - "license": "MIT", "dependencies": { "chokidar": "^3.5.3", "commander": "^9.0.0", @@ -18208,24 +20464,26 @@ }, "node_modules/tsc-alias/node_modules/commander": { "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, - "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/tsconfck": { - "version": "2.1.1", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.0.1.tgz", + "integrity": "sha512-7ppiBlF3UEddCLeI1JRx5m2Ryq+xk4JrZuq4EuYXykipebaq1dV0Fhgr1hb7CkmHt32QSgOZlcqVLEtHBG4/mg==", "dev": true, - "license": "MIT", "bin": { "tsconfck": "bin/tsconfck.js" }, "engines": { - "node": "^14.13.1 || ^16 || >=18" + "node": "^18 || >=20" }, "peerDependencies": { - "typescript": "^4.3.5 || ^5.0.0" + "typescript": "^5.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -18235,8 +20493,9 @@ }, "node_modules/tsconfig-paths": { "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -18246,8 +20505,9 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -18257,20 +20517,23 @@ }, "node_modules/tslib": { "version": "2.6.2", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tsscmp": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.6.x" } }, "node_modules/tsutils": { "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -18283,13 +20546,15 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -18299,8 +20564,9 @@ }, "node_modules/type-fest": { "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -18310,8 +20576,9 @@ }, "node_modules/type-is": { "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -18322,8 +20589,9 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -18335,8 +20603,9 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -18352,8 +20621,9 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -18370,8 +20640,9 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -18383,13 +20654,15 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true }, "node_modules/typescript": { "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18400,8 +20673,9 @@ }, "node_modules/typescript-json-schema": { "version": "0.62.0", + "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.62.0.tgz", + "integrity": "sha512-qRO6pCgyjKJ230QYdOxDRpdQrBeeino4v5p2rYmSD72Jf4rD3O+cJcROv46sQukm46CLWoeusqvBgKpynEv25g==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@types/json-schema": "^7.0.9", "@types/node": "^16.9.2", @@ -18416,10 +20690,27 @@ "typescript-json-schema": "bin/typescript-json-schema" } }, + "node_modules/typescript-json-schema/node_modules/@types/node": { + "version": "16.18.71", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.71.tgz", + "integrity": "sha512-ARO+458bNJQeNEFuPyT6W+q9ULotmsQzhV3XABsFSxEvRMUYENcBsNAHWYPlahU+UHa5gCVwyKT1Z3f1Wwr26Q==", + "dev": true + }, + "node_modules/typescript-json-schema/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/typescript-json-schema/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -18435,10 +20726,23 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/typescript-json-schema/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/typescript-json-schema/node_modules/typescript": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18449,14 +20753,17 @@ }, "node_modules/typical": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ua-parser-js": { - "version": "1.0.35", + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", "dev": true, "funding": [ { @@ -18466,22 +20773,27 @@ { "type": "paypal", "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } ], - "license": "MIT", "engines": { "node": "*" } }, "node_modules/ufo": { "version": "1.3.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true }, "node_modules/uglify-js": { "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, - "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -18492,8 +20804,9 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -18506,8 +20819,9 @@ }, "node_modules/unbzip2-stream": { "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, - "license": "MIT", "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" @@ -18515,29 +20829,33 @@ }, "node_modules/unc-path-regex": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/undici-types": { "version": "5.26.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -18548,24 +20866,27 @@ }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unified": { "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -18582,8 +20903,9 @@ }, "node_modules/unique-string": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, - "license": "MIT", "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -18593,8 +20915,9 @@ }, "node_modules/unist-util-is": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0" }, @@ -18605,8 +20928,9 @@ }, "node_modules/unist-util-stringify-position": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0" }, @@ -18617,8 +20941,9 @@ }, "node_modules/unist-util-visit": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", @@ -18631,8 +20956,9 @@ }, "node_modules/unist-util-visit-parents": { "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" @@ -18644,8 +20970,9 @@ }, "node_modules/unist-util-visit/node_modules/unist-util-is": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -18653,8 +20980,9 @@ }, "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" @@ -18666,24 +20994,27 @@ }, "node_modules/universalify": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/unplugin": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz", + "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==", "dev": true, - "license": "MIT", "dependencies": { "acorn": "^8.11.2", "chokidar": "^3.5.3", @@ -18693,14 +21024,17 @@ }, "node_modules/untildify": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/update-browserslist-db": { "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -18716,7 +21050,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -18730,32 +21063,36 @@ }, "node_modules/upper-case": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/use-callback-ref": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", + "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -18774,8 +21111,9 @@ }, "node_modules/use-resize-observer": { "version": "9.1.0", + "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", + "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", "dev": true, - "license": "MIT", "dependencies": { "@juggle/resize-observer": "^3.3.1" }, @@ -18786,8 +21124,9 @@ }, "node_modules/use-sidecar": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", "dev": true, - "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -18807,8 +21146,9 @@ }, "node_modules/util": { "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, - "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -18819,32 +21159,36 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], - "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/uvu": { "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", "dev": true, - "license": "MIT", "dependencies": { "dequal": "^2.0.0", "diff": "^5.0.0", @@ -18860,25 +21204,28 @@ }, "node_modules/uvu/node_modules/kleur": { "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, - "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" @@ -18886,16 +21233,18 @@ }, "node_modules/v8flags": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10.13.0" } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -18903,16 +21252,18 @@ }, "node_modules/vary": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vfile": { "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -18926,8 +21277,9 @@ }, "node_modules/vfile-message": { "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", "dev": true, - "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" @@ -18939,8 +21291,9 @@ }, "node_modules/vite": { "version": "5.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz", + "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==", "dev": true, - "license": "MIT", "dependencies": { "esbuild": "^0.19.3", "postcss": "^8.4.32", @@ -18993,8 +21346,9 @@ }, "node_modules/vite-plugin-static-copy": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.0.tgz", + "integrity": "sha512-kMlrB3WDtC5GzFedNIPkpjnOAr8M11PfWOiUaONrUZ3AqogTsOmIhTt6w7Fh311wl8pN81ld7sfuOEogFJ9N8A==", "dev": true, - "license": "MIT", "dependencies": { "chokidar": "^3.5.3", "fast-glob": "^3.2.11", @@ -19009,13 +21363,14 @@ } }, "node_modules/vite-tsconfig-paths": { - "version": "4.2.3", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.1.tgz", + "integrity": "sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.1.1", "globrex": "^0.1.2", - "tsconfck": "^2.1.0" + "tsconfck": "^3.0.1" }, "peerDependencies": { "vite": "*" @@ -19026,30 +21381,410 @@ } } }, - "node_modules/vite/node_modules/fsevents": { - "version": "2.3.3", + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" } }, "node_modules/walker": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, "node_modules/watchpack": { "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, - "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -19060,16 +21795,18 @@ }, "node_modules/wcwidth": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, - "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/web-component-analyzer": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/web-component-analyzer/-/web-component-analyzer-2.0.0.tgz", + "integrity": "sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ==", "dev": true, - "license": "MIT", "dependencies": { "fast-glob": "^3.2.2", "ts-simple-type": "2.0.0-next.0", @@ -19083,8 +21820,9 @@ }, "node_modules/web-component-analyzer/node_modules/typescript": { "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19093,27 +21831,11 @@ "node": ">=14.17" } }, - "node_modules/web-component-analyzer/node_modules/yargs": { - "version": "17.7.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/web-encoding": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", "dev": true, - "license": "MIT", "dependencies": { "util": "^0.12.3" }, @@ -19123,29 +21845,33 @@ }, "node_modules/webidl-conversions": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/webpack-sources": { "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/webpack-virtual-modules": { "version": "0.6.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz", + "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==", + "dev": true }, "node_modules/whatwg-url": { "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, - "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -19156,8 +21882,9 @@ }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -19170,8 +21897,9 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -19183,24 +21911,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-collection": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-typed-array": { "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", @@ -19217,38 +21932,39 @@ }, "node_modules/wordwrap": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true }, "node_modules/wordwrapjs": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } }, "node_modules/wrap-ansi": { - "version": "7.0.0", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19263,8 +21979,9 @@ }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -19277,8 +21994,9 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -19291,13 +22009,15 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/write-file-atomic": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, - "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -19307,9 +22027,10 @@ } }, "node_modules/ws": { - "version": "8.13.0", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -19328,29 +22049,33 @@ }, "node_modules/xtend": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yargs": { - "version": "17.7.1", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -19366,16 +22091,18 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yauzl": { "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, - "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -19383,24 +22110,27 @@ }, "node_modules/ylru": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", + "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -19410,8 +22140,9 @@ }, "node_modules/zwitch": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", "dev": true, - "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" From 6ab8eb42422fc3cf64543d7869b83fdfecff9964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 10:03:35 +0100 Subject: [PATCH 403/786] encode and decode udi --- .../block-list-block/block-list-block.element.ts | 12 ++++++++---- .../block-list/manager/block-list-manager.context.ts | 5 +++-- .../block/block/workspace/block-workspace.element.ts | 7 ++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index a05882a878..40f95cb891 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -5,6 +5,7 @@ import { type UmbBlockLayoutBaseModel } from '@umbraco-cms/backoffice/block'; import '../ref-list-block/index.js'; import { UmbBlockContext } from '@umbraco-cms/backoffice/block'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { encodeFilePath } from '@umbraco-cms/backoffice/utils'; /** * @element umb-property-editor-ui-block-list-block @@ -45,9 +46,9 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl this.observe(this.#context.label, (label) => { this._label = label; }); - this.observe(this.#context.layout, (layout) => { + /*this.observe(this.#context.layout, (layout) => { console.log('layout', layout); - }); + });*/ } #requestDelete() { @@ -78,7 +79,10 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl ${this.#renderRefBlock()} ${this._workspacePath - ? html` + ? html` ` : ''} @@ -90,7 +94,7 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl } render() { - return this.layout ? this.#renderBlock() : ''; + return this.layout && this._contentUdi ? this.#renderBlock() : ''; } static styles = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts index 4e72075956..46c65365f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts @@ -1,8 +1,9 @@ import { UmbBlockManagerContext } from '@umbraco-cms/backoffice/block'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbId } from '@umbraco-cms/backoffice/id'; -import { buildUdi } from '@umbraco-cms/backoffice/utils'; +/** + * A implementation of the Block Manager specifically for the Block List. + */ export class UmbBlockListManagerContext extends UmbBlockManagerContext { createBlock(contentElementTypeKey: string) { return super._createBlockData({}, contentElementTypeKey); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts index deb2037b50..5576623403 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts @@ -8,6 +8,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; import { UmbApi, UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; import { ManifestWorkspace, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { decodeFilePath } from '@umbraco-cms/backoffice/utils'; @customElement('umb-block-workspace') export class UmbBlockWorkspaceElement extends UmbLitElement { @@ -51,11 +52,11 @@ export class UmbBlockWorkspaceElement extends UmbLitElement { }, }, { - path: 'edit/:id', + path: 'edit/:udi', component: this.#editorElement, setup: (_component, info) => { - const id = info.match.params.id; - this.#workspaceContext!.load(id); + const udi = decodeFilePath(info.match.params.udi); + this.#workspaceContext!.load(udi); }, }, ]; From ff36445fb20467fa176724e7149f17c03c1ac5fd Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 18 Jan 2024 10:06:06 +0100 Subject: [PATCH 404/786] force lit-html version --- src/Umbraco.Web.UI.Client/package-lock.json | 18 +++++++++--------- src/Umbraco.Web.UI.Client/package.json | 4 ++++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 45242082bc..941c515ca0 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -3355,6 +3355,15 @@ "lit-html": "^2.0.0 || ^3.0.0" } }, + "node_modules/@open-wc/testing-helpers/node_modules/lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "dev": true, + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, "node_modules/@openid/appauth": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@openid/appauth/-/appauth-1.3.1.tgz", @@ -14962,15 +14971,6 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/lit-html": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.1.tgz", - "integrity": "sha512-x/EwfGk2D/f4odSFM40hcGumzqoKv0/SUh6fBO+1Ragez81APrcAMPo1jIrCDd9Sn+Z4CT867HWKViByvkDZUA==", - "dev": true, - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/lit/node_modules/@lit/reactive-element": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index f3074ff40a..ece7301376 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -212,6 +212,10 @@ "vite-tsconfig-paths": "^4.2.3", "web-component-analyzer": "^2.0.0" }, + "overrides": { + "lit": "$lit", + "lit-html": "2.8.0" + }, "msw": { "workerDirectory": "public" }, From 29f3ba02c906e4a853e96f84f75a770e963e8e3d Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 18 Jan 2024 10:11:35 +0100 Subject: [PATCH 405/786] fix storybook build --- ...i-block-type-group-configuration.stories.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts index b980264f2a..66ccdfa84e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts @@ -1,15 +1,19 @@ -import { Meta, Story } from '@storybook/web-components'; +import { Meta, StoryObj } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-type-group-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; -import './property-editor-ui-block-grid-group-configuration.element.js'; +import './property-editor-ui-block-type-group-configuration.element.js'; -export default { +const meta: Meta = { title: 'Property Editor UIs/Block Grid Group Configuration', component: 'umb-property-editor-ui-block-type-group-configuration', id: 'umb-property-editor-ui-block-type-group-configuration', -} as Meta; +}; -export const AAAOverview: Story = () => - html``; -AAAOverview.storyName = 'Overview'; +export default meta; +type Story = StoryObj; + +export const Overview: Story = { + render: () => + html``, +}; From aaf4824aadab9e33a69159e27a169c78fef3fb47 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 18 Jan 2024 10:14:48 +0100 Subject: [PATCH 406/786] update lockfile --- src/Umbraco.Web.UI.Client/package-lock.json | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 941c515ca0..1ef5cbf0c8 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -3355,15 +3355,6 @@ "lit-html": "^2.0.0 || ^3.0.0" } }, - "node_modules/@open-wc/testing-helpers/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dev": true, - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/@openid/appauth": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@openid/appauth/-/appauth-1.3.1.tgz", @@ -14963,7 +14954,7 @@ "@lit-labs/ssr-dom-shim": "^1.0.0" } }, - "node_modules/lit-element/node_modules/lit-html": { + "node_modules/lit-html": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", @@ -14979,14 +14970,6 @@ "@lit-labs/ssr-dom-shim": "^1.0.0" } }, - "node_modules/lit/node_modules/lit-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", - "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", From 0ad29fd637ede3993b10be81d934eb918b4d2555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 10:50:06 +0100 Subject: [PATCH 407/786] routeable workspace for block creation --- ...i-block-grid-type-configuration.element.ts | 4 +- .../src/packages/block/block-grid/types.ts | 4 +- .../manager/block-list-manager.context.ts | 11 ++- .../property-editor-ui-block-list.element.ts | 49 +++++++---- ...i-block-list-type-configuration.element.ts | 4 +- .../src/packages/block/block-list/types.ts | 6 +- .../input-block-type.element.ts | 6 +- .../src/packages/block/block-type/types.ts | 4 +- .../workspace/block-type-workspace.context.ts | 6 +- .../block/block/context/block.context.ts | 4 +- .../block/manager/block-manager.context.ts | 10 +-- .../block-catalogue-modal.element.ts | 37 ++++++-- .../block-catalogue-modal.token.ts | 10 +-- .../workspace/block-workspace.context.ts | 85 +++++++++++-------- .../workspace/block-workspace.modal-token.ts | 10 +++ .../packages/block/block/workspace/index.ts | 1 + ...ui-block-rte-type-configuration.element.ts | 4 +- 17 files changed, 162 insertions(+), 93 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 94be84645b..3ca99e2fdf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,4 +1,4 @@ -import type { UmbBlockTypeBase, UmbInputBlockTypeElement } from '../../../block-type/index.js'; +import type { UmbBlockTypeBaseModel, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; @@ -15,7 +15,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement implements UmbPropertyEditorUiElement { @property({ attribute: false }) - value: UmbBlockTypeBase[] = []; + value: UmbBlockTypeBaseModel[] = []; @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts index 1a58b9ea39..cf593c1fd2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts @@ -1,6 +1,6 @@ -import type { UmbBlockTypeBase } from '../block-type/index.js'; +import type { UmbBlockTypeBaseModel } from '../block-type/index.js'; -export interface UmbBlockGridType extends UmbBlockTypeBase { +export interface UmbBlockGridType extends UmbBlockTypeBaseModel { columnSpanOptions: Array; allowAtRoot: boolean; allowInAreas: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts index 46c65365f0..8049c9c48a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts @@ -1,12 +1,17 @@ +import type { UmbBlockListLayoutModel, UmbBlockListTypeModel } from '../types.js'; import { UmbBlockManagerContext } from '@umbraco-cms/backoffice/block'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; /** * A implementation of the Block Manager specifically for the Block List. */ -export class UmbBlockListManagerContext extends UmbBlockManagerContext { - createBlock(contentElementTypeKey: string) { - return super._createBlockData({}, contentElementTypeKey); +export class UmbBlockListManagerContext< + BlockLayoutType extends UmbBlockListLayoutModel = UmbBlockListLayoutModel, +> extends UmbBlockManagerContext { + createBlock(layoutEntry: Omit, contentElementTypeKey: string) { + // Here is room to append some extra layout properties if needed for this type. + + return super._createBlockData(layoutEntry, contentElementTypeKey); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index dbdc8f8110..eb572768d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -1,3 +1,5 @@ +import { UmbBlockListManagerContext } from '../../manager/block-list-manager.context.js'; +import '../../components/block-list-block/index.js'; import { UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS } from './manifests.js'; import { html, customElement, property, state, repeat, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -7,14 +9,17 @@ import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/ import { UMB_BLOCK_CATALOGUE_MODAL, UmbBlockLayoutBaseModel, - UmbBlockTypeBase, + UmbBlockTypeBaseModel, type UmbBlockValueType, } from '@umbraco-cms/backoffice/block'; -import '../../components/block-list-block/index.js'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { + UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UmbModalManagerContext, + UmbModalRouteBuilder, + UmbModalRouteRegistrationController, +} from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbBlockListManagerContext } from '../../manager/block-list-manager.context.js'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} @@ -55,7 +60,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement this._limitMin = validationLimit?.min; this._limitMax = validationLimit?.max; - const blocks = config.getValueByAlias>('blocks') ?? []; + const blocks = config.getValueByAlias>('blocks') ?? []; this.#context.setBlockTypes(blocks); //config.useSingleBlockMode //config.useLiveEditing @@ -69,15 +74,15 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement private _limitMax?: number; @state() - private _blocks?: Array; - - #context = new UmbBlockListManagerContext(this); + private _blocks?: Array; @state() _layouts: Array = []; @state() - _workspacePath?: string; + _catalogueRouteBuilder?: UmbModalRouteBuilder; + + #context = new UmbBlockListManagerContext(this); #modalContext?: UmbModalManagerContext; @@ -92,7 +97,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement this.observe(this.#context.layouts, (layouts) => { this._value = { ...this._value, layout: { [UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS]: layouts } }; // Notify that the value has changed. - console.log('layout changed', this._value); + //console.log('layout changed', this._value); // TODO: idea: consider inserting an await here, so other changes could appear first? Maybe some mechanism to only fire change event onces? this._layouts = layouts; this.dispatchEvent(new UmbChangeEvent()); @@ -100,18 +105,27 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement this.observe(this.#context.contents, (contents) => { this._value = { ...this._value, contentData: contents }; // Notify that the value has changed. - console.log('content changed', this._value); + //console.log('content changed', this._value); this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.settings, (settings) => { this._value = { ...this._value, settingsData: settings }; // Notify that the value has changed. - console.log('settings changed', this._value); + //console.log('settings changed', this._value); this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.blockTypes, (blockTypes) => { this._blocks = blockTypes; }); + + new UmbModalRouteRegistrationController(this, UMB_BLOCK_CATALOGUE_MODAL) + .addAdditionalPath(':view') + .onSetup((routingInfo) => { + return { data: { blocks: this._blocks ?? [], openClipboard: routingInfo.view === 'clipboard' } }; + }) + .observeRouteBuilder((routeBuilder) => { + this._catalogueRouteBuilder = routeBuilder; + }); } async #openBlockCatalogue(openClipboard: boolean = false) { @@ -120,11 +134,9 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement data: { blocks: this._blocks ?? [], openClipboard }, }); - const data = await modalContext?.onSubmit(); - - /**TODO: Insert next modal for data */ - console.log('submitted', data); + await modalContext?.onSubmit(); + /* if (!data) return; const block = this._blocks?.find((x) => x.contentElementTypeKey === data.key); @@ -132,6 +144,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement if (!block?.contentElementTypeKey) return; this.#context.createBlock(block.contentElementTypeKey); + */ } render() { @@ -148,13 +161,13 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement id="add-button" look="placeholder" label=${this.localize.term('content_createEmpty')} - @click=${() => this.#openBlockCatalogue()}> + href=${this._catalogueRouteBuilder?.({ view: 'create' }) ?? ''}> ${this.localize.term('content_createEmpty')} this.#openBlockCatalogue(true)}> + href=${this._catalogueRouteBuilder?.({ view: 'clipboard' }) ?? ''}> `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts index 492d316425..db661e7135 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts @@ -1,4 +1,4 @@ -import type { UmbBlockTypeBase, UmbInputBlockTypeElement } from '../../../block-type/index.js'; +import type { UmbBlockTypeBaseModel, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; @@ -15,7 +15,7 @@ export class UmbPropertyEditorUIBlockListBlockConfigurationElement implements UmbPropertyEditorUiElement { @property({ attribute: false }) - value: UmbBlockTypeBase[] = []; + value: UmbBlockTypeBaseModel[] = []; @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts index 89760d3050..d9987e8df1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts @@ -1,3 +1,5 @@ -import type { UmbBlockTypeBase } from '../block-type/index.js'; +import type { UmbBlockTypeBaseModel } from '../block-type/index.js'; +import { UmbBlockLayoutBaseModel } from '../index.js'; -export interface UmbBlockListType extends UmbBlockTypeBase {} +export interface UmbBlockListTypeModel extends UmbBlockTypeBaseModel {} +export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 3936422192..6950372ea9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -1,4 +1,4 @@ -import { UmbBlockTypeBase } from '../../types.js'; +import { UmbBlockTypeBaseModel } from '../../types.js'; import { UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, @@ -11,7 +11,9 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-input-block-type') -export class UmbInputBlockTypeElement extends UmbLitElement { +export class UmbInputBlockTypeElement< + BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel, +> extends UmbLitElement { // @property({ type: Array, attribute: false }) public get value() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts index c3b2591cbd..2871fdd639 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts @@ -1,6 +1,6 @@ import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; -export interface UmbBlockTypeBase { +export interface UmbBlockTypeBaseModel { contentElementTypeKey: string; settingsElementTypeKey?: string; label?: string; @@ -17,6 +17,6 @@ export interface UmbBlockTypeGroup { key: string; } -export interface UmbBlockTypeWithGroupKey extends UmbBlockTypeBase { +export interface UmbBlockTypeWithGroupKey extends UmbBlockTypeBaseModel { groupKey?: string | null; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index 3f18cb53c5..66c8e67da1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -1,4 +1,4 @@ -import type { UmbBlockTypeBase } from '../types.js'; +import type { UmbBlockTypeBaseModel } from '../types.js'; import { UMB_PROPERTY_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UmbInvariantableWorkspaceContextInterface, @@ -11,7 +11,7 @@ import { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/backof import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { ManifestWorkspace, PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; -export class UmbBlockTypeWorkspaceContext +export class UmbBlockTypeWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbInvariantableWorkspaceContextInterface { @@ -43,7 +43,7 @@ export class UmbBlockTypeWorkspaceContext { this.observe(context.value, (value) => { if (value) { - const blockTypeData = value.find((x: UmbBlockTypeBase) => x.contentElementTypeKey === unique); + const blockTypeData = value.find((x: UmbBlockTypeBaseModel) => x.contentElementTypeKey === unique); if (blockTypeData) { this.#data.next(blockTypeData); return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index 155b5ec29b..1d8465914f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -1,4 +1,4 @@ -import type { UmbBlockTypeBase } from '../../block-type/types.js'; +import type { UmbBlockTypeBaseModel } from '../../block-type/types.js'; import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; import { UMB_BLOCK_MANAGER_CONTEXT } from '../manager/index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; @@ -7,7 +7,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; export class UmbBlockContext< - BlockType extends UmbBlockTypeBase = UmbBlockTypeBase, + BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel, BlockLayoutType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, > extends UmbContextBase { // diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index a823065669..fba483561e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -6,7 +6,7 @@ import { UmbArrayState, UmbStringState } from '@umbraco-cms/backoffice/observabl import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; -import { UmbBlockTypeBase } from '@umbraco-cms/backoffice/block'; +import { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbId } from '@umbraco-cms/backoffice/id'; @@ -14,7 +14,7 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; type ElementTypeModel = DocumentTypeResponseModel; export abstract class UmbBlockManagerContext< - BlockType extends UmbBlockTypeBase = UmbBlockTypeBase, + BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel, BlockLayoutType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, > extends UmbContextBase { // @@ -125,7 +125,7 @@ export abstract class UmbBlockManagerContext< this.#settings.appendOne(settingsData); } - abstract createBlock(contentElementTypeKey: string): boolean; + abstract createBlock(layoutEntry: Omit, contentElementTypeKey: string): boolean; protected _createBlockData(layoutEntry: Omit, contentElementTypeKey: string) { // Find block type. @@ -137,9 +137,9 @@ export abstract class UmbBlockManagerContext< // Create layout entry: const fullLayoutEntry: BlockLayoutType = { - ...(layoutEntry as BlockLayoutType), contentUdi: buildUdi('element', UmbId.new()), - }; + ...(layoutEntry as Partial), + } as BlockLayoutType; if (blockType.settingsElementTypeKey) { fullLayoutEntry.settingsUdi = buildUdi('element', UmbId.new()); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 1cbc7a5160..7c5d48c78c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -1,3 +1,4 @@ +import { UMB_BLOCK_WORKSPACE_MODAL } from '../../workspace/index.js'; import { UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue, @@ -5,7 +6,7 @@ import { } from '@umbraco-cms/backoffice/block'; import { css, html, customElement, state, repeat, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import { groupBy } from '@umbraco-cms/backoffice/external/lodash'; -import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @customElement('umb-block-catalogue-modal') export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< @@ -19,26 +20,48 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< private _blockGroups: Array<{ key: string; name: string }> = []; @state() - openClipboard?: boolean; + _openClipboard?: boolean; + + @state() + _workspacePath?: string; + + constructor() { + super(); + + new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL) + //.addAdditionalPath('block') // No need for additional path specification in this context as this is for sure the only workspace we want to open here. + .onSetup(() => { + return { data: { preset: {} } }; + }) + .onSubmit(() => { + // When workspace is submitted, we want to close this modal. + this.modalContext?.submit(); + }) + .observeRouteBuilder((routeBuilder) => { + this._workspacePath = routeBuilder({}); + }); + } connectedCallback() { super.connectedCallback(); if (!this.data) return; - this.openClipboard = this.data.openClipboard ?? false; + this._openClipboard = this.data.openClipboard ?? false; this._blocks = this.data.blocks ?? []; this._blockGroups = this.data.blockGroups ?? []; } + /* #onClickBlock(contentElementTypeKey: string) { this.modalContext?.updateValue({ key: contentElementTypeKey }); this.modalContext?.submit(); } + */ render() { return html` - ${this.#renderViews()} ${this.openClipboard ? this.#renderClipboard() : this.#renderCreateEmpty()} + ${this.#renderViews()} ${this._openClipboard ? this.#renderClipboard() : this.#renderCreateEmpty()}
this.#onClickBlock(block.contentElementTypeKey)}> + href="${this._workspacePath}/create/${block.contentElementTypeKey}"> `, @@ -90,11 +113,11 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< #renderViews() { return html` - (this.openClipboard = false)}> + (this._openClipboard = false)}> Create Empty - (this.openClipboard = true)}> + (this._openClipboard = true)}> Clipboard diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts index 1dda60f105..99cedd7654 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts @@ -1,17 +1,15 @@ -import { UmbBlockTypeBase } from '@umbraco-cms/backoffice/block'; +import { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockCatalogueModalData { - blocks: Array; + blocks: Array; blockGroups?: Array<{ name: string; key: string }>; openClipboard?: boolean; } -export interface UmbBlockCatalogueModalValue { - key: string; -} +export type UmbBlockCatalogueModalValue = never; -export const UMB_BLOCK_CATALOGUE_MODAL = new UmbModalToken( +export const UMB_BLOCK_CATALOGUE_MODAL = new UmbModalToken( 'Umb.Modal.BlockCatalogue', { modal: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 6c84c2234c..3e505b3d77 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -17,6 +17,7 @@ export class UmbBlockWorkspaceContext< readonly workspaceAlias; #blockManager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; + #retrieveBlockManager; #entityType: string; @@ -41,45 +42,51 @@ export class UmbBlockWorkspaceContext< super(host, workspaceArgs.manifest.alias); this.#entityType = workspaceArgs.manifest.meta?.entityType; this.workspaceAlias = workspaceArgs.manifest.alias; + + this.#retrieveBlockManager = this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (context) => { + this.#blockManager = context; + }).asPromise(); } async load(unique: string) { - this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (context) => { - this.#blockManager = context; + await this.#retrieveBlockManager; + if (!this.#blockManager) { + throw new Error('Block manager not found'); + return; + } - this.observe( - context.layoutOf(unique), - (layoutData) => { - this.#layout.next(layoutData as LayoutDataType); + this.observe( + this.#blockManager.layoutOf(unique), + (layoutData) => { + this.#layout.next(layoutData as LayoutDataType); - // - // Content: - const contentUdi = layoutData?.contentUdi; - if (contentUdi) { - this.observe( - context.contentOf(contentUdi), - (contentData) => { - this.content.setData(contentData); - }, - 'observeContent', - ); - } + // + // Content: + const contentUdi = layoutData?.contentUdi; + if (contentUdi) { + this.observe( + this.#blockManager!.contentOf(contentUdi), + (contentData) => { + this.content.setData(contentData); + }, + 'observeContent', + ); + } - // Settings: - const settingsUdi = layoutData?.settingsUdi; - if (settingsUdi) { - this.observe( - context.contentOf(settingsUdi), - (settingsData) => { - this.content.setData(settingsData); - }, - 'observeSettings', - ); - } - }, - 'observeLayout', - ); - }); + // Settings: + const settingsUdi = layoutData?.settingsUdi; + if (settingsUdi) { + this.observe( + this.#blockManager!.contentOf(settingsUdi), + (settingsData) => { + this.content.setData(settingsData); + }, + 'observeSettings', + ); + } + }, + 'observeLayout', + ); } async create(contentElementTypeId: string) { @@ -147,12 +154,20 @@ export class UmbBlockWorkspaceContext< async save() { const layoutData = this.#layout.value; - if (!layoutData || !this.#blockManager) return; + const contentData = this.content.getData(); + if (!layoutData || !this.#blockManager || !contentData) return; + + if (this.getIsNew() === true) { + const blockCreated = this.#blockManager.createBlock(layoutData, contentData.contentTypeKey); + if (!blockCreated) { + throw new Error('Block Manager could not create block'); + return; + } + } // TODO: Save the block, but only in non-live-editing mode. this.#blockManager.setOneLayout(layoutData); - const contentData = this.content.getData(); if (contentData) { this.#blockManager.setOneContent(contentData); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts new file mode 100644 index 0000000000..b23ffe2e7c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts @@ -0,0 +1,10 @@ +import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; + +export const UMB_BLOCK_WORKSPACE_MODAL = new UmbModalToken('Umb.Modal.Workspace', { + modal: { + type: 'sidebar', + size: 'large', + }, + data: { entityType: 'block', preset: {} }, + // Recast the type, so the entityType data prop is not required: +}) as UmbModalToken, UmbWorkspaceValue>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts index be726e193c..faae92b1d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts @@ -1,4 +1,5 @@ export * from './block-element-property-dataset.context-token.js'; export * from './block-workspace.context.js'; +export * from './block-workspace.modal-token.js'; export const UMB_BLOCK_WORKSPACE_ALIAS = 'Umb.Workspace.Block'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts index c026910111..cc048d3013 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts @@ -1,4 +1,4 @@ -import { UmbBlockTypeBase, UmbInputBlockTypeElement } from '@umbraco-cms/backoffice/block'; +import { UmbBlockTypeBaseModel, UmbInputBlockTypeElement } from '@umbraco-cms/backoffice/block'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -14,7 +14,7 @@ export class UmbPropertyEditorUIBlockRteBlockConfigurationElement implements UmbPropertyEditorUiElement { @property({ attribute: false }) - value: UmbBlockTypeBase[] = []; + value: UmbBlockTypeBaseModel[] = []; @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; From 7f6b716afc99208e7a4e4828b2c07f0ffa409700 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 11:12:34 +0100 Subject: [PATCH 408/786] todo note --- .../views/created/created-packages-section-view.element.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts index a0c76e0c50..8704957eaf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts @@ -17,6 +17,7 @@ export class UmbCreatedPackagesSectionViewElement extends UmbLitElement implemen constructor() { super(); + // TODO: Do not implement all workspaces at this point. We should only implement the 'package-builder' workspace. this.observe(umbExtensionsRegistry?.extensionsOfType('workspace'), (workspaceExtensions) => { this._workspaces = workspaceExtensions; this._createRoutes(); From 8a63b90b09e849379bcce4967bf8dfdafaabedee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 11:12:43 +0100 Subject: [PATCH 409/786] remove double slash --- .../modals/block-catalogue/block-catalogue-modal.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 7c5d48c78c..f941ef81a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -99,7 +99,7 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< name=${ifDefined(block.label)} background=${ifDefined(block.backgroundColor)} style="color: ${block.iconColor}" - href="${this._workspacePath}/create/${block.contentElementTypeKey}"> + href="${this._workspacePath}create/${block.contentElementTypeKey}"> `, From 610b61293bff1ba69dece7d3223587a2357c147f Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 18 Jan 2024 11:20:39 +0000 Subject: [PATCH 410/786] Generate updated Management API schema models --- .../src/external/backend-api/src/index.ts | 32 +- .../src/models/AuditLogBaseModel.ts | 1 - .../src/models/AuditLogResponseModel.ts | 1 - .../AuditLogWithUsernameResponseModel.ts | 5 +- ...ntTypeCompositionResponseModelBaseModel.ts | 12 + ...bleDocumentTypeCompositionResponseModel.ts | 8 + ...ilableMediaTypeCompositionResponseModel.ts | 8 + .../models/ChangePasswordUserRequestModel.ts | 1 - .../models/ConsentLevelPresentationModel.ts | 1 - .../models/ContentForDocumentResponseModel.ts | 1 - .../models/ContentTreeItemResponseModel.ts | 7 +- .../src/models/ContentTypeCleanupModel.ts | 1 - .../src/models/ContentTypeCompositionModel.ts | 1 - ...entTypeCompositionRequestModelBaseModel.ts | 10 + ...ntTypeCompositionResponseModelBaseModel.ts | 10 + ...ContentTypeForDocumentTypeResponseModel.ts | 1 - .../ContentTypeForMediaTypeResponseModel.ts | 1 - .../src/models/ContentTypeSortModel.ts | 1 - .../src/models/ContentUrlInfoModel.ts | 1 - .../src/models/CopyDataTypeRequestModel.ts | 1 - .../src/models/CopyDocumentRequestModel.ts | 1 - .../models/CopyDocumentTypeRequestModel.ts | 8 + .../src/models/CopyMediaTypeRequestModel.ts | 8 + .../CreateContentForDocumentRequestModel.ts | 1 - .../CreateContentForMediaRequestModel.ts | 1 - ...eContentTypeForDocumentTypeRequestModel.ts | 1 - ...eateContentTypeForMediaTypeRequestModel.ts | 1 - .../src/models/CreateDataTypeRequestModel.ts | 5 +- .../CreateDictionaryItemRequestModel.ts | 5 +- .../src/models/CreateDocumentRequestModel.ts | 5 +- ...ntTypePropertyTypeContainerRequestModel.ts | 1 - ...ateDocumentTypePropertyTypeRequestModel.ts | 1 - .../models/CreateDocumentTypeRequestModel.ts | 7 +- .../src/models/CreateFolderRequestModel.ts | 5 +- .../CreateInitialPasswordUserRequestModel.ts | 3 +- .../src/models/CreateLanguageRequestModel.ts | 3 +- .../src/models/CreateMediaRequestModel.ts | 3 +- ...iaTypePropertyTypeContainerRequestModel.ts | 1 - ...CreateMediaTypePropertyTypeRequestModel.ts | 1 - .../src/models/CreateMediaTypeRequestModel.ts | 1 - .../src/models/CreatePackageRequestModel.ts | 1 - .../models/CreatePartialViewRequestModel.ts | 1 - .../models/CreatePathFolderRequestModel.ts | 3 +- .../models/CreateRelationTypeRequestModel.ts | 3 +- .../src/models/CreateScriptRequestModel.ts | 1 - .../models/CreateStylesheetRequestModel.ts | 1 - .../src/models/CreateTemplateRequestModel.ts | 5 +- .../CreateTextFileViewModelBaseModel.ts | 3 +- .../src/models/CreateUserGroupRequestModel.ts | 1 - .../src/models/CreateUserRequestModel.ts | 1 - .../src/models/CreateUserResponseModel.ts | 1 - .../src/models/CultureReponseModel.ts | 1 - .../CurrenUserConfigurationResponseModel.ts | 12 + .../src/models/CurrentUserResponseModel.ts | 1 - .../src/models/DataTypeItemResponseModel.ts | 3 +- .../src/models/DataTypeModelBaseModel.ts | 1 - .../DataTypePropertyPresentationModel.ts | 1 - .../models/DataTypePropertyReferenceModel.ts | 1 - .../models/DataTypeReferenceResponseModel.ts | 1 - .../src/models/DataTypeResponseModel.ts | 5 +- .../models/DataTypeTreeItemResponseModel.ts | 3 +- .../models/DatabaseInstallResponseModel.ts | 1 - .../DatabaseSettingsPresentationModel.ts | 1 - .../models/DeleteUserGroupsRequestModel.ts | 1 - .../src/models/DeleteUsersRequestModel.ts | 1 - .../models/DictionaryItemItemResponseModel.ts | 1 - .../models/DictionaryItemModelBaseModel.ts | 1 - .../src/models/DictionaryItemResponseModel.ts | 3 +- .../models/DictionaryItemTranslationModel.ts | 1 - .../models/DictionaryOverviewResponseModel.ts | 1 - .../src/models/DisableUserRequestModel.ts | 1 - .../models/DocumentBlueprintResponseModel.ts | 1 - .../DocumentBlueprintTreeItemResponseModel.ts | 7 +- .../src/models/DocumentItemResponseModel.ts | 7 +- .../DocumentNotificationResponseModel.ts | 1 - .../src/models/DocumentResponseModel.ts | 7 +- .../models/DocumentTreeItemResponseModel.ts | 13 +- .../DocumentTypeCompositionRequestModel.ts | 10 + .../DocumentTypeCompositionResponseModel.ts | 8 + .../models/DocumentTypeItemResponseModel.ts | 5 +- ...tTypePropertyTypeContainerResponseModel.ts | 1 - .../DocumentTypePropertyTypeResponseModel.ts | 1 - .../src/models/DocumentTypeResponseModel.ts | 7 +- .../DocumentTypeTreeItemResponseModel.ts | 5 +- .../src/models/DocumentValueModel.ts | 1 - .../src/models/DocumentVariantRequestModel.ts | 1 - .../models/DocumentVariantResponseModel.ts | 5 +- .../src/models/DomainPresentationModel.ts | 1 - .../DomainsPresentationModelBaseModel.ts | 1 - .../src/models/DomainsResponseModel.ts | 1 - .../models/DynamicRootContextRequestModel.ts | 11 + .../DynamicRootQueryOriginRequestModel.ts | 9 + .../models/DynamicRootQueryRequestModel.ts | 12 + .../DynamicRootQueryStepRequestModel.ts | 9 + .../src/models/DynamicRootRequestModel.ts | 12 + ...seModel.ts => DynamicRootResponseModel.ts} | 5 +- .../src/models/EnableUserRequestModel.ts | 1 - .../src/models/EntityTreeItemResponseModel.ts | 7 +- ...ractRichTextStylesheetRulesRequestModel.ts | 1 - ...actRichTextStylesheetRulesResponseModel.ts | 1 - .../src/models/FieldPresentationModel.ts | 1 - .../models/FileItemResponseModelBaseModel.ts | 1 - .../FileSystemTreeItemPresentationModel.ts | 5 +- .../src/models/FolderModelBaseModel.ts | 1 - .../src/models/FolderResponseModel.ts | 5 +- .../src/models/FolderTreeItemResponseModel.ts | 3 +- .../models/HealthCheckActionRequestModel.ts | 1 - .../HealthCheckGroupPresentationBaseModel.ts | 1 - .../HealthCheckGroupPresentationModel.ts | 3 +- .../models/HealthCheckGroupResponseModel.ts | 1 - ...HealthCheckGroupWithResultResponseModel.ts | 1 - .../src/models/HealthCheckModel.ts | 5 +- .../src/models/HealthCheckModelBaseModel.ts | 1 - .../models/HealthCheckResultResponseModel.ts | 1 - .../HealthCheckWithResultPresentationModel.ts | 3 +- .../src/models/HelpPageResponseModel.ts | 1 - .../models/ImportDictionaryRequestModel.ts | 1 - .../src/models/IndexResponseModel.ts | 1 - .../models/InstallSettingsResponseModel.ts | 1 - .../src/models/InstallVResponseModel.ts | 1 - ...terpolateRichTextStylesheetRequestModel.ts | 1 - ...erpolateRichTextStylesheetResponseModel.ts | 1 - .../src/models/InviteUserRequestModel.ts | 3 +- .../src/models/ItemResponseModelBaseModel.ts | 1 - .../src/models/ItemSortingRequestModel.ts | 1 - .../src/models/LanguageItemResponseModel.ts | 1 - .../src/models/LanguageModelBaseModel.ts | 1 - .../src/models/LanguageResponseModel.ts | 3 +- .../src/models/LinkedLoginModel.ts | 1 - .../src/models/LinkedLoginsRequestModel.ts | 1 - .../src/models/LogLevelCountsReponseModel.ts | 1 - .../LogMessagePropertyPresentationModel.ts | 1 - .../src/models/LogMessageResponseModel.ts | 1 - .../src/models/LogTemplateResponseModel.ts | 1 - .../src/models/LoggerResponseModel.ts | 1 - .../src/models/MediaItemResponseModel.ts | 5 +- .../src/models/MediaTreeItemResponseModel.ts | 3 +- .../MediaTypeCompositionRequestModel.ts | 8 + .../MediaTypeCompositionResponseModel.ts | 8 + .../src/models/MediaTypeItemResponseModel.ts | 3 +- ...aTypePropertyTypeContainerResponseModel.ts | 1 - .../MediaTypePropertyTypeResponseModel.ts | 1 - .../src/models/MediaTypeResponseModel.ts | 1 - .../models/MediaTypeTreeItemResponseModel.ts | 3 +- .../backend-api/src/models/MediaValueModel.ts | 1 - .../src/models/MediaVariantRequestModel.ts | 1 - .../src/models/MediaVariantResponseModel.ts | 1 - .../models/MemberGroupItemResponseModel.ts | 1 - .../src/models/MemberItemResponseModel.ts | 3 +- .../src/models/MemberTypeItemResponseModel.ts | 3 +- .../src/models/ModelsBuilderResponseModel.ts | 1 - .../src/models/MoveDataTypeRequestModel.ts | 1 - .../src/models/MoveDictionaryRequestModel.ts | 1 - .../src/models/MoveDocumentRequestModel.ts | 1 - .../models/MoveDocumentTypeRequestModel.ts | 8 + .../src/models/MoveMediaRequestModel.ts | 1 - .../src/models/MoveMediaTypeRequestModel.ts | 8 + .../src/models/ObjectTypeResponseModel.ts | 1 - .../backend-api/src/models/OkResult.ts | 1 - .../models/OutOfDateStatusResponseModel.ts | 1 - .../models/PackageDefinitionResponseModel.ts | 5 +- .../models/PackageManifestResponseModel.ts | 1 - .../PackageMigrationStatusResponseModel.ts | 1 - .../src/models/PackageModelBaseModel.ts | 1 - .../src/models/PagedAuditLogResponseModel.ts | 1 - .../PagedAuditLogWithUsernameResponseModel.ts | 1 - .../src/models/PagedCultureReponseModel.ts | 1 - .../PagedDataTypeTreeItemResponseModel.ts | 1 - .../PagedDictionaryOverviewResponseModel.ts | 1 - ...dDocumentBlueprintTreeItemResponseModel.ts | 1 - .../PagedDocumentTreeItemResponseModel.ts | 1 - .../models/PagedDocumentTypeResponseModel.ts | 1 - .../PagedDocumentTypeTreeItemResponseModel.ts | 1 - .../PagedEntityTreeItemResponseModel.ts | 1 - ...agedFileSystemTreeItemPresentationModel.ts | 1 - .../PagedHealthCheckGroupResponseModel.ts | 1 - .../src/models/PagedHelpPageResponseModel.ts | 1 - .../src/models/PagedIndexResponseModel.ts | 1 - .../src/models/PagedLanguageResponseModel.ts | 1 - .../models/PagedLogMessageResponseModel.ts | 1 - .../models/PagedLogTemplateResponseModel.ts | 1 - .../src/models/PagedLoggerResponseModel.ts | 1 - .../models/PagedMediaTreeItemResponseModel.ts | 1 - .../PagedMediaTypeTreeItemResponseModel.ts | 1 - .../models/PagedObjectTypeResponseModel.ts | 1 - .../PagedPackageDefinitionResponseModel.ts | 1 - ...agedPackageMigrationStatusResponseModel.ts | 1 - .../src/models/PagedProblemDetailsModel.ts | 1 - .../PagedRecycleBinItemResponseModel.ts | 1 - .../models/PagedRedirectUrlResponseModel.ts | 1 - .../models/PagedRelationItemResponseModel.ts | 1 - .../src/models/PagedRelationResponseModel.ts | 1 - .../PagedSavedLogSearchResponseModel.ts | 1 - .../models/PagedSearchResultResponseModel.ts | 1 - .../src/models/PagedSearcherResponseModel.ts | 1 - .../models/PagedSnippetItemResponseModel.ts | 1 - .../PagedStylesheetOverviewResponseModel.ts | 1 - .../src/models/PagedTagResponseModel.ts | 1 - .../src/models/PagedTelemetryResponseModel.ts | 1 - .../src/models/PagedUserGroupResponseModel.ts | 1 - .../src/models/PagedUserResponseModel.ts | 1 - .../models/PartialViewItemResponseModel.ts | 1 - .../src/models/PartialViewResponseModel.ts | 1 - .../models/PartialViewSnippetResponseModel.ts | 1 - .../src/models/PartialViewUpdateModel.ts | 1 - .../PasswordConfigurationResponseModel.ts | 12 + .../src/models/PathFolderModelBaseModel.ts | 1 - .../src/models/PathFolderResponseModel.ts | 5 +- .../src/models/ProfilingStatusRequestModel.ts | 1 - .../models/ProfilingStatusResponseModel.ts | 1 - .../src/models/PropertyTypeAppearanceModel.ts | 1 - .../PropertyTypeContainerModelBaseModel.ts | 1 - .../src/models/PropertyTypeModelBaseModel.ts | 1 - .../src/models/PropertyTypeValidationModel.ts | 1 - .../src/models/PublicAccessBaseModel.ts | 1 - .../src/models/PublicAccessRequestModel.ts | 5 +- .../src/models/PublicAccessResponseModel.ts | 5 +- .../src/models/PublishDocumentRequestModel.ts | 1 - ...lishDocumentWithDescendantsRequestModel.ts | 3 +- .../src/models/RecycleBinItemResponseModel.ts | 1 - .../src/models/RedirectUrlResponseModel.ts | 1 - .../models/RedirectUrlStatusResponseModel.ts | 1 - .../src/models/RelationItemResponseModel.ts | 1 - .../src/models/RelationResponseModel.ts | 1 - .../src/models/RelationTypeBaseModel.ts | 1 - .../models/RelationTypeItemResponseModel.ts | 1 - .../src/models/RelationTypeResponseModel.ts | 13 +- .../models/ResendInviteUserRequestModel.ts | 1 - .../src/models/ResetPasswordRequestModel.ts | 1 - .../models/ResetPasswordTokenRequestModel.ts | 3 +- .../src/models/RichTextRuleModel.ts | 1 - .../RichTextStylesheetRulesResponseModel.ts | 1 - .../src/models/RuntimeModeModel.ts | 10 + .../SavedLogSearchPresenationBaseModel.ts | 1 - .../src/models/SavedLogSearchRequestModel.ts | 1 - .../src/models/SavedLogSearchResponseModel.ts | 1 - .../src/models/ScriptItemResponseModel.ts | 1 - .../src/models/ScriptResponseModel.ts | 1 - .../src/models/ScriptUpdateModel.ts | 1 - .../src/models/ScriptViewModelBaseModel.ts | 1 - .../src/models/SearchResultResponseModel.ts | 1 - .../src/models/SearcherResponseModel.ts | 1 - .../SecurityConfigurationResponseModel.ts | 10 + .../models/ServerConfigurationBaseModel.ts | 10 + ...> ServerConfigurationItemResponseModel.ts} | 3 +- .../ServerConfigurationResponseModel.ts | 8 + .../models/ServerInformationResponseModel.ts | 8 +- .../src/models/ServerStatusResponseModel.ts | 1 - .../ServerTroubleshootingResponseModel.ts | 8 + .../src/models/SetAvatarRequestModel.ts | 1 - .../src/models/SetTourStatusRequestModel.ts | 1 - .../src/models/SnippetItemResponseModel.ts | 1 - .../src/models/SortingRequestModel.ts | 1 - .../src/models/StaticFileItemResponseModel.ts | 1 - .../src/models/StylesheetItemResponseModel.ts | 1 - .../models/StylesheetOverviewResponseModel.ts | 1 - .../src/models/StylesheetResponseModel.ts | 1 - .../src/models/StylesheetUpdateModel.ts | 1 - .../src/models/TagResponseModel.ts | 1 - .../TelemetryRepresentationBaseModel.ts | 1 - .../src/models/TelemetryRequestModel.ts | 1 - .../src/models/TelemetryResponseModel.ts | 1 - .../src/models/TemplateItemResponseModel.ts | 3 +- .../src/models/TemplateModelBaseModel.ts | 1 - ...lateQueryExecuteFilterPresentationModel.ts | 1 - .../src/models/TemplateQueryExecuteModel.ts | 1 - .../models/TemplateQueryExecuteSortModel.ts | 1 - .../src/models/TemplateQueryOperatorModel.ts | 1 - .../TemplateQueryPropertyPresentationModel.ts | 1 - ...emplateQueryResultItemPresentationModel.ts | 1 - .../TemplateQueryResultResponseModel.ts | 1 - .../TemplateQuerySettingsResponseModel.ts | 1 - .../src/models/TemplateResponseModel.ts | 5 +- .../models/TemplateScaffoldResponseModel.ts | 1 - .../src/models/TemporaryFileResponseModel.ts | 1 - .../models/TextFileResponseModelBaseModel.ts | 3 +- .../src/models/TextFileUpdateModel.ts | 1 - .../src/models/TextFileViewModelBaseModel.ts | 1 - .../backend-api/src/models/TourStatusModel.ts | 1 - .../src/models/TreeItemPresentationModel.ts | 1 - .../src/models/UnlockUsersRequestModel.ts | 1 - .../models/UnpublishDocumentRequestModel.ts | 1 - .../UpdateContentForDocumentRequestModel.ts | 1 - .../UpdateContentForMediaRequestModel.ts | 1 - ...eContentTypeForDocumentTypeRequestModel.ts | 1 - ...dateContentTypeForMediaTypeRequestModel.ts | 1 - .../src/models/UpdateDataTypeRequestModel.ts | 1 - .../UpdateDictionaryItemRequestModel.ts | 1 - ...UpdateDocumentNotificationsRequestModel.ts | 1 - .../src/models/UpdateDocumentRequestModel.ts | 3 +- ...ntTypePropertyTypeContainerRequestModel.ts | 1 - ...ateDocumentTypePropertyTypeRequestModel.ts | 1 - .../models/UpdateDocumentTypeRequestModel.ts | 7 +- .../src/models/UpdateDomainsRequestModel.ts | 1 - .../src/models/UpdateFolderResponseModel.ts | 1 - .../src/models/UpdateLanguageRequestModel.ts | 1 - .../src/models/UpdateMediaRequestModel.ts | 1 - ...iaTypePropertyTypeContainerRequestModel.ts | 1 - ...UpdateMediaTypePropertyTypeRequestModel.ts | 1 - .../src/models/UpdateMediaTypeRequestModel.ts | 1 - .../src/models/UpdatePackageRequestModel.ts | 3 +- .../models/UpdatePartialViewRequestModel.ts | 1 - .../models/UpdateRelationTypeRequestModel.ts | 1 - .../src/models/UpdateScriptRequestModel.ts | 1 - .../models/UpdateStylesheetRequestModel.ts | 1 - .../src/models/UpdateTemplateRequestModel.ts | 1 - .../UpdateTextFileViewModelBaseModel.ts | 3 +- .../src/models/UpdateUserGroupRequestModel.ts | 1 - .../UpdateUserGroupsOnUserRequestModel.ts | 1 - .../src/models/UpdateUserRequestModel.ts | 7 +- .../models/UpgradeSettingsResponseModel.ts | 1 - .../models/UserConfigurationResponseModel.ts | 11 + .../src/models/UserGroupBaseModel.ts | 1 - .../src/models/UserGroupItemResponseModel.ts | 3 +- .../src/models/UserGroupResponseModel.ts | 5 +- .../src/models/UserInstallResponseModel.ts | 1 - .../src/models/UserItemResponseModel.ts | 1 - .../src/models/UserPermissionModel.ts | 1 - .../models/UserPermissionsResponseModel.ts | 1 - .../src/models/UserPresentationBaseModel.ts | 1 - .../src/models/UserResponseModel.ts | 25 +- .../src/models/UserSettingsModel.ts | 1 - .../models/UserTourStatusesResponseModel.ts | 1 - .../src/models/ValueModelBaseModel.ts | 1 - .../src/models/VariantModelBaseModel.ts | 1 - .../models/VariantResponseModelBaseModel.ts | 1 - .../src/models/VariantTreeItemModel.ts | 1 - .../models/VerifyInviteUserRequestModel.ts | 1 - .../VerifyResetPasswordTokenRequestModel.ts | 1 - .../src/services/AuditLogResource.ts | 64 ++-- .../src/services/CultureResource.ts | 12 +- .../src/services/DataTypeResource.ts | 168 +++++----- .../src/services/DictionaryResource.ts | 120 ++++---- .../src/services/DocumentBlueprintResource.ts | 20 +- .../src/services/DocumentResource.ts | 290 +++++++++--------- .../src/services/DocumentTypeResource.ts | 219 +++++++++---- .../src/services/DynamicRootResource.ts | 48 +++ .../src/services/HealthCheckResource.ts | 36 +-- .../backend-api/src/services/HelpResource.ts | 24 +- .../src/services/IndexerResource.ts | 28 +- .../src/services/InstallResource.ts | 16 +- .../src/services/LanguageResource.ts | 56 ++-- .../src/services/LogViewerResource.ts | 124 ++++---- .../backend-api/src/services/MediaResource.ts | 144 ++++----- .../src/services/MediaTypeResource.ts | 219 +++++++++---- .../src/services/MemberGroupResource.ts | 20 +- .../src/services/MemberResource.ts | 8 +- .../src/services/MemberTypeResource.ts | 20 +- .../src/services/ObjectTypesResource.ts | 12 +- .../src/services/PackageResource.ts | 76 ++--- .../src/services/PartialViewResource.ts | 119 +++---- .../src/services/PreviewResource.ts | 39 +++ .../src/services/ProfilingResource.ts | 8 +- .../src/services/PropertyTypeResource.ts | 12 +- .../services/RedirectManagementResource.ts | 48 +-- .../src/services/RelationResource.ts | 36 +-- .../src/services/RelationTypeResource.ts | 56 ++-- .../src/services/ScriptResource.ts | 99 +++--- .../src/services/SearcherResource.ts | 32 +- .../src/services/SecurityResource.ts | 43 ++- .../src/services/ServerResource.ts | 22 +- .../src/services/StaticFileResource.ts | 36 +-- .../src/services/StylesheetResource.ts | 135 ++++---- .../backend-api/src/services/TagResource.ts | 24 +- .../src/services/TelemetryResource.ts | 20 +- .../src/services/TemplateResource.ts | 88 +++--- .../src/services/TemporaryFileResource.ts | 44 ++- .../backend-api/src/services/TourResource.ts | 8 +- .../src/services/TrackedReferenceResource.ts | 60 ++-- .../src/services/UserGroupResource.ts | 118 +++++-- .../backend-api/src/services/UserResource.ts | 262 +++++++++------- 371 files changed, 2139 insertions(+), 1725 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts rename src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/{VersionResponseModel.ts => DynamicRootResponseModel.ts} (66%) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts rename src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/{ServerInformationItemResponseModel.ts => ServerConfigurationItemResponseModel.ts} (76%) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index cfccd9a5f3..f6b789d25c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -11,6 +11,9 @@ export type { AuditLogBaseModel } from './models/AuditLogBaseModel'; export type { AuditLogResponseModel } from './models/AuditLogResponseModel'; export type { AuditLogWithUsernameResponseModel } from './models/AuditLogWithUsernameResponseModel'; export { AuditTypeModel } from './models/AuditTypeModel'; +export type { AvailableContentTypeCompositionResponseModelBaseModel } from './models/AvailableContentTypeCompositionResponseModelBaseModel'; +export type { AvailableDocumentTypeCompositionResponseModel } from './models/AvailableDocumentTypeCompositionResponseModel'; +export type { AvailableMediaTypeCompositionResponseModel } from './models/AvailableMediaTypeCompositionResponseModel'; export type { ChangePasswordUserRequestModel } from './models/ChangePasswordUserRequestModel'; export type { ConsentLevelPresentationModel } from './models/ConsentLevelPresentationModel'; export type { ContentForDocumentResponseModel } from './models/ContentForDocumentResponseModel'; @@ -18,6 +21,8 @@ export { ContentStateModel } from './models/ContentStateModel'; export type { ContentTreeItemResponseModel } from './models/ContentTreeItemResponseModel'; export type { ContentTypeCleanupModel } from './models/ContentTypeCleanupModel'; export type { ContentTypeCompositionModel } from './models/ContentTypeCompositionModel'; +export type { ContentTypeCompositionRequestModelBaseModel } from './models/ContentTypeCompositionRequestModelBaseModel'; +export type { ContentTypeCompositionResponseModelBaseModel } from './models/ContentTypeCompositionResponseModelBaseModel'; export { ContentTypeCompositionTypeModel } from './models/ContentTypeCompositionTypeModel'; export type { ContentTypeForDocumentTypeResponseModel } from './models/ContentTypeForDocumentTypeResponseModel'; export type { ContentTypeForMediaTypeResponseModel } from './models/ContentTypeForMediaTypeResponseModel'; @@ -25,6 +30,8 @@ export type { ContentTypeSortModel } from './models/ContentTypeSortModel'; export type { ContentUrlInfoModel } from './models/ContentUrlInfoModel'; export type { CopyDataTypeRequestModel } from './models/CopyDataTypeRequestModel'; export type { CopyDocumentRequestModel } from './models/CopyDocumentRequestModel'; +export type { CopyDocumentTypeRequestModel } from './models/CopyDocumentTypeRequestModel'; +export type { CopyMediaTypeRequestModel } from './models/CopyMediaTypeRequestModel'; export type { CreateContentForDocumentRequestModel } from './models/CreateContentForDocumentRequestModel'; export type { CreateContentForMediaRequestModel } from './models/CreateContentForMediaRequestModel'; export type { CreateContentTypeForDocumentTypeRequestModel } from './models/CreateContentTypeForDocumentTypeRequestModel'; @@ -55,6 +62,7 @@ export type { CreateUserRequestModel } from './models/CreateUserRequestModel'; export type { CreateUserResponseModel } from './models/CreateUserResponseModel'; export type { CultureReponseModel } from './models/CultureReponseModel'; export type { CurrentUserResponseModel } from './models/CurrentUserResponseModel'; +export type { CurrenUserConfigurationResponseModel } from './models/CurrenUserConfigurationResponseModel'; export type { DatabaseInstallResponseModel } from './models/DatabaseInstallResponseModel'; export type { DatabaseSettingsPresentationModel } from './models/DatabaseSettingsPresentationModel'; export type { DataTypeItemResponseModel } from './models/DataTypeItemResponseModel'; @@ -79,6 +87,8 @@ export type { DocumentItemResponseModel } from './models/DocumentItemResponseMod export type { DocumentNotificationResponseModel } from './models/DocumentNotificationResponseModel'; export type { DocumentResponseModel } from './models/DocumentResponseModel'; export type { DocumentTreeItemResponseModel } from './models/DocumentTreeItemResponseModel'; +export type { DocumentTypeCompositionRequestModel } from './models/DocumentTypeCompositionRequestModel'; +export type { DocumentTypeCompositionResponseModel } from './models/DocumentTypeCompositionResponseModel'; export type { DocumentTypeItemResponseModel } from './models/DocumentTypeItemResponseModel'; export type { DocumentTypePropertyTypeContainerResponseModel } from './models/DocumentTypePropertyTypeContainerResponseModel'; export type { DocumentTypePropertyTypeResponseModel } from './models/DocumentTypePropertyTypeResponseModel'; @@ -90,6 +100,12 @@ export type { DocumentVariantResponseModel } from './models/DocumentVariantRespo export type { DomainPresentationModel } from './models/DomainPresentationModel'; export type { DomainsPresentationModelBaseModel } from './models/DomainsPresentationModelBaseModel'; export type { DomainsResponseModel } from './models/DomainsResponseModel'; +export type { DynamicRootContextRequestModel } from './models/DynamicRootContextRequestModel'; +export type { DynamicRootQueryOriginRequestModel } from './models/DynamicRootQueryOriginRequestModel'; +export type { DynamicRootQueryRequestModel } from './models/DynamicRootQueryRequestModel'; +export type { DynamicRootQueryStepRequestModel } from './models/DynamicRootQueryStepRequestModel'; +export type { DynamicRootRequestModel } from './models/DynamicRootRequestModel'; +export type { DynamicRootResponseModel } from './models/DynamicRootResponseModel'; export type { EnableUserRequestModel } from './models/EnableUserRequestModel'; export type { EntityTreeItemResponseModel } from './models/EntityTreeItemResponseModel'; export type { ExtractRichTextStylesheetRulesRequestModel } from './models/ExtractRichTextStylesheetRulesRequestModel'; @@ -133,6 +149,8 @@ export type { LogMessageResponseModel } from './models/LogMessageResponseModel'; export type { LogTemplateResponseModel } from './models/LogTemplateResponseModel'; export type { MediaItemResponseModel } from './models/MediaItemResponseModel'; export type { MediaTreeItemResponseModel } from './models/MediaTreeItemResponseModel'; +export type { MediaTypeCompositionRequestModel } from './models/MediaTypeCompositionRequestModel'; +export type { MediaTypeCompositionResponseModel } from './models/MediaTypeCompositionResponseModel'; export type { MediaTypeItemResponseModel } from './models/MediaTypeItemResponseModel'; export type { MediaTypePropertyTypeContainerResponseModel } from './models/MediaTypePropertyTypeContainerResponseModel'; export type { MediaTypePropertyTypeResponseModel } from './models/MediaTypePropertyTypeResponseModel'; @@ -149,7 +167,9 @@ export { ModelsModeModel } from './models/ModelsModeModel'; export type { MoveDataTypeRequestModel } from './models/MoveDataTypeRequestModel'; export type { MoveDictionaryRequestModel } from './models/MoveDictionaryRequestModel'; export type { MoveDocumentRequestModel } from './models/MoveDocumentRequestModel'; +export type { MoveDocumentTypeRequestModel } from './models/MoveDocumentTypeRequestModel'; export type { MoveMediaRequestModel } from './models/MoveMediaRequestModel'; +export type { MoveMediaTypeRequestModel } from './models/MoveMediaTypeRequestModel'; export type { ObjectTypeResponseModel } from './models/ObjectTypeResponseModel'; export type { OkResult } from './models/OkResult'; export { OperatorModel } from './models/OperatorModel'; @@ -200,6 +220,7 @@ export type { PartialViewItemResponseModel } from './models/PartialViewItemRespo export type { PartialViewResponseModel } from './models/PartialViewResponseModel'; export type { PartialViewSnippetResponseModel } from './models/PartialViewSnippetResponseModel'; export type { PartialViewUpdateModel } from './models/PartialViewUpdateModel'; +export type { PasswordConfigurationResponseModel } from './models/PasswordConfigurationResponseModel'; export type { PathFolderModelBaseModel } from './models/PathFolderModelBaseModel'; export type { PathFolderResponseModel } from './models/PathFolderResponseModel'; export type { ProblemDetails } from './models/ProblemDetails'; @@ -231,6 +252,7 @@ export type { ResetPasswordTokenRequestModel } from './models/ResetPasswordToken export type { RichTextRuleModel } from './models/RichTextRuleModel'; export type { RichTextStylesheetRulesResponseModel } from './models/RichTextStylesheetRulesResponseModel'; export { RuntimeLevelModel } from './models/RuntimeLevelModel'; +export { RuntimeModeModel } from './models/RuntimeModeModel'; export type { SavedLogSearchPresenationBaseModel } from './models/SavedLogSearchPresenationBaseModel'; export type { SavedLogSearchRequestModel } from './models/SavedLogSearchRequestModel'; export type { SavedLogSearchResponseModel } from './models/SavedLogSearchResponseModel'; @@ -240,9 +262,13 @@ export type { ScriptUpdateModel } from './models/ScriptUpdateModel'; export type { ScriptViewModelBaseModel } from './models/ScriptViewModelBaseModel'; export type { SearcherResponseModel } from './models/SearcherResponseModel'; export type { SearchResultResponseModel } from './models/SearchResultResponseModel'; -export type { ServerInformationItemResponseModel } from './models/ServerInformationItemResponseModel'; +export type { SecurityConfigurationResponseModel } from './models/SecurityConfigurationResponseModel'; +export type { ServerConfigurationBaseModel } from './models/ServerConfigurationBaseModel'; +export type { ServerConfigurationItemResponseModel } from './models/ServerConfigurationItemResponseModel'; +export type { ServerConfigurationResponseModel } from './models/ServerConfigurationResponseModel'; export type { ServerInformationResponseModel } from './models/ServerInformationResponseModel'; export type { ServerStatusResponseModel } from './models/ServerStatusResponseModel'; +export type { ServerTroubleshootingResponseModel } from './models/ServerTroubleshootingResponseModel'; export type { SetAvatarRequestModel } from './models/SetAvatarRequestModel'; export type { SetTourStatusRequestModel } from './models/SetTourStatusRequestModel'; export type { SnippetItemResponseModel } from './models/SnippetItemResponseModel'; @@ -308,6 +334,7 @@ export type { UpdateUserGroupRequestModel } from './models/UpdateUserGroupReques export type { UpdateUserGroupsOnUserRequestModel } from './models/UpdateUserGroupsOnUserRequestModel'; export type { UpdateUserRequestModel } from './models/UpdateUserRequestModel'; export type { UpgradeSettingsResponseModel } from './models/UpgradeSettingsResponseModel'; +export type { UserConfigurationResponseModel } from './models/UserConfigurationResponseModel'; export type { UserGroupBaseModel } from './models/UserGroupBaseModel'; export type { UserGroupItemResponseModel } from './models/UserGroupItemResponseModel'; export type { UserGroupResponseModel } from './models/UserGroupResponseModel'; @@ -327,7 +354,6 @@ export type { VariantResponseModelBaseModel } from './models/VariantResponseMode export type { VariantTreeItemModel } from './models/VariantTreeItemModel'; export type { VerifyInviteUserRequestModel } from './models/VerifyInviteUserRequestModel'; export type { VerifyResetPasswordTokenRequestModel } from './models/VerifyResetPasswordTokenRequestModel'; -export type { VersionResponseModel } from './models/VersionResponseModel'; export { AuditLogResource } from './services/AuditLogResource'; export { CultureResource } from './services/CultureResource'; @@ -336,6 +362,7 @@ export { DictionaryResource } from './services/DictionaryResource'; export { DocumentResource } from './services/DocumentResource'; export { DocumentBlueprintResource } from './services/DocumentBlueprintResource'; export { DocumentTypeResource } from './services/DocumentTypeResource'; +export { DynamicRootResource } from './services/DynamicRootResource'; export { HealthCheckResource } from './services/HealthCheckResource'; export { HelpResource } from './services/HelpResource'; export { IndexerResource } from './services/IndexerResource'; @@ -351,6 +378,7 @@ export { ModelsBuilderResource } from './services/ModelsBuilderResource'; export { ObjectTypesResource } from './services/ObjectTypesResource'; export { PackageResource } from './services/PackageResource'; export { PartialViewResource } from './services/PartialViewResource'; +export { PreviewResource } from './services/PreviewResource'; export { ProfilingResource } from './services/ProfilingResource'; export { PropertyTypeResource } from './services/PropertyTypeResource'; export { PublishedCacheResource } from './services/PublishedCacheResource'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts index e68127bc22..6338db587b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts @@ -14,4 +14,3 @@ export type AuditLogBaseModel = { comment?: string | null; parameters?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts index 4ecddd6605..c9fed6801b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts @@ -6,4 +6,3 @@ import type { AuditLogBaseModel } from './AuditLogBaseModel'; export type AuditLogResponseModel = AuditLogBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts index 2ee1c4acc5..aa10559144 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts @@ -6,7 +6,6 @@ import type { AuditLogBaseModel } from './AuditLogBaseModel'; export type AuditLogWithUsernameResponseModel = (AuditLogBaseModel & { - userName?: string | null; - userAvatars: Array; +userName?: string | null; +userAvatars: Array; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts new file mode 100644 index 0000000000..71f7eb6c54 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableContentTypeCompositionResponseModelBaseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type AvailableContentTypeCompositionResponseModelBaseModel = { + id: string; + name: string; + icon: string; + folderPath: Array; + isCompatible: boolean; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..27583de71d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableDocumentTypeCompositionResponseModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AvailableContentTypeCompositionResponseModelBaseModel } from './AvailableContentTypeCompositionResponseModelBaseModel'; + +export type AvailableDocumentTypeCompositionResponseModel = AvailableContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..2a2e955d86 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AvailableMediaTypeCompositionResponseModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AvailableContentTypeCompositionResponseModelBaseModel } from './AvailableContentTypeCompositionResponseModelBaseModel'; + +export type AvailableMediaTypeCompositionResponseModel = AvailableContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts index 9a435d14d3..ce2f7c5bab 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts @@ -7,4 +7,3 @@ export type ChangePasswordUserRequestModel = { newPassword: string; oldPassword?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts index 1df32f48de..ae6d68b1d2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts @@ -9,4 +9,3 @@ export type ConsentLevelPresentationModel = { level: TelemetryLevelModel; description: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts index 5316d49211..863793e02e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts @@ -12,4 +12,3 @@ export type ContentForDocumentResponseModel = { id: string; contentTypeId: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts index c9a0e89dc4..d1347bae1f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts @@ -6,8 +6,7 @@ import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; export type ContentTreeItemResponseModel = (EntityTreeItemResponseModel & { - noAccess: boolean; - isTrashed: boolean; - id: string; +noAccess: boolean; +isTrashed: boolean; +id: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts index ba8199a31c..9e03330e73 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts @@ -8,4 +8,3 @@ export type ContentTypeCleanupModel = { keepAllVersionsNewerThanDays?: number | null; keepLatestVersionPerDayForDays?: number | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts index 93a472eeb1..9812ade9ed 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts @@ -9,4 +9,3 @@ export type ContentTypeCompositionModel = { id: string; compositionType: ContentTypeCompositionTypeModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts new file mode 100644 index 0000000000..4abc6ecaa3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionRequestModelBaseModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ContentTypeCompositionRequestModelBaseModel = { + id?: string | null; + currentPropertyAliases: Array; + currentCompositeIds: Array; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts new file mode 100644 index 0000000000..48bcb91f60 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ContentTypeCompositionResponseModelBaseModel = { + id: string; + name: string; + icon: string; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts index 88bddf263e..f0f65e483c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts @@ -23,4 +23,3 @@ export type ContentTypeForDocumentTypeResponseModel = { compositions: Array; id: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts index 9937d75829..9d7e5d3f9d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts @@ -23,4 +23,3 @@ export type ContentTypeForMediaTypeResponseModel = { compositions: Array; id: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts index 2ee3edd8a2..83239e1e12 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts @@ -7,4 +7,3 @@ export type ContentTypeSortModel = { id: string; sortOrder: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts index 435ff9dd73..bdd424a485 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts @@ -7,4 +7,3 @@ export type ContentUrlInfoModel = { culture?: string | null; url: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts index 0a4d58fe70..17a312c5b2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts @@ -6,4 +6,3 @@ export type CopyDataTypeRequestModel = { targetId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts index 45bc6a294a..625a011400 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts @@ -8,4 +8,3 @@ export type CopyDocumentRequestModel = { relateToOriginal: boolean; includeDescendants: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts new file mode 100644 index 0000000000..54a1580100 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CopyDocumentTypeRequestModel = { + targetId?: string | null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts new file mode 100644 index 0000000000..cca6a8c788 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CopyMediaTypeRequestModel = { + targetId?: string | null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts index 70f1abb553..eccb38a6ea 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts @@ -12,4 +12,3 @@ export type CreateContentForDocumentRequestModel = { id?: string | null; parentId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts index 58ae8fb584..028bd92d74 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts @@ -12,4 +12,3 @@ export type CreateContentForMediaRequestModel = { id?: string | null; parentId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts index 7fcbdef551..9179609311 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts @@ -24,4 +24,3 @@ export type CreateContentTypeForDocumentTypeRequestModel = { id?: string | null; containerId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts index 70586787f1..390ce03ac1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts @@ -24,4 +24,3 @@ export type CreateContentTypeForMediaTypeRequestModel = { id?: string | null; containerId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts index 521fae8673..2c82e8c591 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts @@ -6,7 +6,6 @@ import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; export type CreateDataTypeRequestModel = (DataTypeModelBaseModel & { - id?: string | null; - parentId?: string | null; +id?: string | null; +parentId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts index ee60863e59..7ee00666fb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts @@ -6,7 +6,6 @@ import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; export type CreateDictionaryItemRequestModel = (DictionaryItemModelBaseModel & { - id?: string | null; - parentId?: string | null; +id?: string | null; +parentId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts index 0211ebb676..6ce932dbba 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts @@ -6,7 +6,6 @@ import type { CreateContentForDocumentRequestModel } from './CreateContentForDocumentRequestModel'; export type CreateDocumentRequestModel = (CreateContentForDocumentRequestModel & { - contentTypeId: string; - templateId?: string | null; +contentTypeId: string; +templateId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts index 75695a9551..e2b1b8b399 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type CreateDocumentTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts index 49c3e3cf95..18d7d3dc9e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type CreateDocumentTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts index db2c65c7da..6886b97810 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts @@ -7,8 +7,7 @@ import type { ContentTypeCleanupModel } from './ContentTypeCleanupModel'; import type { CreateContentTypeForDocumentTypeRequestModel } from './CreateContentTypeForDocumentTypeRequestModel'; export type CreateDocumentTypeRequestModel = (CreateContentTypeForDocumentTypeRequestModel & { - allowedTemplateIds: Array; - defaultTemplateId?: string | null; - cleanup: ContentTypeCleanupModel; +allowedTemplateIds: Array; +defaultTemplateId?: string | null; +cleanup: ContentTypeCleanupModel; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts index 2c2084a18d..02633cecba 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts @@ -6,7 +6,6 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type CreateFolderRequestModel = (FolderModelBaseModel & { - id?: string | null; - parentId?: string | null; +id?: string | null; +parentId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts index dbc957ff82..e2c290678f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts @@ -6,6 +6,5 @@ import type { VerifyInviteUserRequestModel } from './VerifyInviteUserRequestModel'; export type CreateInitialPasswordUserRequestModel = (VerifyInviteUserRequestModel & { - password: string; +password: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts index 456b4e4b83..00f1f81c25 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts @@ -6,6 +6,5 @@ import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; export type CreateLanguageRequestModel = (LanguageModelBaseModel & { - isoCode: string; +isoCode: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts index dd025ec56a..d818f11e5a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts @@ -6,6 +6,5 @@ import type { CreateContentForMediaRequestModel } from './CreateContentForMediaRequestModel'; export type CreateMediaRequestModel = (CreateContentForMediaRequestModel & { - contentTypeId: string; +contentTypeId: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts index 8fea33fee6..b95dddefa7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type CreateMediaTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts index 344b1852fb..f7580ed396 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type CreateMediaTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts index 1fcfe485ec..da2c267eaf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { CreateContentTypeForMediaTypeRequestModel } from './CreateContentTypeForMediaTypeRequestModel'; export type CreateMediaTypeRequestModel = CreateContentTypeForMediaTypeRequestModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts index 73977ee1aa..b0c95e7869 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts @@ -6,4 +6,3 @@ import type { PackageModelBaseModel } from './PackageModelBaseModel'; export type CreatePackageRequestModel = PackageModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts index 145e99f5ad..f215a9dcbc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePartialViewRequestModel.ts @@ -6,4 +6,3 @@ import type { CreateTextFileViewModelBaseModel } from './CreateTextFileViewModelBaseModel'; export type CreatePartialViewRequestModel = CreateTextFileViewModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePathFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePathFolderRequestModel.ts index da2b6b5047..f26a69ad76 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePathFolderRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePathFolderRequestModel.ts @@ -6,6 +6,5 @@ import type { PathFolderModelBaseModel } from './PathFolderModelBaseModel'; export type CreatePathFolderRequestModel = (PathFolderModelBaseModel & { - parentPath?: string | null; +parentPath?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts index bc558b9331..4f926f78c8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts @@ -6,6 +6,5 @@ import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; export type CreateRelationTypeRequestModel = (RelationTypeBaseModel & { - id?: string | null; +id?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts index da67c1a6be..44c88d5905 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateScriptRequestModel.ts @@ -6,4 +6,3 @@ import type { CreateTextFileViewModelBaseModel } from './CreateTextFileViewModelBaseModel'; export type CreateScriptRequestModel = CreateTextFileViewModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts index 23e1f8b0a3..34c4539718 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateStylesheetRequestModel.ts @@ -6,4 +6,3 @@ import type { CreateTextFileViewModelBaseModel } from './CreateTextFileViewModelBaseModel'; export type CreateStylesheetRequestModel = CreateTextFileViewModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts index 0967f2a290..9e134d89e8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTemplateRequestModel.ts @@ -5,5 +5,6 @@ import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; -export type CreateTemplateRequestModel = TemplateModelBaseModel; - +export type CreateTemplateRequestModel = (TemplateModelBaseModel & { +key?: string | null; +}); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTextFileViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTextFileViewModelBaseModel.ts index 33b8864571..e816f92bec 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTextFileViewModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateTextFileViewModelBaseModel.ts @@ -6,6 +6,5 @@ import type { TextFileViewModelBaseModel } from './TextFileViewModelBaseModel'; export type CreateTextFileViewModelBaseModel = (TextFileViewModelBaseModel & { - parentPath?: string | null; +parentPath?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts index 1cceb76e9a..6cceedf7c3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts @@ -6,4 +6,3 @@ import type { UserGroupBaseModel } from './UserGroupBaseModel'; export type CreateUserGroupRequestModel = UserGroupBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts index 5d63724191..1ec757d5db 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts @@ -6,4 +6,3 @@ import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; export type CreateUserRequestModel = UserPresentationBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts index f2e0290598..49afb950df 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts @@ -7,4 +7,3 @@ export type CreateUserResponseModel = { userId: string; initialPassword?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts index 3bb48f8923..17052ff1a2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts @@ -7,4 +7,3 @@ export type CultureReponseModel = { name: string; englishName: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts new file mode 100644 index 0000000000..8a91e2f0ea --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrenUserConfigurationResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + +export type CurrenUserConfigurationResponseModel = { + keepUserLoggedIn: boolean; + usernameIsEmail: boolean; + passwordConfiguration: PasswordConfigurationResponseModel; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts index ac422494ea..99a514b3db 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts @@ -16,4 +16,3 @@ export type CurrentUserResponseModel = { hasAccessToAllLanguages: boolean; permissions: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts index 22f5a6e493..b0aded60d3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts @@ -6,6 +6,5 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type DataTypeItemResponseModel = (ItemResponseModelBaseModel & { - editorUiAlias?: string | null; +editorUiAlias?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts index 7c3a1d770a..03fd1d95cd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts @@ -11,4 +11,3 @@ export type DataTypeModelBaseModel = { editorUiAlias?: string | null; values: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts index 5c6f1bf9a5..dddd95ec38 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts @@ -7,4 +7,3 @@ export type DataTypePropertyPresentationModel = { alias: string; value?: any; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts index 34599f578a..d8e1cddc73 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts @@ -7,4 +7,3 @@ export type DataTypePropertyReferenceModel = { name: string; alias: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts index 60b4ebf070..dbe0455028 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts @@ -10,4 +10,3 @@ export type DataTypeReferenceResponseModel = { type: string; properties: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts index f83939f738..8bf0e63d81 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts @@ -6,7 +6,6 @@ import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; export type DataTypeResponseModel = (DataTypeModelBaseModel & { - id: string; - parentId?: string | null; +id: string; +parentId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts index a24567b4f4..6bc4619040 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts @@ -6,6 +6,5 @@ import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; export type DataTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { - editorUiAlias?: string | null; +editorUiAlias?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts index 23baa81221..7a32527bf1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts @@ -14,4 +14,3 @@ export type DatabaseInstallResponseModel = { connectionString?: string | null; trustServerCertificate: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts index 219b792647..54e12c5a4d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts @@ -16,4 +16,3 @@ export type DatabaseSettingsPresentationModel = { supportsIntegratedAuthentication: boolean; requiresConnectionTest: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts index 6942407664..79839e50c1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts @@ -6,4 +6,3 @@ export type DeleteUserGroupsRequestModel = { userGroupIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts index c6f210a95c..22c88d0c0e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts @@ -6,4 +6,3 @@ export type DeleteUsersRequestModel = { userIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts index d7e75cc2b9..7bbbdd7135 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts @@ -6,4 +6,3 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type DictionaryItemItemResponseModel = ItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts index 3ab80babb0..1862fe594e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts @@ -9,4 +9,3 @@ export type DictionaryItemModelBaseModel = { name: string; translations: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts index 54a63654cf..694b5af1d9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts @@ -6,6 +6,5 @@ import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; export type DictionaryItemResponseModel = (DictionaryItemModelBaseModel & { - id: string; +id: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts index 2016bf3674..874d6d1e8d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts @@ -7,4 +7,3 @@ export type DictionaryItemTranslationModel = { isoCode: string; translation: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts index 2a0228cec7..8f908da360 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts @@ -9,4 +9,3 @@ export type DictionaryOverviewResponseModel = { parentId?: string | null; translatedIsoCodes: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts index d761f29549..bb1b7f0d08 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts @@ -6,4 +6,3 @@ export type DisableUserRequestModel = { userIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts index c7a854a1aa..53df8b333c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts @@ -6,4 +6,3 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type DocumentBlueprintResponseModel = ItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts index 782469e577..d325ee660e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts @@ -6,8 +6,7 @@ import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; export type DocumentBlueprintTreeItemResponseModel = (EntityTreeItemResponseModel & { - documentTypeId: string; - documentTypeAlias: string; - documentTypeName?: string | null; +documentTypeId: string; +documentTypeAlias: string; +documentTypeName?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts index c2ff002f8e..bcc5c4f8be 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts @@ -6,8 +6,7 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type DocumentItemResponseModel = (ItemResponseModelBaseModel & { - icon?: string | null; - contentTypeId: string; - isTrashed: boolean; +icon?: string | null; +contentTypeId: string; +isTrashed: boolean; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts index 72e7e8629d..c566759f76 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts @@ -7,4 +7,3 @@ export type DocumentNotificationResponseModel = { actionId: string; subscribed: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts index d30c2e4947..e0cfe042d9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts @@ -7,8 +7,7 @@ import type { ContentForDocumentResponseModel } from './ContentForDocumentRespon import type { ContentUrlInfoModel } from './ContentUrlInfoModel'; export type DocumentResponseModel = (ContentForDocumentResponseModel & { - urls: Array; - templateId?: string | null; - isTrashed: boolean; +urls: Array; +templateId?: string | null; +isTrashed: boolean; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts index dea10a27b6..bb37e8f797 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts @@ -7,11 +7,10 @@ import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseMode import type { VariantTreeItemModel } from './VariantTreeItemModel'; export type DocumentTreeItemResponseModel = (ContentTreeItemResponseModel & { - isProtected: boolean; - isPublished: boolean; - isEdited: boolean; - contentTypeId: string; - variants: Array; - icon: string; +isProtected: boolean; +isPublished: boolean; +isEdited: boolean; +contentTypeId: string; +variants: Array; +icon: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts new file mode 100644 index 0000000000..c286f0a588 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionRequestModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionRequestModelBaseModel } from './ContentTypeCompositionRequestModelBaseModel'; + +export type DocumentTypeCompositionRequestModel = (ContentTypeCompositionRequestModelBaseModel & { +isElement: boolean; +}); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..ac7e69dd6e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionResponseModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionResponseModelBaseModel } from './ContentTypeCompositionResponseModelBaseModel'; + +export type DocumentTypeCompositionResponseModel = ContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts index bc4e4e003e..aeec0ee93a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts @@ -6,7 +6,6 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type DocumentTypeItemResponseModel = (ItemResponseModelBaseModel & { - isElement: boolean; - icon?: string | null; +isElement: boolean; +icon?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts index f6a57aa6c7..68ddb36d34 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type DocumentTypePropertyTypeContainerResponseModel = PropertyTypeContainerModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts index 14837ade42..9c364f0fd7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type DocumentTypePropertyTypeResponseModel = PropertyTypeModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts index 7937954c88..60ae207871 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts @@ -7,8 +7,7 @@ import type { ContentTypeCleanupModel } from './ContentTypeCleanupModel'; import type { ContentTypeForDocumentTypeResponseModel } from './ContentTypeForDocumentTypeResponseModel'; export type DocumentTypeResponseModel = (ContentTypeForDocumentTypeResponseModel & { - allowedTemplateIds: Array; - defaultTemplateId?: string | null; - cleanup: ContentTypeCleanupModel; +allowedTemplateIds: Array; +defaultTemplateId?: string | null; +cleanup: ContentTypeCleanupModel; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts index cb9a379165..93b2e6fc2c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts @@ -6,7 +6,6 @@ import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; export type DocumentTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { - isElement: boolean; - icon: string; +isElement: boolean; +icon: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts index d97801007c..34f2807fbb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts @@ -6,4 +6,3 @@ import type { ValueModelBaseModel } from './ValueModelBaseModel'; export type DocumentValueModel = ValueModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts index 4d79c4109a..ba28f18d43 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts @@ -6,4 +6,3 @@ import type { VariantModelBaseModel } from './VariantModelBaseModel'; export type DocumentVariantRequestModel = VariantModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts index 06775caaf6..53e68560d2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts @@ -7,7 +7,6 @@ import type { ContentStateModel } from './ContentStateModel'; import type { VariantResponseModelBaseModel } from './VariantResponseModelBaseModel'; export type DocumentVariantResponseModel = (VariantResponseModelBaseModel & { - state: ContentStateModel; - publishDate?: string | null; +state: ContentStateModel; +publishDate?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts index 497ce2ae8e..cef67f0c14 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts @@ -7,4 +7,3 @@ export type DomainPresentationModel = { domainName: string; isoCode: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts index 193e811957..d8588d7c51 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts @@ -9,4 +9,3 @@ export type DomainsPresentationModelBaseModel = { defaultIsoCode?: string | null; domains: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts index f8d8a1ff18..4bbe922b91 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts @@ -6,4 +6,3 @@ import type { DomainsPresentationModelBaseModel } from './DomainsPresentationModelBaseModel'; export type DomainsResponseModel = DomainsPresentationModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts new file mode 100644 index 0000000000..353b6d80f5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootContextRequestModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DynamicRootContextRequestModel = { + id?: string | null; + parentId: string; + culture?: string | null; + segment?: string | null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts new file mode 100644 index 0000000000..4754ad448d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DynamicRootQueryOriginRequestModel = { + alias: string; + key?: string | null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts new file mode 100644 index 0000000000..d849a1ce36 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryRequestModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DynamicRootQueryOriginRequestModel } from './DynamicRootQueryOriginRequestModel'; +import type { DynamicRootQueryStepRequestModel } from './DynamicRootQueryStepRequestModel'; + +export type DynamicRootQueryRequestModel = { + origin: DynamicRootQueryOriginRequestModel; + steps: Array; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts new file mode 100644 index 0000000000..f9a7eadcca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryStepRequestModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DynamicRootQueryStepRequestModel = { + alias: string; + documentTypeIds: Array; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts new file mode 100644 index 0000000000..8e36978d53 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootRequestModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DynamicRootContextRequestModel } from './DynamicRootContextRequestModel'; +import type { DynamicRootQueryRequestModel } from './DynamicRootQueryRequestModel'; + +export type DynamicRootRequestModel = { + context: DynamicRootContextRequestModel; + query: DynamicRootQueryRequestModel; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VersionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts similarity index 66% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VersionResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts index 401d665ba3..b048cbf692 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VersionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts @@ -3,7 +3,6 @@ /* tslint:disable */ /* eslint-disable */ -export type VersionResponseModel = { - version: string; +export type DynamicRootResponseModel = { + roots: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts index 149c8cb3b7..cb57f8b665 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts @@ -6,4 +6,3 @@ export type EnableUserRequestModel = { userIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts index fa07541f16..5daf0cbbb8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts @@ -6,8 +6,7 @@ import type { TreeItemPresentationModel } from './TreeItemPresentationModel'; export type EntityTreeItemResponseModel = (TreeItemPresentationModel & { - id: string; - isContainer: boolean; - parentId?: string | null; +id: string; +isContainer: boolean; +parentId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts index 25e3f4ce26..02d60c98b0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesRequestModel.ts @@ -6,4 +6,3 @@ export type ExtractRichTextStylesheetRulesRequestModel = { content: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts index 0cb17a85ec..35aa761058 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ExtractRichTextStylesheetRulesResponseModel.ts @@ -6,4 +6,3 @@ import type { RichTextStylesheetRulesResponseModel } from './RichTextStylesheetRulesResponseModel'; export type ExtractRichTextStylesheetRulesResponseModel = RichTextStylesheetRulesResponseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts index 5a39dbab7c..4ed1ba0696 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts @@ -7,4 +7,3 @@ export type FieldPresentationModel = { name: string; values: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileItemResponseModelBaseModel.ts index 0927830167..76d067be54 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileItemResponseModelBaseModel.ts @@ -8,4 +8,3 @@ export type FileItemResponseModelBaseModel = { path: string; icon: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts index 37eed57170..86765b1f4d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts @@ -6,7 +6,6 @@ import type { TreeItemPresentationModel } from './TreeItemPresentationModel'; export type FileSystemTreeItemPresentationModel = (TreeItemPresentationModel & { - path: string; - isFolder: boolean; +path: string; +isFolder: boolean; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts index 3d9275f495..cebc70b066 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts @@ -6,4 +6,3 @@ export type FolderModelBaseModel = { name: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts index f06d96bc37..d85e8685d7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts @@ -6,7 +6,6 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type FolderResponseModel = (FolderModelBaseModel & { - id: string; - parentId?: string | null; +id: string; +parentId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts index 5495b5c15e..ce7dcb244f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts @@ -6,6 +6,5 @@ import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; export type FolderTreeItemResponseModel = (EntityTreeItemResponseModel & { - isFolder: boolean; +isFolder: boolean; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts index 01fe6d187a..0ab9dde605 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts @@ -13,4 +13,3 @@ export type HealthCheckActionRequestModel = { providedValueValidation?: string | null; providedValueValidationRegex?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts index 0fbcac06b9..1ec78887e6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts @@ -6,4 +6,3 @@ export type HealthCheckGroupPresentationBaseModel = { name: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts index cdeff24d9a..e621053980 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts @@ -7,6 +7,5 @@ import type { HealthCheckGroupPresentationBaseModel } from './HealthCheckGroupPr import type { HealthCheckModel } from './HealthCheckModel'; export type HealthCheckGroupPresentationModel = (HealthCheckGroupPresentationBaseModel & { - checks: Array; +checks: Array; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts index 4754ba19da..db458845ae 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts @@ -6,4 +6,3 @@ import type { HealthCheckGroupPresentationBaseModel } from './HealthCheckGroupPresentationBaseModel'; export type HealthCheckGroupResponseModel = HealthCheckGroupPresentationBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts index f2822cccbe..64ac7ef25d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts @@ -8,4 +8,3 @@ import type { HealthCheckWithResultPresentationModel } from './HealthCheckWithRe export type HealthCheckGroupWithResultResponseModel = { checks: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts index 420710c538..d97cef49e0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts @@ -6,7 +6,6 @@ import type { HealthCheckModelBaseModel } from './HealthCheckModelBaseModel'; export type HealthCheckModel = (HealthCheckModelBaseModel & { - name: string; - description?: string | null; +name: string; +description?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts index 0721373257..54522c05d1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts @@ -6,4 +6,3 @@ export type HealthCheckModelBaseModel = { id: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts index 036976ee4e..7aa91d8415 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts @@ -12,4 +12,3 @@ export type HealthCheckResultResponseModel = { actions?: Array | null; readMoreLink?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts index c9e64a9b6c..f83989db5b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts @@ -7,6 +7,5 @@ import type { HealthCheckModelBaseModel } from './HealthCheckModelBaseModel'; import type { HealthCheckResultResponseModel } from './HealthCheckResultResponseModel'; export type HealthCheckWithResultPresentationModel = (HealthCheckModelBaseModel & { - results?: Array | null; +results?: Array | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts index d5d81e8935..d469cebaa1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts @@ -9,4 +9,3 @@ export type HelpPageResponseModel = { url?: string | null; type?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts index b848a6ea07..cecb204709 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts @@ -7,4 +7,3 @@ export type ImportDictionaryRequestModel = { temporaryFileId: string; parentId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts index 8c957644e5..cc64b67dd6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts @@ -14,4 +14,3 @@ export type IndexResponseModel = { fieldCount: number; providerProperties?: Record | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts index 812abfbd8f..05266c351d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts @@ -10,4 +10,3 @@ export type InstallSettingsResponseModel = { user: UserSettingsModel; databases: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts index 2208a896b3..92d9815dae 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts @@ -12,4 +12,3 @@ export type InstallVResponseModel = { database: DatabaseInstallResponseModel; telemetryLevel: TelemetryLevelModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts index 0bdf981a14..4e2086f4e1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetRequestModel.ts @@ -9,4 +9,3 @@ export type InterpolateRichTextStylesheetRequestModel = { content?: string | null; rules?: Array | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts index 772787281d..4d5039777a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InterpolateRichTextStylesheetResponseModel.ts @@ -6,4 +6,3 @@ export type InterpolateRichTextStylesheetResponseModel = { content: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts index 2d27ef9b07..3f7b3c62c1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts @@ -6,6 +6,5 @@ import type { CreateUserRequestModel } from './CreateUserRequestModel'; export type InviteUserRequestModel = (CreateUserRequestModel & { - message?: string | null; +message?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts index 2f97b97f0a..b30b979409 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts @@ -7,4 +7,3 @@ export type ItemResponseModelBaseModel = { name: string; id: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts index e5ef68e040..680489338b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts @@ -7,4 +7,3 @@ export type ItemSortingRequestModel = { id: string; sortOrder: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts index f503073ca4..dbf066be1d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts @@ -7,4 +7,3 @@ export type LanguageItemResponseModel = { name: string; isoCode: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts index f05063ce04..8c83751024 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts @@ -9,4 +9,3 @@ export type LanguageModelBaseModel = { isMandatory: boolean; fallbackIsoCode?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts index 26700efd0d..0d8878ef35 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts @@ -6,6 +6,5 @@ import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; export type LanguageResponseModel = (LanguageModelBaseModel & { - isoCode: string; +isoCode: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts index ed7be18fd3..9967bf6b82 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts @@ -7,4 +7,3 @@ export type LinkedLoginModel = { providerName: string; providerKey: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts index 49f3947868..682d769b66 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts @@ -8,4 +8,3 @@ import type { LinkedLoginModel } from './LinkedLoginModel'; export type LinkedLoginsRequestModel = { linkedLogins: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts index d1d988ec8f..5a4ad42345 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts @@ -10,4 +10,3 @@ export type LogLevelCountsReponseModel = { error: number; fatal: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts index de18608397..043445e581 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts @@ -7,4 +7,3 @@ export type LogMessagePropertyPresentationModel = { name: string; value?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts index 9a219c4245..940fad309a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts @@ -14,4 +14,3 @@ export type LogMessageResponseModel = { properties: Array; exception?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts index 90ef6d4318..78682e668d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts @@ -7,4 +7,3 @@ export type LogTemplateResponseModel = { messageTemplate?: string | null; count: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts index 3c1f88ffd2..dd5076b8c6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts @@ -9,4 +9,3 @@ export type LoggerResponseModel = { name: string; level: LogLevelModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts index b1030a7a0c..55fa08258c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts @@ -6,7 +6,6 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type MediaItemResponseModel = (ItemResponseModelBaseModel & { - icon?: string | null; - isTrashed: boolean; +icon?: string | null; +isTrashed: boolean; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts index 74864a31b7..293cc652dc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts @@ -6,6 +6,5 @@ import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; export type MediaTreeItemResponseModel = (ContentTreeItemResponseModel & { - icon: string; +icon: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts new file mode 100644 index 0000000000..b6527f794d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionRequestModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionRequestModelBaseModel } from './ContentTypeCompositionRequestModelBaseModel'; + +export type MediaTypeCompositionRequestModel = ContentTypeCompositionRequestModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts new file mode 100644 index 0000000000..bbebafda9d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionResponseModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeCompositionResponseModelBaseModel } from './ContentTypeCompositionResponseModelBaseModel'; + +export type MediaTypeCompositionResponseModel = ContentTypeCompositionResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts index 1b76ad894b..ecf94a0e22 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts @@ -6,6 +6,5 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type MediaTypeItemResponseModel = (ItemResponseModelBaseModel & { - icon?: string | null; +icon?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts index 8529996e90..c1c13c2eed 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type MediaTypePropertyTypeContainerResponseModel = PropertyTypeContainerModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts index 20a8e3efd5..256cf33f83 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type MediaTypePropertyTypeResponseModel = PropertyTypeModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts index 10e0737eab..548bb4a336 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts @@ -6,4 +6,3 @@ import type { ContentTypeForMediaTypeResponseModel } from './ContentTypeForMediaTypeResponseModel'; export type MediaTypeResponseModel = ContentTypeForMediaTypeResponseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts index 8455663b94..45aefb57cb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts @@ -6,6 +6,5 @@ import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; export type MediaTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { - icon: string; +icon: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts index c65ef62bb0..9f55e16553 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts @@ -6,4 +6,3 @@ import type { ValueModelBaseModel } from './ValueModelBaseModel'; export type MediaValueModel = ValueModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts index 8b6bc1f2e4..74ab9ac92d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts @@ -6,4 +6,3 @@ import type { VariantModelBaseModel } from './VariantModelBaseModel'; export type MediaVariantRequestModel = VariantModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts index 5934131d3e..a00851d22c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts @@ -6,4 +6,3 @@ import type { VariantResponseModelBaseModel } from './VariantResponseModelBaseModel'; export type MediaVariantResponseModel = VariantResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts index 89305e5ea4..81fa25eb8b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts @@ -6,4 +6,3 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type MemberGroupItemResponseModel = ItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts index f125ad9e47..0643b30939 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts @@ -6,6 +6,5 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type MemberItemResponseModel = (ItemResponseModelBaseModel & { - icon?: string | null; +icon?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts index e95ae3bf54..7f0d414a5b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts @@ -6,6 +6,5 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type MemberTypeItemResponseModel = (ItemResponseModelBaseModel & { - icon?: string | null; +icon?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts index d5e29920fa..492bf6420f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts @@ -14,4 +14,3 @@ export type ModelsBuilderResponseModel = { modelsNamespace?: string | null; trackingOutOfDateModels: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts index 9d63dde08c..be2bcd9a8b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts @@ -6,4 +6,3 @@ export type MoveDataTypeRequestModel = { targetId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts index a55c6877a2..0787659d09 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts @@ -6,4 +6,3 @@ export type MoveDictionaryRequestModel = { targetId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts index 5fc4f7d709..36630780f9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts @@ -6,4 +6,3 @@ export type MoveDocumentRequestModel = { targetId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts new file mode 100644 index 0000000000..13447916b5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type MoveDocumentTypeRequestModel = { + targetId?: string | null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts index 74c3bdb8a1..487a8e6911 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts @@ -6,4 +6,3 @@ export type MoveMediaRequestModel = { targetId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts new file mode 100644 index 0000000000..e8edd2ce01 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type MoveMediaTypeRequestModel = { + targetId?: string | null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts index c40acbeaf2..cb92a099d4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts @@ -7,4 +7,3 @@ export type ObjectTypeResponseModel = { name?: string | null; id: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts index a199ea6e61..4f2455f202 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts @@ -6,4 +6,3 @@ export type OkResult = { statusCode: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts index 59c7d9adab..b213d4c4ef 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts @@ -8,4 +8,3 @@ import type { OutOfDateTypeModel } from './OutOfDateTypeModel'; export type OutOfDateStatusResponseModel = { status: OutOfDateTypeModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts index f5248ab237..f023f9d6eb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts @@ -6,7 +6,6 @@ import type { PackageModelBaseModel } from './PackageModelBaseModel'; export type PackageDefinitionResponseModel = (PackageModelBaseModel & { - id: string; - packagePath: string; +id: string; +packagePath: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts index c247a475af..92a4b66230 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts @@ -8,4 +8,3 @@ export type PackageManifestResponseModel = { version?: string | null; extensions: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts index fa38491d4b..c5f667f4b2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts @@ -7,4 +7,3 @@ export type PackageMigrationStatusResponseModel = { packageName: string; hasPendingMigrations: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts index 71ee36a68b..3c3ff2db0f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts @@ -19,4 +19,3 @@ export type PackageModelBaseModel = { languages: Array; dictionaryItems: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts index 9dcaf0c733..6a066f18fd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts @@ -9,4 +9,3 @@ export type PagedAuditLogResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts index 5ff9186405..42efe9e7e1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts @@ -9,4 +9,3 @@ export type PagedAuditLogWithUsernameResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts index 437ec404fa..03f9ee5c18 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts @@ -9,4 +9,3 @@ export type PagedCultureReponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts index fd81a53b86..b8cb650392 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedDataTypeTreeItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts index 7ce857aa31..519036636d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts @@ -9,4 +9,3 @@ export type PagedDictionaryOverviewResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts index 9bf8a5c863..a29f7755d0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedDocumentBlueprintTreeItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts index 2399cfc00c..3e8adf405e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedDocumentTreeItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts index ca9a43dd71..062633b222 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts @@ -9,4 +9,3 @@ export type PagedDocumentTypeResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts index 4f40e9efe9..d7dd2018d4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedDocumentTypeTreeItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts index 304550a129..d6bef5d912 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts @@ -17,4 +17,3 @@ export type PagedEntityTreeItemResponseModel = { total: number; items: Array<(EntityTreeItemResponseModel | ContentTreeItemResponseModel | DataTypeTreeItemResponseModel | DocumentBlueprintTreeItemResponseModel | DocumentTreeItemResponseModel | DocumentTypeTreeItemResponseModel | FolderTreeItemResponseModel | MediaTreeItemResponseModel | MediaTypeTreeItemResponseModel)>; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts index 443c23df29..894c7f5407 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts @@ -9,4 +9,3 @@ export type PagedFileSystemTreeItemPresentationModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts index d93685d9d4..2d837be56f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts @@ -9,4 +9,3 @@ export type PagedHealthCheckGroupResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts index 04c50d6e85..4fbc3ba672 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts @@ -9,4 +9,3 @@ export type PagedHelpPageResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts index 7c0c4638c3..eeadb6fd50 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts @@ -9,4 +9,3 @@ export type PagedIndexResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts index 37fe3d3913..11ebfa641b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts @@ -9,4 +9,3 @@ export type PagedLanguageResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts index cf4fc66449..42537c99ff 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts @@ -9,4 +9,3 @@ export type PagedLogMessageResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts index 291011a872..3d38f359b8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts @@ -9,4 +9,3 @@ export type PagedLogTemplateResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts index 77083fc931..ca927c7b3e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts @@ -9,4 +9,3 @@ export type PagedLoggerResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts index 864dce738f..148e0ef107 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedMediaTreeItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts index d22af1c59c..9c79ecc991 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedMediaTypeTreeItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts index 77d8106b39..fca658db05 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts @@ -9,4 +9,3 @@ export type PagedObjectTypeResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts index e42eb299ee..f972bb31ad 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts @@ -9,4 +9,3 @@ export type PagedPackageDefinitionResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts index aa3f4f4ced..96b1150422 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts @@ -9,4 +9,3 @@ export type PagedPackageMigrationStatusResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts index 5291741485..21dfd92bd2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts @@ -9,4 +9,3 @@ export type PagedProblemDetailsModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts index 3d30d30c21..c8a37e4108 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedRecycleBinItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts index e749134ad3..7aaabed52d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts @@ -9,4 +9,3 @@ export type PagedRedirectUrlResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts index 47e1960065..21c2842c64 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedRelationItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts index 377517e398..f88c351073 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts @@ -9,4 +9,3 @@ export type PagedRelationResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts index 8eebf10ebc..ab79aa441c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts @@ -9,4 +9,3 @@ export type PagedSavedLogSearchResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts index 233891717d..d3750e2f0a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts @@ -9,4 +9,3 @@ export type PagedSearchResultResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts index c39bc2751e..bf9894dada 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts @@ -9,4 +9,3 @@ export type PagedSearcherResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSnippetItemResponseModel.ts index 5071ba2259..acde0fdd44 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSnippetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSnippetItemResponseModel.ts @@ -9,4 +9,3 @@ export type PagedSnippetItemResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts index 72d0259304..75c4ac4f0e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedStylesheetOverviewResponseModel.ts @@ -9,4 +9,3 @@ export type PagedStylesheetOverviewResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts index 3134a3ee4f..85eefdb74c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts @@ -9,4 +9,3 @@ export type PagedTagResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts index 0bcd9b1d9a..c47f7fe12f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts @@ -9,4 +9,3 @@ export type PagedTelemetryResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts index a1bf825127..533352e2f3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts @@ -9,4 +9,3 @@ export type PagedUserGroupResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts index 06fbaf0d50..d365e899ae 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts @@ -9,4 +9,3 @@ export type PagedUserResponseModel = { total: number; items: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts index 7fdfdf7b12..7bec8bf870 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewItemResponseModel.ts @@ -6,4 +6,3 @@ import type { FileItemResponseModelBaseModel } from './FileItemResponseModelBaseModel'; export type PartialViewItemResponseModel = FileItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts index 78794defbf..a9482d5fe0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewResponseModel.ts @@ -6,4 +6,3 @@ import type { TextFileResponseModelBaseModel } from './TextFileResponseModelBaseModel'; export type PartialViewResponseModel = TextFileResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts index 3cb2ce5604..a8e633fa3f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetResponseModel.ts @@ -7,4 +7,3 @@ export type PartialViewSnippetResponseModel = { name: string; content: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewUpdateModel.ts index 37fbcef9b2..7dea7546a5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewUpdateModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewUpdateModel.ts @@ -6,4 +6,3 @@ import type { TextFileUpdateModel } from './TextFileUpdateModel'; export type PartialViewUpdateModel = TextFileUpdateModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts new file mode 100644 index 0000000000..04dbde0766 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PasswordConfigurationResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type PasswordConfigurationResponseModel = { + minimumPasswordLength: number; + requireNonLetterOrDigit: boolean; + requireDigit: boolean; + requireLowercase: boolean; + requireUppercase: boolean; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderModelBaseModel.ts index 34f3798e95..3b046f75b0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderModelBaseModel.ts @@ -6,4 +6,3 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type PathFolderModelBaseModel = FolderModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderResponseModel.ts index 9d9a70d33a..5ce9eb4d56 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PathFolderResponseModel.ts @@ -6,7 +6,6 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type PathFolderResponseModel = (FolderModelBaseModel & { - parentPath?: string | null; - readonly path: string; +parentPath?: string | null; +readonly path: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts index 5c48e0da66..0b74508810 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts @@ -6,4 +6,3 @@ export type ProfilingStatusRequestModel = { enabled: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts index 8717638558..52924fa000 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts @@ -6,4 +6,3 @@ export type ProfilingStatusResponseModel = { enabled: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts index f690a3f46c..6762244b28 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts @@ -6,4 +6,3 @@ export type PropertyTypeAppearanceModel = { labelOnTop: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts index 0e666d72e2..ec8efe30de 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts @@ -10,4 +10,3 @@ export type PropertyTypeContainerModelBaseModel = { type: string; sortOrder: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts index 7c6378302e..0f4e010b14 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts @@ -19,4 +19,3 @@ export type PropertyTypeModelBaseModel = { validation: PropertyTypeValidationModel; appearance: PropertyTypeAppearanceModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts index fda613e272..cf34459c15 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts @@ -9,4 +9,3 @@ export type PropertyTypeValidationModel = { regEx?: string | null; regExMessage?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts index 95c376a9b8..bbae480c80 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts @@ -7,4 +7,3 @@ export type PublicAccessBaseModel = { loginPageId: string; errorPageId: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts index 60f518c835..31fc5d5e4a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts @@ -6,7 +6,6 @@ import type { PublicAccessBaseModel } from './PublicAccessBaseModel'; export type PublicAccessRequestModel = (PublicAccessBaseModel & { - memberUserNames: Array; - memberGroupNames: Array; +memberUserNames: Array; +memberGroupNames: Array; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts index f6b2145385..5504449d82 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts @@ -8,7 +8,6 @@ import type { MemberItemResponseModel } from './MemberItemResponseModel'; import type { PublicAccessBaseModel } from './PublicAccessBaseModel'; export type PublicAccessResponseModel = (PublicAccessBaseModel & { - members: Array; - groups: Array; +members: Array; +groups: Array; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts index 18355d089b..3057b14eb9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts @@ -6,4 +6,3 @@ export type PublishDocumentRequestModel = { cultures: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts index 270f4d9c43..141737e557 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts @@ -6,6 +6,5 @@ import type { PublishDocumentRequestModel } from './PublishDocumentRequestModel'; export type PublishDocumentWithDescendantsRequestModel = (PublishDocumentRequestModel & { - includeUnpublishedDescendants: boolean; +includeUnpublishedDescendants: boolean; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts index 68aa71111d..649ee88473 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts @@ -12,4 +12,3 @@ export type RecycleBinItemResponseModel = { isContainer: boolean; parentId?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts index 22d2ff41b8..59247cb71f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts @@ -11,4 +11,3 @@ export type RedirectUrlResponseModel = { contentId: string; culture?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts index ee5065a2a0..b508ad3c69 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts @@ -9,4 +9,3 @@ export type RedirectUrlStatusResponseModel = { status: RedirectStatusModel; userIsAdmin: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts index 48a8302000..d416deaada 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts @@ -15,4 +15,3 @@ export type RelationItemResponseModel = { relationTypeIsBidirectional: boolean; relationTypeIsDependency: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts index af7f600b3c..7aadac76cd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts @@ -11,4 +11,3 @@ export type RelationResponseModel = { createDate: string; comment?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts index 93275aa12f..4bc295f8e7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts @@ -10,4 +10,3 @@ export type RelationTypeBaseModel = { childObjectType?: string | null; isDependency: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts index f3e21f18af..a24ffdf31d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts @@ -6,4 +6,3 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type RelationTypeItemResponseModel = ItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts index 990febe8b7..631cd5bc22 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts @@ -6,11 +6,10 @@ import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; export type RelationTypeResponseModel = (RelationTypeBaseModel & { - id: string; - alias?: string | null; - path: string; - isSystemRelationType: boolean; - parentObjectTypeName?: string | null; - childObjectTypeName?: string | null; +id: string; +alias?: string | null; +path: string; +isSystemRelationType: boolean; +parentObjectTypeName?: string | null; +childObjectTypeName?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts index 08258d5a05..be55852f21 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts @@ -7,4 +7,3 @@ export type ResendInviteUserRequestModel = { userId: string; message?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts index efe0818403..39cb212ef6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts @@ -6,4 +6,3 @@ export type ResetPasswordRequestModel = { email: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts index 513669862d..e0f4c93d93 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts @@ -6,6 +6,5 @@ import type { VerifyResetPasswordTokenRequestModel } from './VerifyResetPasswordTokenRequestModel'; export type ResetPasswordTokenRequestModel = (VerifyResetPasswordTokenRequestModel & { - password: string; +password: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextRuleModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextRuleModel.ts index 027022daab..11c309a4e0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextRuleModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextRuleModel.ts @@ -8,4 +8,3 @@ export type RichTextRuleModel = { selector: string; styles: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts index a9d1dab40d..28e0fca208 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RichTextStylesheetRulesResponseModel.ts @@ -8,4 +8,3 @@ import type { RichTextRuleModel } from './RichTextRuleModel'; export type RichTextStylesheetRulesResponseModel = { rules: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts new file mode 100644 index 0000000000..0f8e601e95 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RuntimeModeModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export enum RuntimeModeModel { + BACKOFFICE_DEVELOPMENT = 'BackofficeDevelopment', + DEVELOPMENT = 'Development', + PRODUCTION = 'Production', +} diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts index 8e8e032cf0..7621584428 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts @@ -7,4 +7,3 @@ export type SavedLogSearchPresenationBaseModel = { name: string; query: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts index c73ea6edcf..82c8b8cc7d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts @@ -6,4 +6,3 @@ import type { SavedLogSearchPresenationBaseModel } from './SavedLogSearchPresenationBaseModel'; export type SavedLogSearchRequestModel = SavedLogSearchPresenationBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts index 764e26b616..a50bec2f5b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts @@ -6,4 +6,3 @@ import type { SavedLogSearchPresenationBaseModel } from './SavedLogSearchPresenationBaseModel'; export type SavedLogSearchResponseModel = SavedLogSearchPresenationBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts index 0ab2f9278e..4c787a6dea 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptItemResponseModel.ts @@ -6,4 +6,3 @@ import type { FileItemResponseModelBaseModel } from './FileItemResponseModelBaseModel'; export type ScriptItemResponseModel = FileItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts index d62215f214..b8150c1a01 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptResponseModel.ts @@ -6,4 +6,3 @@ import type { TextFileResponseModelBaseModel } from './TextFileResponseModelBaseModel'; export type ScriptResponseModel = TextFileResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptUpdateModel.ts index 8084a2a9c2..bbc3d84d10 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptUpdateModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptUpdateModel.ts @@ -6,4 +6,3 @@ import type { TextFileUpdateModel } from './TextFileUpdateModel'; export type ScriptUpdateModel = TextFileUpdateModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptViewModelBaseModel.ts index 2cb3519a37..4e0211c021 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptViewModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ScriptViewModelBaseModel.ts @@ -6,4 +6,3 @@ import type { TextFileViewModelBaseModel } from './TextFileViewModelBaseModel'; export type ScriptViewModelBaseModel = TextFileViewModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts index 4e44168a7a..4754293aa4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts @@ -11,4 +11,3 @@ export type SearchResultResponseModel = { readonly fieldCount: number; fields: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts index 0515d91ea8..503de69d84 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts @@ -6,4 +6,3 @@ export type SearcherResponseModel = { name: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts new file mode 100644 index 0000000000..beaf0856dd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SecurityConfigurationResponseModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + +export type SecurityConfigurationResponseModel = { + passwordConfiguration: PasswordConfigurationResponseModel; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts new file mode 100644 index 0000000000..cad9d14e49 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationBaseModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ServerConfigurationItemResponseModel } from './ServerConfigurationItemResponseModel'; + +export type ServerConfigurationBaseModel = { + items: Array; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts similarity index 76% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts index 1e3278bd97..d7d0f128a2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts @@ -3,8 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type ServerInformationItemResponseModel = { +export type ServerConfigurationItemResponseModel = { name: string; data: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts new file mode 100644 index 0000000000..47a1fcab6b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationResponseModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ServerConfigurationResponseModel = { + allowPasswordReset: boolean; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts index 27ec2ff0a9..443adf3c64 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts @@ -3,9 +3,11 @@ /* tslint:disable */ /* eslint-disable */ -import type { ServerInformationItemResponseModel } from './ServerInformationItemResponseModel'; +import type { RuntimeModeModel } from './RuntimeModeModel'; export type ServerInformationResponseModel = { - items: Array; + version: string; + assemblyVersion: string; + baseUtcOffset: string; + runtimeMode: RuntimeModeModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts index 2c92b763bf..2927fb1143 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts @@ -8,4 +8,3 @@ import type { RuntimeLevelModel } from './RuntimeLevelModel'; export type ServerStatusResponseModel = { serverStatus: RuntimeLevelModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts new file mode 100644 index 0000000000..7a4797987d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerTroubleshootingResponseModel.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ServerConfigurationBaseModel } from './ServerConfigurationBaseModel'; + +export type ServerTroubleshootingResponseModel = ServerConfigurationBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts index 767ffe2809..f6f631ba60 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts @@ -6,4 +6,3 @@ export type SetAvatarRequestModel = { fileId: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts index b92400222f..d9dd413b92 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts @@ -6,4 +6,3 @@ import type { TourStatusModel } from './TourStatusModel'; export type SetTourStatusRequestModel = TourStatusModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SnippetItemResponseModel.ts index 147c277f7f..db6a78f9c4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SnippetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SnippetItemResponseModel.ts @@ -6,4 +6,3 @@ export type SnippetItemResponseModel = { name: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts index 794198a0d3..1b54b780a7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts @@ -9,4 +9,3 @@ export type SortingRequestModel = { parentId?: string | null; sorting: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts index 0d8eb68349..451ae9585e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StaticFileItemResponseModel.ts @@ -6,4 +6,3 @@ import type { FileItemResponseModelBaseModel } from './FileItemResponseModelBaseModel'; export type StaticFileItemResponseModel = FileItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts index ef0de320f1..5789e2aa8e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetItemResponseModel.ts @@ -6,4 +6,3 @@ import type { FileItemResponseModelBaseModel } from './FileItemResponseModelBaseModel'; export type StylesheetItemResponseModel = FileItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts index c0f0c6d6b0..8ae3d49344 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetOverviewResponseModel.ts @@ -7,4 +7,3 @@ export type StylesheetOverviewResponseModel = { name: string; path: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts index 38583b9dc2..9aac364415 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetResponseModel.ts @@ -6,4 +6,3 @@ import type { TextFileResponseModelBaseModel } from './TextFileResponseModelBaseModel'; export type StylesheetResponseModel = TextFileResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetUpdateModel.ts index 046d3a855b..29cbd84a15 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetUpdateModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/StylesheetUpdateModel.ts @@ -6,4 +6,3 @@ import type { TextFileUpdateModel } from './TextFileUpdateModel'; export type StylesheetUpdateModel = TextFileUpdateModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts index 4b2b6a2bcc..0b577c8dd1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts @@ -9,4 +9,3 @@ export type TagResponseModel = { group?: string | null; nodeCount: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts index fb7b6286a9..2283988342 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts @@ -8,4 +8,3 @@ import type { TelemetryLevelModel } from './TelemetryLevelModel'; export type TelemetryRepresentationBaseModel = { telemetryLevel: TelemetryLevelModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts index 4038ab5922..3a745afcd8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts @@ -6,4 +6,3 @@ import type { TelemetryRepresentationBaseModel } from './TelemetryRepresentationBaseModel'; export type TelemetryRequestModel = TelemetryRepresentationBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts index 6845564be7..57aef89262 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts @@ -6,4 +6,3 @@ import type { TelemetryRepresentationBaseModel } from './TelemetryRepresentationBaseModel'; export type TelemetryResponseModel = TelemetryRepresentationBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts index 16835bc83b..3efc90c12f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts @@ -6,6 +6,5 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type TemplateItemResponseModel = (ItemResponseModelBaseModel & { - alias: string; +alias: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts index 788f0cfcd9..ad404247f4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts @@ -8,4 +8,3 @@ export type TemplateModelBaseModel = { alias: string; content?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts index fa39f4da74..25b146a205 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts @@ -10,4 +10,3 @@ export type TemplateQueryExecuteFilterPresentationModel = { constraintValue: string; operator: OperatorModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts index f241c088f5..ade50a2bc6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts @@ -13,4 +13,3 @@ export type TemplateQueryExecuteModel = { sort?: TemplateQueryExecuteSortModel | null; take: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts index 7632a9c9a9..5f7404651e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts @@ -7,4 +7,3 @@ export type TemplateQueryExecuteSortModel = { propertyAlias: string; direction?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts index 1b5dbb4fbd..1ee2791623 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts @@ -10,4 +10,3 @@ export type TemplateQueryOperatorModel = { operator: OperatorModel; applicableTypes: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts index 7d5c5c3d80..25ce716c8e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts @@ -9,4 +9,3 @@ export type TemplateQueryPropertyPresentationModel = { alias: string; type: TemplateQueryPropertyTypeModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts index 428789e6e3..5e2f20d647 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts @@ -7,4 +7,3 @@ export type TemplateQueryResultItemPresentationModel = { icon: string; name: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts index 6031658215..d4b8842068 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts @@ -11,4 +11,3 @@ export type TemplateQueryResultResponseModel = { resultCount: number; executionTime: number; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts index bd203fffaf..b95e719a09 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts @@ -11,4 +11,3 @@ export type TemplateQuerySettingsResponseModel = { properties: Array; operators: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts index 8bb31d576a..fdedddabc2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts @@ -6,7 +6,6 @@ import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; export type TemplateResponseModel = (TemplateModelBaseModel & { - id: string; - masterTemplateId?: string | null; +id: string; +masterTemplateId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts index ca6dd8badb..5c469e0c80 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts @@ -6,4 +6,3 @@ export type TemplateScaffoldResponseModel = { content: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts index 81b830ed48..d9b46f7b5b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts @@ -8,4 +8,3 @@ export type TemporaryFileResponseModel = { availableUntil?: string | null; fileName: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileResponseModelBaseModel.ts index 7291053253..18cd8bb71c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileResponseModelBaseModel.ts @@ -6,6 +6,5 @@ import type { TextFileViewModelBaseModel } from './TextFileViewModelBaseModel'; export type TextFileResponseModelBaseModel = (TextFileViewModelBaseModel & { - path: string; +path: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileUpdateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileUpdateModel.ts index e42cf21e00..23b82be6d1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileUpdateModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileUpdateModel.ts @@ -8,4 +8,3 @@ export type TextFileUpdateModel = { content: string; existingPath: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileViewModelBaseModel.ts index 07e296334a..e9c8dab309 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileViewModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TextFileViewModelBaseModel.ts @@ -7,4 +7,3 @@ export type TextFileViewModelBaseModel = { name: string; content: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts index cc941f5b6e..9f3b56bf68 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts @@ -8,4 +8,3 @@ export type TourStatusModel = { completed: boolean; disabled: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts index e0ee22db66..f10812b402 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts @@ -8,4 +8,3 @@ export type TreeItemPresentationModel = { type: string; hasChildren: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts index b3b7422b4d..c2a505eb89 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts @@ -6,4 +6,3 @@ export type UnlockUsersRequestModel = { userIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts index 9d603f6694..60b14d8e2a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts @@ -6,4 +6,3 @@ export type UnpublishDocumentRequestModel = { culture?: string | null; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts index 914404a689..db20ebd0cf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts @@ -10,4 +10,3 @@ export type UpdateContentForDocumentRequestModel = { values: Array; variants: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts index 9abbcea7e2..afe323d4ea 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts @@ -10,4 +10,3 @@ export type UpdateContentForMediaRequestModel = { values: Array; variants: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts index 09864a6fc2..a129a8ada5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts @@ -22,4 +22,3 @@ export type UpdateContentTypeForDocumentTypeRequestModel = { allowedContentTypes: Array; compositions: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts index cb56a11e5b..22c061ac82 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts @@ -22,4 +22,3 @@ export type UpdateContentTypeForMediaTypeRequestModel = { allowedContentTypes: Array; compositions: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts index 635cf63785..9978aba3e3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; export type UpdateDataTypeRequestModel = DataTypeModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts index 1348c0ca10..c40356ac92 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts @@ -6,4 +6,3 @@ import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; export type UpdateDictionaryItemRequestModel = DictionaryItemModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts index d8f77ed0ec..87870af9b6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts @@ -6,4 +6,3 @@ export type UpdateDocumentNotificationsRequestModel = { subscribedActionIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts index 27ff9ea8b3..610cc928b7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts @@ -6,6 +6,5 @@ import type { UpdateContentForDocumentRequestModel } from './UpdateContentForDocumentRequestModel'; export type UpdateDocumentRequestModel = (UpdateContentForDocumentRequestModel & { - templateId?: string | null; +templateId?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts index a5b9b39f26..7e7ff1927e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type UpdateDocumentTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts index ef34f46fe6..0b2283049e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type UpdateDocumentTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts index 9bb31a94f1..3cf434f50d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts @@ -7,8 +7,7 @@ import type { ContentTypeCleanupModel } from './ContentTypeCleanupModel'; import type { UpdateContentTypeForDocumentTypeRequestModel } from './UpdateContentTypeForDocumentTypeRequestModel'; export type UpdateDocumentTypeRequestModel = (UpdateContentTypeForDocumentTypeRequestModel & { - allowedTemplateIds: Array; - defaultTemplateId?: string | null; - cleanup: ContentTypeCleanupModel; +allowedTemplateIds: Array; +defaultTemplateId?: string | null; +cleanup: ContentTypeCleanupModel; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts index 2b35548f52..3d3c549ae7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts @@ -6,4 +6,3 @@ import type { DomainsPresentationModelBaseModel } from './DomainsPresentationModelBaseModel'; export type UpdateDomainsRequestModel = DomainsPresentationModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts index d5efa20832..edc45ec4b7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts @@ -6,4 +6,3 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type UpdateFolderResponseModel = FolderModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts index 9b4c7f6c2a..d615a63913 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts @@ -6,4 +6,3 @@ import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; export type UpdateLanguageRequestModel = LanguageModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts index 66f8fcd3ca..83d3b927f1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts @@ -6,4 +6,3 @@ import type { UpdateContentForMediaRequestModel } from './UpdateContentForMediaRequestModel'; export type UpdateMediaRequestModel = UpdateContentForMediaRequestModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts index 784c0540ad..72a97d0889 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type UpdateMediaTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts index 01c5dca483..e4c5ceba6c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type UpdateMediaTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts index 38b1fe4ea3..f6c10d3ed6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { UpdateContentTypeForMediaTypeRequestModel } from './UpdateContentTypeForMediaTypeRequestModel'; export type UpdateMediaTypeRequestModel = UpdateContentTypeForMediaTypeRequestModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts index c77502d8d6..7e2707f1ab 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts @@ -6,6 +6,5 @@ import type { PackageModelBaseModel } from './PackageModelBaseModel'; export type UpdatePackageRequestModel = (PackageModelBaseModel & { - packagePath: string; +packagePath: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts index 4bd4445290..97f901d55d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePartialViewRequestModel.ts @@ -6,4 +6,3 @@ import type { TextFileUpdateModel } from './TextFileUpdateModel'; export type UpdatePartialViewRequestModel = TextFileUpdateModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts index 9311e54c4c..736db188a2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts @@ -6,4 +6,3 @@ import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; export type UpdateRelationTypeRequestModel = RelationTypeBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts index a5f1657830..8e2cb057ae 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateScriptRequestModel.ts @@ -6,4 +6,3 @@ import type { UpdateTextFileViewModelBaseModel } from './UpdateTextFileViewModelBaseModel'; export type UpdateScriptRequestModel = UpdateTextFileViewModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts index 097988d56d..ecfebf5421 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateStylesheetRequestModel.ts @@ -6,4 +6,3 @@ import type { UpdateTextFileViewModelBaseModel } from './UpdateTextFileViewModelBaseModel'; export type UpdateStylesheetRequestModel = UpdateTextFileViewModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts index a4a734154c..70dd58fe7f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts @@ -6,4 +6,3 @@ import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; export type UpdateTemplateRequestModel = TemplateModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts index 05179949e4..98bb0359ff 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTextFileViewModelBaseModel.ts @@ -6,6 +6,5 @@ import type { TextFileViewModelBaseModel } from './TextFileViewModelBaseModel'; export type UpdateTextFileViewModelBaseModel = (TextFileViewModelBaseModel & { - existingPath: string; +existingPath: string; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts index f6f7cecb2d..64311e6d95 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts @@ -6,4 +6,3 @@ import type { UserGroupBaseModel } from './UserGroupBaseModel'; export type UpdateUserGroupRequestModel = UserGroupBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts index 181ce870fe..cec0d70470 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts @@ -7,4 +7,3 @@ export type UpdateUserGroupsOnUserRequestModel = { userIds: Array; userGroupIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts index 7be15f116c..2550ddccb0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts @@ -6,8 +6,7 @@ import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; export type UpdateUserRequestModel = (UserPresentationBaseModel & { - languageIsoCode: string; - contentStartNodeIds: Array; - mediaStartNodeIds: Array; +languageIsoCode: string; +contentStartNodeIds: Array; +mediaStartNodeIds: Array; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts index 8c003c6cc2..df5d70e8a8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts @@ -10,4 +10,3 @@ export type UpgradeSettingsResponseModel = { oldVersion: string; readonly reportUrl: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts new file mode 100644 index 0000000000..0589003e09 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserConfigurationResponseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { PasswordConfigurationResponseModel } from './PasswordConfigurationResponseModel'; + +export type UserConfigurationResponseModel = { + canInviteUsers: boolean; + passwordConfiguration: PasswordConfigurationResponseModel; +}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts index 571c24d641..3c96586b12 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts @@ -15,4 +15,3 @@ export type UserGroupBaseModel = { mediaRootAccess: boolean; permissions: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts index 5a982ed54f..b0670f6efa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts @@ -6,6 +6,5 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type UserGroupItemResponseModel = (ItemResponseModelBaseModel & { - icon?: string | null; +icon?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts index 04526f66a1..a82a10312a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts @@ -6,7 +6,6 @@ import type { UserGroupBaseModel } from './UserGroupBaseModel'; export type UserGroupResponseModel = (UserGroupBaseModel & { - id: string; - isSystemGroup: boolean; +id: string; +isSystemGroup: boolean; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts index b43964ffd1..7849e52242 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts @@ -9,4 +9,3 @@ export type UserInstallResponseModel = { password: string; readonly subscribeToNewsletter: boolean; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts index b8d26aa52d..9333611789 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts @@ -6,4 +6,3 @@ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; export type UserItemResponseModel = ItemResponseModelBaseModel; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts index d154d2e05d..5333844056 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts @@ -7,4 +7,3 @@ export type UserPermissionModel = { nodeKey: string; permissions: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts index 7dfc2edb5a..3e63759f0f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts @@ -8,4 +8,3 @@ import type { UserPermissionModel } from './UserPermissionModel'; export type UserPermissionsResponseModel = { permissions: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts index 13a3b9e8a7..7e559d5e69 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts @@ -9,4 +9,3 @@ export type UserPresentationBaseModel = { name: string; userGroupIds: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts index 476b3a92b1..eaf45f25dc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts @@ -7,17 +7,16 @@ import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; import type { UserStateModel } from './UserStateModel'; export type UserResponseModel = (UserPresentationBaseModel & { - id: string; - languageIsoCode?: string | null; - contentStartNodeIds: Array; - mediaStartNodeIds: Array; - avatarUrls: Array; - state: UserStateModel; - failedLoginAttempts: number; - createDate: string; - updateDate: string; - lastLoginDate?: string | null; - lastLockoutDate?: string | null; - lastPasswordChangeDate?: string | null; +id: string; +languageIsoCode?: string | null; +contentStartNodeIds: Array; +mediaStartNodeIds: Array; +avatarUrls: Array; +state: UserStateModel; +failedLoginAttempts: number; +createDate: string; +updateDate: string; +lastLoginDate?: string | null; +lastLockoutDate?: string | null; +lastPasswordChangeDate?: string | null; }); - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts index b09ce82075..470aa4c5b9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts @@ -10,4 +10,3 @@ export type UserSettingsModel = { minNonAlphaNumericLength: number; consentLevels: Array; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts index be820dec20..3d3aefe868 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts @@ -9,4 +9,3 @@ import type { TourStatusModel } from './TourStatusModel'; export type UserTourStatusesResponseModel = { tourStatuses: Array<(TourStatusModel | SetTourStatusRequestModel)>; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts index 6fef1698f5..a54ec8de85 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts @@ -9,4 +9,3 @@ export type ValueModelBaseModel = { alias: string; value?: any; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts index fc747713b2..9ef0deddd0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts @@ -8,4 +8,3 @@ export type VariantModelBaseModel = { segment?: string | null; name: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts index 62e1eea854..812dfa9056 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts @@ -10,4 +10,3 @@ export type VariantResponseModelBaseModel = { createDate: string; updateDate: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts index d24ef88903..51552fb5f9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts @@ -10,4 +10,3 @@ export type VariantTreeItemModel = { culture?: string | null; state: PublishedStateModel; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts index 591a6e44ef..c5f8063e84 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts @@ -7,4 +7,3 @@ export type VerifyInviteUserRequestModel = { userId: string; token: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts index f0c283b399..3450fd521c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts @@ -7,4 +7,3 @@ export type VerifyResetPasswordTokenRequestModel = { userId: string; resetCode: string; }; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts index b83d457350..115a88e983 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts @@ -18,16 +18,16 @@ export class AuditLogResource { * @throws ApiError */ public static getAuditLog({ - orderDirection, - sinceDate, - skip, - take = 100, - }: { - orderDirection?: DirectionModel, - sinceDate?: string, - skip?: number, - take?: number, - }): CancelablePromise { +orderDirection, +sinceDate, +skip, +take = 100, +}: { +orderDirection?: DirectionModel, +sinceDate?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/audit-log', @@ -48,18 +48,18 @@ export class AuditLogResource { * @throws ApiError */ public static getAuditLogById({ - id, - orderDirection, - sinceDate, - skip, - take = 100, - }: { - id: string, - orderDirection?: DirectionModel, - sinceDate?: string, - skip?: number, - take?: number, - }): CancelablePromise { +id, +orderDirection, +sinceDate, +skip, +take = 100, +}: { +id: string, +orderDirection?: DirectionModel, +sinceDate?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/audit-log/{id}', @@ -83,16 +83,16 @@ export class AuditLogResource { * @throws ApiError */ public static getAuditLogTypeByLogType({ - logType, - sinceDate, - skip, - take = 100, - }: { - logType: AuditTypeModel, - sinceDate?: string, - skip?: number, - take?: number, - }): CancelablePromise { +logType, +sinceDate, +skip, +take = 100, +}: { +logType: AuditTypeModel, +sinceDate?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/audit-log/type/{logType}', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts index 9147291447..7f4634a035 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts @@ -15,12 +15,12 @@ export class CultureResource { * @throws ApiError */ public static getCulture({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/culture', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts index 9bf3aa8360..e0e0024be5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts @@ -25,10 +25,10 @@ export class DataTypeResource { * @throws ApiError */ public static postDataType({ - requestBody, - }: { - requestBody?: CreateDataTypeRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateDataTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/data-type', @@ -48,10 +48,10 @@ export class DataTypeResource { * @throws ApiError */ public static getDataTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/data-type/{id}', @@ -70,10 +70,10 @@ export class DataTypeResource { * @throws ApiError */ public static deleteDataTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/data-type/{id}', @@ -93,12 +93,12 @@ export class DataTypeResource { * @throws ApiError */ public static putDataTypeById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateDataTypeRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateDataTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/data-type/{id}', @@ -120,12 +120,12 @@ export class DataTypeResource { * @throws ApiError */ public static postDataTypeByIdCopy({ - id, - requestBody, - }: { - id: string, - requestBody?: CopyDataTypeRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: CopyDataTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/data-type/{id}/copy', @@ -147,10 +147,10 @@ export class DataTypeResource { * @throws ApiError */ public static getDataTypeByIdIsUsed({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/data-type/{id}/is-used', @@ -168,15 +168,15 @@ export class DataTypeResource { * @returns any Success * @throws ApiError */ - public static postDataTypeByIdMove({ - id, - requestBody, - }: { - id: string, - requestBody?: MoveDataTypeRequestModel, - }): CancelablePromise { + public static putDataTypeByIdMove({ +id, +requestBody, +}: { +id: string, +requestBody?: MoveDataTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { - method: 'POST', + method: 'PUT', url: '/umbraco/management/api/v1/data-type/{id}/move', path: { 'id': id, @@ -195,10 +195,10 @@ export class DataTypeResource { * @throws ApiError */ public static getDataTypeByIdReferences({ - id, - }: { - id: string, - }): CancelablePromise> { +id, +}: { +id: string, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/data-type/{id}/references', @@ -217,10 +217,10 @@ export class DataTypeResource { * @throws ApiError */ public static postDataTypeFolder({ - requestBody, - }: { - requestBody?: CreateFolderRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateFolderRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/data-type/folder', @@ -240,10 +240,10 @@ export class DataTypeResource { * @throws ApiError */ public static getDataTypeFolderById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/data-type/folder/{id}', @@ -262,10 +262,10 @@ export class DataTypeResource { * @throws ApiError */ public static deleteDataTypeFolderById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/data-type/folder/{id}', @@ -285,12 +285,12 @@ export class DataTypeResource { * @throws ApiError */ public static putDataTypeFolderById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateFolderResponseModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateFolderResponseModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/data-type/folder/{id}', @@ -312,10 +312,10 @@ export class DataTypeResource { * @throws ApiError */ public static getDataTypeItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/data-type/item', @@ -333,10 +333,10 @@ export class DataTypeResource { * @throws ApiError */ public static getDataTypeItemByAlias({ - alias, - }: { - alias: string, - }): CancelablePromise { +alias, +}: { +alias: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/data-type/item/{alias}', @@ -354,16 +354,16 @@ export class DataTypeResource { * @throws ApiError */ public static getTreeDataTypeChildren({ - parentId, - skip, - take = 100, - foldersOnly = false, - }: { - parentId?: string, - skip?: number, - take?: number, - foldersOnly?: boolean, - }): CancelablePromise { +parentId, +skip, +take = 100, +foldersOnly = false, +}: { +parentId?: string, +skip?: number, +take?: number, +foldersOnly?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/data-type/children', @@ -384,14 +384,14 @@ export class DataTypeResource { * @throws ApiError */ public static getTreeDataTypeRoot({ - skip, - take = 100, - foldersOnly = false, - }: { - skip?: number, - take?: number, - foldersOnly?: boolean, - }): CancelablePromise { +skip, +take = 100, +foldersOnly = false, +}: { +skip?: number, +take?: number, +foldersOnly?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/data-type/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts index 1d32c33e6d..779216f4f6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts @@ -22,12 +22,12 @@ export class DictionaryResource { * @throws ApiError */ public static getDictionary({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/dictionary', @@ -46,10 +46,10 @@ export class DictionaryResource { * @throws ApiError */ public static postDictionary({ - requestBody, - }: { - requestBody?: CreateDictionaryItemRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateDictionaryItemRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/dictionary', @@ -70,10 +70,10 @@ export class DictionaryResource { * @throws ApiError */ public static getDictionaryById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/dictionary/{id}', @@ -92,10 +92,10 @@ export class DictionaryResource { * @throws ApiError */ public static deleteDictionaryById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/dictionary/{id}', @@ -115,12 +115,12 @@ export class DictionaryResource { * @throws ApiError */ public static putDictionaryById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateDictionaryItemRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateDictionaryItemRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/dictionary/{id}', @@ -142,12 +142,12 @@ export class DictionaryResource { * @throws ApiError */ public static getDictionaryByIdExport({ - id, - includeChildren = false, - }: { - id: string, - includeChildren?: boolean, - }): CancelablePromise { +id, +includeChildren = false, +}: { +id: string, +includeChildren?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/dictionary/{id}/export', @@ -168,15 +168,15 @@ export class DictionaryResource { * @returns any Success * @throws ApiError */ - public static postDictionaryByIdMove({ - id, - requestBody, - }: { - id: string, - requestBody?: MoveDictionaryRequestModel, - }): CancelablePromise { + public static putDictionaryByIdMove({ +id, +requestBody, +}: { +id: string, +requestBody?: MoveDictionaryRequestModel, +}): CancelablePromise { return __request(OpenAPI, { - method: 'POST', + method: 'PUT', url: '/umbraco/management/api/v1/dictionary/{id}/move', path: { 'id': id, @@ -196,10 +196,10 @@ export class DictionaryResource { * @throws ApiError */ public static postDictionaryImport({ - requestBody, - }: { - requestBody?: ImportDictionaryRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: ImportDictionaryRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/dictionary/import', @@ -219,10 +219,10 @@ export class DictionaryResource { * @throws ApiError */ public static getDictionaryItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/dictionary/item', @@ -240,14 +240,14 @@ export class DictionaryResource { * @throws ApiError */ public static getTreeDictionaryChildren({ - parentId, - skip, - take = 100, - }: { - parentId?: string, - skip?: number, - take?: number, - }): CancelablePromise { +parentId, +skip, +take = 100, +}: { +parentId?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/dictionary/children', @@ -267,12 +267,12 @@ export class DictionaryResource { * @throws ApiError */ public static getTreeDictionaryRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/dictionary/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts index d9db2af0ed..0b4be9a492 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts @@ -16,10 +16,10 @@ export class DocumentBlueprintResource { * @throws ApiError */ public static getDocumentBlueprintItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document-blueprint/item', @@ -37,12 +37,12 @@ export class DocumentBlueprintResource { * @throws ApiError */ public static getTreeDocumentBlueprintRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document-blueprint/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index 19d3171ea0..9711dabd76 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -32,10 +32,10 @@ export class DocumentResource { * @throws ApiError */ public static postDocument({ - requestBody, - }: { - requestBody?: CreateDocumentRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateDocumentRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document', @@ -55,10 +55,10 @@ export class DocumentResource { * @throws ApiError */ public static getDocumentById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}', @@ -78,12 +78,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateDocumentRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateDocumentRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}', @@ -105,12 +105,12 @@ export class DocumentResource { * @throws ApiError */ public static postDocumentByIdCopy({ - id, - requestBody, - }: { - id: string, - requestBody?: CopyDocumentRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: CopyDocumentRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document/{id}/copy', @@ -133,10 +133,10 @@ export class DocumentResource { * @throws ApiError */ public static getDocumentByIdDomains({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}/domains', @@ -155,12 +155,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdDomains({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateDomainsRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateDomainsRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/domains', @@ -180,12 +180,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdMove({ - id, - requestBody, - }: { - id: string, - requestBody?: MoveDocumentRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: MoveDocumentRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/move', @@ -207,10 +207,10 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdMoveToRecycleBin({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/move-to-recycle-bin', @@ -231,10 +231,10 @@ export class DocumentResource { * @throws ApiError */ public static getDocumentByIdNotifications({ - id, - }: { - id: string, - }): CancelablePromise> { +id, +}: { +id: string, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}/notifications', @@ -254,12 +254,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdNotifications({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateDocumentNotificationsRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateDocumentNotificationsRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/notifications', @@ -280,12 +280,12 @@ export class DocumentResource { * @throws ApiError */ public static postDocumentByIdPublicAccess({ - id, - requestBody, - }: { - id: string, - requestBody?: PublicAccessRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: PublicAccessRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -308,10 +308,10 @@ export class DocumentResource { * @throws ApiError */ public static deleteDocumentByIdPublicAccess({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -327,14 +327,14 @@ export class DocumentResource { } /** - * @returns void + * @returns void * @throws ApiError */ public static getDocumentByIdPublicAccess({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -354,12 +354,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdPublicAccess({ - id, - requestBody, - }: { - id: string, - requestBody?: PublicAccessRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: PublicAccessRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -381,12 +381,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdPublish({ - id, - requestBody, - }: { - id: string, - requestBody?: (PublishDocumentRequestModel | PublishDocumentWithDescendantsRequestModel), - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: (PublishDocumentRequestModel | PublishDocumentWithDescendantsRequestModel), +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/publish', @@ -409,12 +409,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdPublishWithDescendants({ - id, - requestBody, - }: { - id: string, - requestBody?: PublishDocumentWithDescendantsRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: PublishDocumentWithDescendantsRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/publish-with-descendants', @@ -437,12 +437,12 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentByIdUnpublish({ - id, - requestBody, - }: { - id: string, - requestBody?: UnpublishDocumentRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UnpublishDocumentRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/unpublish', @@ -465,14 +465,14 @@ export class DocumentResource { * @throws ApiError */ public static getDocumentAllowedDocumentTypes({ - parentId, - skip, - take = 100, - }: { - parentId?: string, - skip?: number, - take?: number, - }): CancelablePromise { +parentId, +skip, +take = 100, +}: { +parentId?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/allowed-document-types', @@ -493,14 +493,14 @@ export class DocumentResource { * @throws ApiError */ public static getDocumentItem({ - id, - dataTypeId, - culture, - }: { - id?: Array, - dataTypeId?: string, - culture?: string, - }): CancelablePromise> { +id, +dataTypeId, +culture, +}: { +id?: Array, +dataTypeId?: string, +culture?: string, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/item', @@ -520,10 +520,10 @@ export class DocumentResource { * @throws ApiError */ public static putDocumentSort({ - requestBody, - }: { - requestBody?: SortingRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: SortingRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/sort', @@ -543,14 +543,14 @@ export class DocumentResource { * @throws ApiError */ public static getRecycleBinDocumentChildren({ - parentId, - skip, - take = 100, - }: { - parentId?: string, - skip?: number, - take?: number, - }): CancelablePromise { +parentId, +skip, +take = 100, +}: { +parentId?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/document/children', @@ -570,12 +570,12 @@ export class DocumentResource { * @throws ApiError */ public static getRecycleBinDocumentRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/document/root', @@ -594,18 +594,18 @@ export class DocumentResource { * @throws ApiError */ public static getTreeDocumentChildren({ - parentId, - skip, - take = 100, - dataTypeId, - culture, - }: { - parentId?: string, - skip?: number, - take?: number, - dataTypeId?: string, - culture?: string, - }): CancelablePromise { +parentId, +skip, +take = 100, +dataTypeId, +culture, +}: { +parentId?: string, +skip?: number, +take?: number, +dataTypeId?: string, +culture?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document/children', @@ -627,16 +627,16 @@ export class DocumentResource { * @throws ApiError */ public static getTreeDocumentRoot({ - skip, - take = 100, - dataTypeId, - culture, - }: { - skip?: number, - take?: number, - dataTypeId?: string, - culture?: string, - }): CancelablePromise { +skip, +take = 100, +dataTypeId, +culture, +}: { +skip?: number, +take?: number, +dataTypeId?: string, +culture?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index c0720a7845..25e670d6cd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -2,11 +2,16 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { AvailableDocumentTypeCompositionResponseModel } from '../models/AvailableDocumentTypeCompositionResponseModel'; +import type { CopyDocumentTypeRequestModel } from '../models/CopyDocumentTypeRequestModel'; import type { CreateDocumentTypeRequestModel } from '../models/CreateDocumentTypeRequestModel'; import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; +import type { DocumentTypeCompositionRequestModel } from '../models/DocumentTypeCompositionRequestModel'; +import type { DocumentTypeCompositionResponseModel } from '../models/DocumentTypeCompositionResponseModel'; import type { DocumentTypeItemResponseModel } from '../models/DocumentTypeItemResponseModel'; import type { DocumentTypeResponseModel } from '../models/DocumentTypeResponseModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; +import type { MoveDocumentTypeRequestModel } from '../models/MoveDocumentTypeRequestModel'; import type { PagedDocumentTypeTreeItemResponseModel } from '../models/PagedDocumentTypeTreeItemResponseModel'; import type { UpdateDocumentTypeRequestModel } from '../models/UpdateDocumentTypeRequestModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; @@ -22,10 +27,10 @@ export class DocumentTypeResource { * @throws ApiError */ public static postDocumentType({ - requestBody, - }: { - requestBody?: CreateDocumentTypeRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateDocumentTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document-type', @@ -45,10 +50,10 @@ export class DocumentTypeResource { * @throws ApiError */ public static getDocumentTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document-type/{id}', @@ -67,10 +72,10 @@ export class DocumentTypeResource { * @throws ApiError */ public static deleteDocumentTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/document-type/{id}', @@ -89,12 +94,12 @@ export class DocumentTypeResource { * @throws ApiError */ public static putDocumentTypeById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateDocumentTypeRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateDocumentTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document-type/{id}', @@ -111,15 +116,113 @@ export class DocumentTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getDocumentTypeByIdCompositionReferences({ +id, +}: { +id: string, +}): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/document-type/{id}/composition-references', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns string Created + * @throws ApiError + */ + public static postDocumentTypeByIdCopy({ +id, +requestBody, +}: { +id: string, +requestBody?: CopyDocumentTypeRequestModel, +}): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/document-type/{id}/copy', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + responseHeader: 'Location', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static putDocumentTypeByIdMove({ +id, +requestBody, +}: { +id: string, +requestBody?: MoveDocumentTypeRequestModel, +}): CancelablePromise { + return __request(OpenAPI, { + method: 'PUT', + url: '/umbraco/management/api/v1/document-type/{id}/move', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static postDocumentTypeAvailableCompositions({ +requestBody, +}: { +requestBody?: DocumentTypeCompositionRequestModel, +}): CancelablePromise> { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/document-type/available-compositions', + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns string Created * @throws ApiError */ public static postDocumentTypeFolder({ - requestBody, - }: { - requestBody?: CreateFolderRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateFolderRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document-type/folder', @@ -139,10 +242,10 @@ export class DocumentTypeResource { * @throws ApiError */ public static getDocumentTypeFolderById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document-type/folder/{id}', @@ -161,10 +264,10 @@ export class DocumentTypeResource { * @throws ApiError */ public static deleteDocumentTypeFolderById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/document-type/folder/{id}', @@ -184,12 +287,12 @@ export class DocumentTypeResource { * @throws ApiError */ public static putDocumentTypeFolderById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateFolderResponseModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateFolderResponseModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document-type/folder/{id}', @@ -211,10 +314,10 @@ export class DocumentTypeResource { * @throws ApiError */ public static getDocumentTypeItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document-type/item', @@ -232,16 +335,16 @@ export class DocumentTypeResource { * @throws ApiError */ public static getTreeDocumentTypeChildren({ - parentId, - skip, - take = 100, - foldersOnly = false, - }: { - parentId?: string, - skip?: number, - take?: number, - foldersOnly?: boolean, - }): CancelablePromise { +parentId, +skip, +take = 100, +foldersOnly = false, +}: { +parentId?: string, +skip?: number, +take?: number, +foldersOnly?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document-type/children', @@ -262,14 +365,14 @@ export class DocumentTypeResource { * @throws ApiError */ public static getTreeDocumentTypeRoot({ - skip, - take = 100, - foldersOnly = false, - }: { - skip?: number, - take?: number, - foldersOnly?: boolean, - }): CancelablePromise { +skip, +take = 100, +foldersOnly = false, +}: { +skip?: number, +take?: number, +foldersOnly?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document-type/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts new file mode 100644 index 0000000000..795c84a5d2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DynamicRootResource.ts @@ -0,0 +1,48 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { DynamicRootRequestModel } from '../models/DynamicRootRequestModel'; +import type { DynamicRootResponseModel } from '../models/DynamicRootResponseModel'; + +import type { CancelablePromise } from '../core/CancelablePromise'; +import { OpenAPI } from '../core/OpenAPI'; +import { request as __request } from '../core/request'; + +export class DynamicRootResource { + + /** + * @returns any Success + * @throws ApiError + */ + public static postDynamicRootQuery({ +requestBody, +}: { +requestBody?: DynamicRootRequestModel, +}): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/dynamic-root/query', + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + + /** + * @returns string Success + * @throws ApiError + */ + public static getDynamicRootSteps(): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/dynamic-root/steps', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + +} diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts index a7ba30030a..50cb70b19b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts @@ -19,12 +19,12 @@ export class HealthCheckResource { * @throws ApiError */ public static getHealthCheckGroup({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/health-check-group', @@ -43,10 +43,10 @@ export class HealthCheckResource { * @throws ApiError */ public static getHealthCheckGroupByName({ - name, - }: { - name: string, - }): CancelablePromise { +name, +}: { +name: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/health-check-group/{name}', @@ -65,10 +65,10 @@ export class HealthCheckResource { * @throws ApiError */ public static postHealthCheckGroupByNameCheck({ - name, - }: { - name: string, - }): CancelablePromise { +name, +}: { +name: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/health-check-group/{name}/check', @@ -87,10 +87,10 @@ export class HealthCheckResource { * @throws ApiError */ public static postHealthCheckExecuteAction({ - requestBody, - }: { - requestBody?: HealthCheckActionRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: HealthCheckActionRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/health-check/execute-action', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts index 5a8f103da5..5401131d77 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts @@ -15,18 +15,18 @@ export class HelpResource { * @throws ApiError */ public static getHelp({ - section, - tree, - skip, - take = 100, - baseUrl = 'https://our.umbraco.com', - }: { - section?: string, - tree?: string, - skip?: number, - take?: number, - baseUrl?: string, - }): CancelablePromise { +section, +tree, +skip, +take = 100, +baseUrl = 'https://our.umbraco.com', +}: { +section?: string, +tree?: string, +skip?: number, +take?: number, +baseUrl?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/help', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts index edd9f9661c..74b8ef2abd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts @@ -17,12 +17,12 @@ export class IndexerResource { * @throws ApiError */ public static getIndexer({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/indexer', @@ -41,10 +41,10 @@ export class IndexerResource { * @throws ApiError */ public static getIndexerByIndexName({ - indexName, - }: { - indexName: string, - }): CancelablePromise { +indexName, +}: { +indexName: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/indexer/{indexName}', @@ -63,10 +63,10 @@ export class IndexerResource { * @throws ApiError */ public static postIndexerByIndexNameRebuild({ - indexName, - }: { - indexName: string, - }): CancelablePromise { +indexName, +}: { +indexName: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/indexer/{indexName}/rebuild', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts index 822d97c535..325dd1bf2a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts @@ -32,10 +32,10 @@ export class InstallResource { * @throws ApiError */ public static postInstallSetup({ - requestBody, - }: { - requestBody?: InstallVResponseModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: InstallVResponseModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/install/setup', @@ -53,10 +53,10 @@ export class InstallResource { * @throws ApiError */ public static postInstallValidateDatabase({ - requestBody, - }: { - requestBody?: DatabaseInstallResponseModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: DatabaseInstallResponseModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/install/validate-database', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts index 50b9fcc55d..7534a2b1dd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts @@ -19,12 +19,12 @@ export class LanguageResource { * @throws ApiError */ public static getLanguage({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/language', @@ -43,10 +43,10 @@ export class LanguageResource { * @throws ApiError */ public static postLanguage({ - requestBody, - }: { - requestBody?: CreateLanguageRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateLanguageRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/language', @@ -66,10 +66,10 @@ export class LanguageResource { * @throws ApiError */ public static getLanguageByIsoCode({ - isoCode, - }: { - isoCode: string, - }): CancelablePromise { +isoCode, +}: { +isoCode: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/language/{isoCode}', @@ -88,10 +88,10 @@ export class LanguageResource { * @throws ApiError */ public static deleteLanguageByIsoCode({ - isoCode, - }: { - isoCode: string, - }): CancelablePromise { +isoCode, +}: { +isoCode: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/language/{isoCode}', @@ -111,12 +111,12 @@ export class LanguageResource { * @throws ApiError */ public static putLanguageByIsoCode({ - isoCode, - requestBody, - }: { - isoCode: string, - requestBody?: UpdateLanguageRequestModel, - }): CancelablePromise { +isoCode, +requestBody, +}: { +isoCode: string, +requestBody?: UpdateLanguageRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/language/{isoCode}', @@ -138,10 +138,10 @@ export class LanguageResource { * @throws ApiError */ public static getLanguageItem({ - isoCode, - }: { - isoCode?: Array, - }): CancelablePromise> { +isoCode, +}: { +isoCode?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/language/item', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts index 875f6ddd01..d26c3d6858 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts @@ -23,12 +23,12 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerLevel({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/level', @@ -47,12 +47,12 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerLevelCount({ - startDate, - endDate, - }: { - startDate?: string, - endDate?: string, - }): CancelablePromise { +startDate, +endDate, +}: { +startDate?: string, +endDate?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/level-count', @@ -72,22 +72,22 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerLog({ - skip, - take = 100, - orderDirection, - filterExpression, - logLevel, - startDate, - endDate, - }: { - skip?: number, - take?: number, - orderDirection?: DirectionModel, - filterExpression?: string, - logLevel?: Array, - startDate?: string, - endDate?: string, - }): CancelablePromise { +skip, +take = 100, +orderDirection, +filterExpression, +logLevel, +startDate, +endDate, +}: { +skip?: number, +take?: number, +orderDirection?: DirectionModel, +filterExpression?: string, +logLevel?: Array, +startDate?: string, +endDate?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/log', @@ -111,16 +111,16 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerMessageTemplate({ - skip, - take = 100, - startDate, - endDate, - }: { - skip?: number, - take?: number, - startDate?: string, - endDate?: string, - }): CancelablePromise { +skip, +take = 100, +startDate, +endDate, +}: { +skip?: number, +take?: number, +startDate?: string, +endDate?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/message-template', @@ -142,12 +142,12 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerSavedSearch({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/saved-search', @@ -166,10 +166,10 @@ export class LogViewerResource { * @throws ApiError */ public static postLogViewerSavedSearch({ - requestBody, - }: { - requestBody?: SavedLogSearchRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: SavedLogSearchRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/log-viewer/saved-search', @@ -188,10 +188,10 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerSavedSearchByName({ - name, - }: { - name: string, - }): CancelablePromise { +name, +}: { +name: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/saved-search/{name}', @@ -210,10 +210,10 @@ export class LogViewerResource { * @throws ApiError */ public static deleteLogViewerSavedSearchByName({ - name, - }: { - name: string, - }): CancelablePromise { +name, +}: { +name: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/log-viewer/saved-search/{name}', @@ -232,12 +232,12 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerValidateLogsSize({ - startDate, - endDate, - }: { - startDate?: string, - endDate?: string, - }): CancelablePromise { +startDate, +endDate, +}: { +startDate?: string, +endDate?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/validate-logs-size', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts index 300cf01e33..0441e76225 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts @@ -23,10 +23,10 @@ export class MediaResource { * @throws ApiError */ public static postMedia({ - requestBody, - }: { - requestBody?: CreateMediaRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateMediaRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/media', @@ -46,10 +46,10 @@ export class MediaResource { * @throws ApiError */ public static getMediaById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/media/{id}', @@ -69,12 +69,12 @@ export class MediaResource { * @throws ApiError */ public static putMediaById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateMediaRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateMediaRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/{id}', @@ -96,12 +96,12 @@ export class MediaResource { * @throws ApiError */ public static putMediaByIdMove({ - id, - requestBody, - }: { - id: string, - requestBody?: MoveMediaRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: MoveMediaRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/{id}/move', @@ -123,10 +123,10 @@ export class MediaResource { * @throws ApiError */ public static putMediaByIdMoveToRecycleBin({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/{id}/move-to-recycle-bin', @@ -147,12 +147,12 @@ export class MediaResource { * @throws ApiError */ public static getMediaItem({ - id, - dataTypeId, - }: { - id?: Array, - dataTypeId?: string, - }): CancelablePromise> { +id, +dataTypeId, +}: { +id?: Array, +dataTypeId?: string, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/media/item', @@ -171,10 +171,10 @@ export class MediaResource { * @throws ApiError */ public static putMediaSort({ - requestBody, - }: { - requestBody?: SortingRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: SortingRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/sort', @@ -194,14 +194,14 @@ export class MediaResource { * @throws ApiError */ public static getRecycleBinMediaChildren({ - parentId, - skip, - take = 100, - }: { - parentId?: string, - skip?: number, - take?: number, - }): CancelablePromise { +parentId, +skip, +take = 100, +}: { +parentId?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/media/children', @@ -221,12 +221,12 @@ export class MediaResource { * @throws ApiError */ public static getRecycleBinMediaRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/media/root', @@ -245,16 +245,16 @@ export class MediaResource { * @throws ApiError */ public static getTreeMediaChildren({ - parentId, - skip, - take = 100, - dataTypeId, - }: { - parentId?: string, - skip?: number, - take?: number, - dataTypeId?: string, - }): CancelablePromise { +parentId, +skip, +take = 100, +dataTypeId, +}: { +parentId?: string, +skip?: number, +take?: number, +dataTypeId?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/media/children', @@ -275,12 +275,12 @@ export class MediaResource { * @throws ApiError */ public static getTreeMediaItem({ - id, - dataTypeId, - }: { - id?: Array, - dataTypeId?: string, - }): CancelablePromise> { +id, +dataTypeId, +}: { +id?: Array, +dataTypeId?: string, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/media/item', @@ -299,14 +299,14 @@ export class MediaResource { * @throws ApiError */ public static getTreeMediaRoot({ - skip, - take = 100, - dataTypeId, - }: { - skip?: number, - take?: number, - dataTypeId?: string, - }): CancelablePromise { +skip, +take = 100, +dataTypeId, +}: { +skip?: number, +take?: number, +dataTypeId?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/media/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts index 3e8a455b1c..d00595fc47 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts @@ -2,11 +2,16 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { AvailableMediaTypeCompositionResponseModel } from '../models/AvailableMediaTypeCompositionResponseModel'; +import type { CopyMediaTypeRequestModel } from '../models/CopyMediaTypeRequestModel'; import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; import type { CreateMediaTypeRequestModel } from '../models/CreateMediaTypeRequestModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; +import type { MediaTypeCompositionRequestModel } from '../models/MediaTypeCompositionRequestModel'; +import type { MediaTypeCompositionResponseModel } from '../models/MediaTypeCompositionResponseModel'; import type { MediaTypeItemResponseModel } from '../models/MediaTypeItemResponseModel'; import type { MediaTypeResponseModel } from '../models/MediaTypeResponseModel'; +import type { MoveMediaTypeRequestModel } from '../models/MoveMediaTypeRequestModel'; import type { PagedMediaTypeTreeItemResponseModel } from '../models/PagedMediaTypeTreeItemResponseModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; import type { UpdateMediaTypeRequestModel } from '../models/UpdateMediaTypeRequestModel'; @@ -22,10 +27,10 @@ export class MediaTypeResource { * @throws ApiError */ public static postMediaType({ - requestBody, - }: { - requestBody?: CreateMediaTypeRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateMediaTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/media-type', @@ -45,10 +50,10 @@ export class MediaTypeResource { * @throws ApiError */ public static getMediaTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/media-type/{id}', @@ -67,10 +72,10 @@ export class MediaTypeResource { * @throws ApiError */ public static deleteMediaTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/media-type/{id}', @@ -89,12 +94,12 @@ export class MediaTypeResource { * @throws ApiError */ public static putMediaTypeById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateMediaTypeRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateMediaTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media-type/{id}', @@ -111,15 +116,113 @@ export class MediaTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getMediaTypeByIdCompositionReferences({ +id, +}: { +id: string, +}): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/media-type/{id}/composition-references', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns string Created + * @throws ApiError + */ + public static postMediaTypeByIdCopy({ +id, +requestBody, +}: { +id: string, +requestBody?: CopyMediaTypeRequestModel, +}): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/media-type/{id}/copy', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + responseHeader: 'Location', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static putMediaTypeByIdMove({ +id, +requestBody, +}: { +id: string, +requestBody?: MoveMediaTypeRequestModel, +}): CancelablePromise { + return __request(OpenAPI, { + method: 'PUT', + url: '/umbraco/management/api/v1/media-type/{id}/move', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static postMediaTypeAvailableCompositions({ +requestBody, +}: { +requestBody?: MediaTypeCompositionRequestModel, +}): CancelablePromise> { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/media-type/available-compositions', + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns string Created * @throws ApiError */ public static postMediaTypeFolder({ - requestBody, - }: { - requestBody?: CreateFolderRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateFolderRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/media-type/folder', @@ -139,10 +242,10 @@ export class MediaTypeResource { * @throws ApiError */ public static getMediaTypeFolderById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/media-type/folder/{id}', @@ -161,10 +264,10 @@ export class MediaTypeResource { * @throws ApiError */ public static deleteMediaTypeFolderById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/media-type/folder/{id}', @@ -184,12 +287,12 @@ export class MediaTypeResource { * @throws ApiError */ public static putMediaTypeFolderById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateFolderResponseModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateFolderResponseModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media-type/folder/{id}', @@ -211,10 +314,10 @@ export class MediaTypeResource { * @throws ApiError */ public static getMediaTypeItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/media-type/item', @@ -232,16 +335,16 @@ export class MediaTypeResource { * @throws ApiError */ public static getTreeMediaTypeChildren({ - parentId, - skip, - take = 100, - foldersOnly = false, - }: { - parentId?: string, - skip?: number, - take?: number, - foldersOnly?: boolean, - }): CancelablePromise { +parentId, +skip, +take = 100, +foldersOnly = false, +}: { +parentId?: string, +skip?: number, +take?: number, +foldersOnly?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/media-type/children', @@ -262,14 +365,14 @@ export class MediaTypeResource { * @throws ApiError */ public static getTreeMediaTypeRoot({ - skip, - take = 100, - foldersOnly = false, - }: { - skip?: number, - take?: number, - foldersOnly?: boolean, - }): CancelablePromise { +skip, +take = 100, +foldersOnly = false, +}: { +skip?: number, +take?: number, +foldersOnly?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/media-type/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts index adbb074e57..914320853e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts @@ -16,10 +16,10 @@ export class MemberGroupResource { * @throws ApiError */ public static getMemberGroupItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/member-group/item', @@ -37,12 +37,12 @@ export class MemberGroupResource { * @throws ApiError */ public static getTreeMemberGroupRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/member-group/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts index 46ecade882..0116e9d963 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts @@ -15,10 +15,10 @@ export class MemberResource { * @throws ApiError */ public static getMemberItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/member/item', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts index 6352da1962..fa54ddbb8f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts @@ -16,10 +16,10 @@ export class MemberTypeResource { * @throws ApiError */ public static getMemberTypeItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/member-type/item', @@ -37,12 +37,12 @@ export class MemberTypeResource { * @throws ApiError */ public static getTreeMemberTypeRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/member-type/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts index e22032ecde..e9d12b691a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts @@ -15,12 +15,12 @@ export class ObjectTypesResource { * @throws ApiError */ public static getObjectTypes({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/object-types', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts index 997effe03a..9f4f58c3f9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts @@ -20,10 +20,10 @@ export class PackageResource { * @throws ApiError */ public static postPackageByNameRunMigration({ - name, - }: { - name: string, - }): CancelablePromise { +name, +}: { +name: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/package/{name}/run-migration', @@ -43,12 +43,12 @@ export class PackageResource { * @throws ApiError */ public static getPackageCreated({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/created', @@ -67,10 +67,10 @@ export class PackageResource { * @throws ApiError */ public static postPackageCreated({ - requestBody, - }: { - requestBody?: CreatePackageRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreatePackageRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/package/created', @@ -90,10 +90,10 @@ export class PackageResource { * @throws ApiError */ public static getPackageCreatedById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/created/{id}', @@ -112,10 +112,10 @@ export class PackageResource { * @throws ApiError */ public static deletePackageCreatedById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/package/created/{id}', @@ -134,12 +134,12 @@ export class PackageResource { * @throws ApiError */ public static putPackageCreatedById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdatePackageRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdatePackageRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/package/created/{id}', @@ -160,10 +160,10 @@ export class PackageResource { * @throws ApiError */ public static getPackageCreatedByIdDownload({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/created/{id}/download', @@ -196,12 +196,12 @@ export class PackageResource { * @throws ApiError */ public static getPackageMigrationStatus({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/migration-status', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts index 0f2b69cfca..8c77845b38 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts @@ -22,10 +22,10 @@ export class PartialViewResource { * @throws ApiError */ public static getPartialView({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/partial-view', @@ -43,10 +43,10 @@ export class PartialViewResource { * @throws ApiError */ public static postPartialView({ - requestBody, - }: { - requestBody?: CreatePartialViewRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreatePartialViewRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/partial-view', @@ -64,10 +64,10 @@ export class PartialViewResource { * @throws ApiError */ public static deletePartialView({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/partial-view', @@ -85,10 +85,10 @@ export class PartialViewResource { * @throws ApiError */ public static putPartialView({ - requestBody, - }: { - requestBody?: UpdatePartialViewRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: UpdatePartialViewRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/partial-view', @@ -105,10 +105,10 @@ export class PartialViewResource { * @throws ApiError */ public static getPartialViewFolder({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/partial-view/folder', @@ -122,21 +122,24 @@ export class PartialViewResource { } /** - * @returns any Success + * @returns string Created * @throws ApiError */ public static postPartialViewFolder({ - requestBody, - }: { - requestBody?: CreatePathFolderRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreatePathFolderRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/partial-view/folder', body: requestBody, mediaType: 'application/json', + responseHeader: 'Location', errors: { + 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, }, }); } @@ -146,10 +149,10 @@ export class PartialViewResource { * @throws ApiError */ public static deletePartialViewFolder({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/partial-view/folder', @@ -157,7 +160,9 @@ export class PartialViewResource { 'path': path, }, errors: { + 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, }, }); } @@ -167,10 +172,10 @@ export class PartialViewResource { * @throws ApiError */ public static getPartialViewItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/partial-view/item', @@ -188,12 +193,12 @@ export class PartialViewResource { * @throws ApiError */ public static getPartialViewSnippet({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/partial-view/snippet', @@ -212,10 +217,10 @@ export class PartialViewResource { * @throws ApiError */ public static getPartialViewSnippetByName({ - name, - }: { - name: string, - }): CancelablePromise { +name, +}: { +name: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/partial-view/snippet/{name}', @@ -234,14 +239,14 @@ export class PartialViewResource { * @throws ApiError */ public static getTreePartialViewChildren({ - path, - skip, - take = 100, - }: { - path?: string, - skip?: number, - take?: number, - }): CancelablePromise { +path, +skip, +take = 100, +}: { +path?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/partial-view/children', @@ -261,12 +266,12 @@ export class PartialViewResource { * @throws ApiError */ public static getTreePartialViewRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/partial-view/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts new file mode 100644 index 0000000000..c3e7e42a75 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PreviewResource.ts @@ -0,0 +1,39 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CancelablePromise } from '../core/CancelablePromise'; +import { OpenAPI } from '../core/OpenAPI'; +import { request as __request } from '../core/request'; + +export class PreviewResource { + + /** + * @returns any Success + * @throws ApiError + */ + public static deletePreview(): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/preview', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static postPreview(): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/preview', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + +} diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts index 3c9e655507..94f49fee69 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts @@ -30,10 +30,10 @@ export class ProfilingResource { * @throws ApiError */ public static putProfilingStatus({ - requestBody, - }: { - requestBody?: ProfilingStatusRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: ProfilingStatusRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/profiling/status', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts index 36cf7b48cc..9c57e03e47 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts @@ -13,12 +13,12 @@ export class PropertyTypeResource { * @throws ApiError */ public static getPropertyTypeIsUsed({ - contentTypeId, - propertyAlias, - }: { - contentTypeId?: string, - propertyAlias?: string, - }): CancelablePromise { +contentTypeId, +propertyAlias, +}: { +contentTypeId?: string, +propertyAlias?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/property-type/is-used', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts index 935e6c6a62..948f368b96 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts @@ -17,14 +17,14 @@ export class RedirectManagementResource { * @throws ApiError */ public static getRedirectManagement({ - filter, - skip, - take = 100, - }: { - filter?: string, - skip?: number, - take?: number, - }): CancelablePromise { +filter, +skip, +take = 100, +}: { +filter?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/redirect-management', @@ -45,14 +45,14 @@ export class RedirectManagementResource { * @throws ApiError */ public static getRedirectManagementById({ - id, - skip, - take = 100, - }: { - id: string, - skip?: number, - take?: number, - }): CancelablePromise { +id, +skip, +take = 100, +}: { +id: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/redirect-management/{id}', @@ -74,10 +74,10 @@ export class RedirectManagementResource { * @throws ApiError */ public static deleteRedirectManagementById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/redirect-management/{id}', @@ -109,10 +109,10 @@ export class RedirectManagementResource { * @throws ApiError */ public static postRedirectManagementStatus({ - status, - }: { - status?: RedirectStatusModel, - }): CancelablePromise { +status, +}: { +status?: RedirectStatusModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/redirect-management/status', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts index 76bbbb9de5..7779f7cd6a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts @@ -15,16 +15,16 @@ export class RelationResource { * @throws ApiError */ public static getRelationChildRelationByChildId({ - childId, - skip, - take = 100, - relationTypeAlias = '', - }: { - childId: string, - skip?: number, - take?: number, - relationTypeAlias?: string, - }): CancelablePromise { +childId, +skip, +take = 100, +relationTypeAlias = '', +}: { +childId: string, +skip?: number, +take?: number, +relationTypeAlias?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation/child-relation/{childId}', @@ -47,14 +47,14 @@ export class RelationResource { * @throws ApiError */ public static getRelationTypeById({ - id, - skip, - take = 100, - }: { - id: string, - skip?: number, - take?: number, - }): CancelablePromise { +id, +skip, +take = 100, +}: { +id: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation/type/{id}', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts index fd4f1cbc2a..45066ea318 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts @@ -19,10 +19,10 @@ export class RelationTypeResource { * @throws ApiError */ public static postRelationType({ - requestBody, - }: { - requestBody?: CreateRelationTypeRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateRelationTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/relation-type', @@ -41,10 +41,10 @@ export class RelationTypeResource { * @throws ApiError */ public static getRelationTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation-type/{id}', @@ -63,10 +63,10 @@ export class RelationTypeResource { * @throws ApiError */ public static deleteRelationTypeById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/relation-type/{id}', @@ -85,12 +85,12 @@ export class RelationTypeResource { * @throws ApiError */ public static putRelationTypeById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateRelationTypeRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateRelationTypeRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/relation-type/{id}', @@ -112,10 +112,10 @@ export class RelationTypeResource { * @throws ApiError */ public static getRelationTypeItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation-type/item', @@ -133,12 +133,12 @@ export class RelationTypeResource { * @throws ApiError */ public static getTreeRelationTypeRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/relation-type/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts index 636675a7d7..6acd8733f3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts @@ -20,10 +20,10 @@ export class ScriptResource { * @throws ApiError */ public static getScript({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/script', @@ -41,10 +41,10 @@ export class ScriptResource { * @throws ApiError */ public static postScript({ - requestBody, - }: { - requestBody?: CreateScriptRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateScriptRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/script', @@ -62,10 +62,10 @@ export class ScriptResource { * @throws ApiError */ public static deleteScript({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/script', @@ -83,10 +83,10 @@ export class ScriptResource { * @throws ApiError */ public static putScript({ - requestBody, - }: { - requestBody?: UpdateScriptRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: UpdateScriptRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/script', @@ -103,10 +103,10 @@ export class ScriptResource { * @throws ApiError */ public static getScriptFolder({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/script/folder', @@ -120,21 +120,24 @@ export class ScriptResource { } /** - * @returns any Success + * @returns string Created * @throws ApiError */ public static postScriptFolder({ - requestBody, - }: { - requestBody?: CreatePathFolderRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreatePathFolderRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/script/folder', body: requestBody, mediaType: 'application/json', + responseHeader: 'Location', errors: { + 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, }, }); } @@ -144,10 +147,10 @@ export class ScriptResource { * @throws ApiError */ public static deleteScriptFolder({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/script/folder', @@ -155,7 +158,9 @@ export class ScriptResource { 'path': path, }, errors: { + 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, }, }); } @@ -165,10 +170,10 @@ export class ScriptResource { * @throws ApiError */ public static getScriptItem({ - path, - }: { - path?: Array, - }): CancelablePromise> { +path, +}: { +path?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/script/item', @@ -186,14 +191,14 @@ export class ScriptResource { * @throws ApiError */ public static getTreeScriptChildren({ - path, - skip, - take = 100, - }: { - path?: string, - skip?: number, - take?: number, - }): CancelablePromise { +path, +skip, +take = 100, +}: { +path?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/script/children', @@ -213,12 +218,12 @@ export class ScriptResource { * @throws ApiError */ public static getTreeScriptRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/script/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts index ff805a23dd..47b980d484 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts @@ -16,12 +16,12 @@ export class SearcherResource { * @throws ApiError */ public static getSearcher({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/searcher', @@ -40,16 +40,16 @@ export class SearcherResource { * @throws ApiError */ public static getSearcherBySearcherNameQuery({ - searcherName, - term, - skip, - take = 100, - }: { - searcherName: string, - term?: string, - skip?: number, - take?: number, - }): CancelablePromise { +searcherName, +term, +skip, +take = 100, +}: { +searcherName: string, +term?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/searcher/{searcherName}/query', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts index e50f16374c..12f1676ff5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts @@ -4,6 +4,7 @@ /* eslint-disable */ import type { ResetPasswordRequestModel } from '../models/ResetPasswordRequestModel'; import type { ResetPasswordTokenRequestModel } from '../models/ResetPasswordTokenRequestModel'; +import type { SecurityConfigurationResponseModel } from '../models/SecurityConfigurationResponseModel'; import type { VerifyResetPasswordTokenRequestModel } from '../models/VerifyResetPasswordTokenRequestModel'; import type { CancelablePromise } from '../core/CancelablePromise'; @@ -12,15 +13,29 @@ import { request as __request } from '../core/request'; export class SecurityResource { + /** + * @returns any Success + * @throws ApiError + */ + public static getSecurityConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/security/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError */ public static postSecurityForgotPassword({ - requestBody, - }: { - requestBody?: ResetPasswordRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: ResetPasswordRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/security/forgot-password', @@ -33,14 +48,14 @@ export class SecurityResource { } /** - * @returns void + * @returns void * @throws ApiError */ public static postSecurityForgotPasswordReset({ - requestBody, - }: { - requestBody?: ResetPasswordTokenRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: ResetPasswordTokenRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/security/forgot-password/reset', @@ -55,14 +70,14 @@ export class SecurityResource { } /** - * @returns void + * @returns void * @throws ApiError */ public static postSecurityForgotPasswordVerify({ - requestBody, - }: { - requestBody?: (VerifyResetPasswordTokenRequestModel | ResetPasswordTokenRequestModel), - }): CancelablePromise { +requestBody, +}: { +requestBody?: (VerifyResetPasswordTokenRequestModel | ResetPasswordTokenRequestModel), +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/security/forgot-password/verify', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts index 0ab367cadb..15d61a5904 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ServerResource.ts @@ -2,9 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { ServerConfigurationResponseModel } from '../models/ServerConfigurationResponseModel'; import type { ServerInformationResponseModel } from '../models/ServerInformationResponseModel'; import type { ServerStatusResponseModel } from '../models/ServerStatusResponseModel'; -import type { VersionResponseModel } from '../models/VersionResponseModel'; +import type { ServerTroubleshootingResponseModel } from '../models/ServerTroubleshootingResponseModel'; import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; @@ -12,6 +13,20 @@ import { request as __request } from '../core/request'; export class ServerResource { + /** + * @returns any Success + * @throws ApiError + */ + public static getServerConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/server/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -44,12 +59,11 @@ export class ServerResource { * @returns any Success * @throws ApiError */ - public static getServerVersion(): CancelablePromise { + public static getServerTroubleshooting(): CancelablePromise { return __request(OpenAPI, { method: 'GET', - url: '/umbraco/management/api/v1/server/version', + url: '/umbraco/management/api/v1/server/troubleshooting', errors: { - 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts index 003abb98db..b653370490 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StaticFileResource.ts @@ -16,10 +16,10 @@ export class StaticFileResource { * @throws ApiError */ public static getStaticFileItem({ - path, - }: { - path?: Array, - }): CancelablePromise> { +path, +}: { +path?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/static-file/item', @@ -37,14 +37,14 @@ export class StaticFileResource { * @throws ApiError */ public static getTreeStaticFileChildren({ - path, - skip, - take = 100, - }: { - path?: string, - skip?: number, - take?: number, - }): CancelablePromise { +path, +skip, +take = 100, +}: { +path?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/static-file/children', @@ -64,12 +64,12 @@ export class StaticFileResource { * @throws ApiError */ public static getTreeStaticFileRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/static-file/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts index a569f44fa2..5f5fe36d02 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts @@ -26,10 +26,10 @@ export class StylesheetResource { * @throws ApiError */ public static getStylesheet({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/stylesheet', @@ -47,10 +47,10 @@ export class StylesheetResource { * @throws ApiError */ public static postStylesheet({ - requestBody, - }: { - requestBody?: CreateStylesheetRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateStylesheetRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/stylesheet', @@ -68,10 +68,10 @@ export class StylesheetResource { * @throws ApiError */ public static deleteStylesheet({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/stylesheet', @@ -89,10 +89,10 @@ export class StylesheetResource { * @throws ApiError */ public static putStylesheet({ - requestBody, - }: { - requestBody?: UpdateStylesheetRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: UpdateStylesheetRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/stylesheet', @@ -109,12 +109,12 @@ export class StylesheetResource { * @throws ApiError */ public static getStylesheetAll({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/stylesheet/all', @@ -133,10 +133,10 @@ export class StylesheetResource { * @throws ApiError */ public static getStylesheetFolder({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/stylesheet/folder', @@ -150,21 +150,24 @@ export class StylesheetResource { } /** - * @returns any Success + * @returns string Created * @throws ApiError */ public static postStylesheetFolder({ - requestBody, - }: { - requestBody?: CreatePathFolderRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreatePathFolderRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/stylesheet/folder', body: requestBody, mediaType: 'application/json', + responseHeader: 'Location', errors: { + 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, }, }); } @@ -174,10 +177,10 @@ export class StylesheetResource { * @throws ApiError */ public static deleteStylesheetFolder({ - path, - }: { - path?: string, - }): CancelablePromise { +path, +}: { +path?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/stylesheet/folder', @@ -185,7 +188,9 @@ export class StylesheetResource { 'path': path, }, errors: { + 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, }, }); } @@ -195,10 +200,10 @@ export class StylesheetResource { * @throws ApiError */ public static getStylesheetItem({ - path, - }: { - path?: Array, - }): CancelablePromise> { +path, +}: { +path?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/stylesheet/item', @@ -216,10 +221,10 @@ export class StylesheetResource { * @throws ApiError */ public static postStylesheetRichTextExtractRules({ - requestBody, - }: { - requestBody?: ExtractRichTextStylesheetRulesRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: ExtractRichTextStylesheetRulesRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/stylesheet/rich-text/extract-rules', @@ -236,10 +241,10 @@ export class StylesheetResource { * @throws ApiError */ public static postStylesheetRichTextInterpolateRules({ - requestBody, - }: { - requestBody?: InterpolateRichTextStylesheetRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: InterpolateRichTextStylesheetRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/stylesheet/rich-text/interpolate-rules', @@ -256,10 +261,10 @@ export class StylesheetResource { * @throws ApiError */ public static getStylesheetRichTextRules({ - path, - }: { - path?: string, - }): CancelablePromise<(RichTextStylesheetRulesResponseModel | ExtractRichTextStylesheetRulesResponseModel)> { +path, +}: { +path?: string, +}): CancelablePromise<(RichTextStylesheetRulesResponseModel | ExtractRichTextStylesheetRulesResponseModel)> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/stylesheet/rich-text/rules', @@ -277,14 +282,14 @@ export class StylesheetResource { * @throws ApiError */ public static getTreeStylesheetChildren({ - path, - skip, - take = 100, - }: { - path?: string, - skip?: number, - take?: number, - }): CancelablePromise { +path, +skip, +take = 100, +}: { +path?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/stylesheet/children', @@ -304,12 +309,12 @@ export class StylesheetResource { * @throws ApiError */ public static getTreeStylesheetRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/stylesheet/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts index 2d0c9675f7..26eb859912 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts @@ -15,18 +15,18 @@ export class TagResource { * @throws ApiError */ public static getTag({ - query, - tagGroup, - culture, - skip, - take = 100, - }: { - query?: string, - tagGroup?: string, - culture?: string, - skip?: number, - take?: number, - }): CancelablePromise { +query, +tagGroup, +culture, +skip, +take = 100, +}: { +query?: string, +tagGroup?: string, +culture?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tag', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts index 89b241dcf0..bc536d38e2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts @@ -17,12 +17,12 @@ export class TelemetryResource { * @throws ApiError */ public static getTelemetry({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/telemetry', @@ -55,10 +55,10 @@ export class TelemetryResource { * @throws ApiError */ public static postTelemetryLevel({ - requestBody, - }: { - requestBody?: TelemetryRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: TelemetryRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/telemetry/level', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts index 944b8232d4..3194740d6d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts @@ -23,10 +23,10 @@ export class TemplateResource { * @throws ApiError */ public static postTemplate({ - requestBody, - }: { - requestBody?: CreateTemplateRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateTemplateRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/template', @@ -46,10 +46,10 @@ export class TemplateResource { * @throws ApiError */ public static getTemplateById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/template/{id}', @@ -68,10 +68,10 @@ export class TemplateResource { * @throws ApiError */ public static deleteTemplateById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/template/{id}', @@ -91,12 +91,12 @@ export class TemplateResource { * @throws ApiError */ public static putTemplateById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateTemplateRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateTemplateRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/template/{id}', @@ -118,10 +118,10 @@ export class TemplateResource { * @throws ApiError */ public static getTemplateItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/template/item', @@ -139,10 +139,10 @@ export class TemplateResource { * @throws ApiError */ public static postTemplateQueryExecute({ - requestBody, - }: { - requestBody?: TemplateQueryExecuteModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: TemplateQueryExecuteModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/template/query/execute', @@ -173,10 +173,10 @@ export class TemplateResource { * @throws ApiError */ public static getTemplateScaffold({ - masterTemplateId, - }: { - masterTemplateId?: string, - }): CancelablePromise { +masterTemplateId, +}: { +masterTemplateId?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/template/scaffold', @@ -195,14 +195,14 @@ export class TemplateResource { * @throws ApiError */ public static getTreeTemplateChildren({ - parentId, - skip, - take = 100, - }: { - parentId?: string, - skip?: number, - take?: number, - }): CancelablePromise { +parentId, +skip, +take = 100, +}: { +parentId?: string, +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/template/children', @@ -222,12 +222,12 @@ export class TemplateResource { * @throws ApiError */ public static getTreeTemplateRoot({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/template/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts index 4e11a15af8..57783a1ac4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts @@ -15,13 +15,13 @@ export class TemporaryFileResource { * @throws ApiError */ public static postTemporaryfile({ - formData, - }: { - formData?: { - Id?: string; - File?: Blob; - }, - }): CancelablePromise { +formData, +}: { +formData?: { +Id?: string; +File?: Blob; +}, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/temporaryfile', @@ -40,10 +40,10 @@ export class TemporaryFileResource { * @throws ApiError */ public static getTemporaryfileById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/temporaryfile/{id}', @@ -63,10 +63,10 @@ export class TemporaryFileResource { * @throws ApiError */ public static deleteTemporaryfileById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/temporaryfile/{id}', @@ -81,4 +81,18 @@ export class TemporaryFileResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getTemporaryfileConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/temporaryfile/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts index 563a77950b..cd79bd81b3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts @@ -30,10 +30,10 @@ export class TourResource { * @throws ApiError */ public static postTour({ - requestBody, - }: { - requestBody?: SetTourStatusRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: SetTourStatusRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/tour', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts index 040c7a1345..0765570b15 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts @@ -15,16 +15,16 @@ export class TrackedReferenceResource { * @throws ApiError */ public static getTrackedReferenceById({ - id, - skip, - take = 20, - filterMustBeIsDependency = false, - }: { - id: string, - skip?: number, - take?: number, - filterMustBeIsDependency?: boolean, - }): CancelablePromise { +id, +skip, +take = 20, +filterMustBeIsDependency = false, +}: { +id: string, +skip?: number, +take?: number, +filterMustBeIsDependency?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tracked-reference/{id}', @@ -47,16 +47,16 @@ export class TrackedReferenceResource { * @throws ApiError */ public static getTrackedReferenceDescendantsByParentId({ - parentId, - skip, - take = 20, - filterMustBeIsDependency = true, - }: { - parentId: string, - skip?: number, - take?: number, - filterMustBeIsDependency?: boolean, - }): CancelablePromise { +parentId, +skip, +take = 20, +filterMustBeIsDependency = true, +}: { +parentId: string, +skip?: number, +take?: number, +filterMustBeIsDependency?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tracked-reference/descendants/{parentId}', @@ -79,16 +79,16 @@ export class TrackedReferenceResource { * @throws ApiError */ public static getTrackedReferenceItem({ - id, - skip, - take = 20, - filterMustBeIsDependency = true, - }: { - id?: Array, - skip?: number, - take?: number, - filterMustBeIsDependency?: boolean, - }): CancelablePromise { +id, +skip, +take = 20, +filterMustBeIsDependency = true, +}: { +id?: Array, +skip?: number, +take?: number, +filterMustBeIsDependency?: boolean, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tracked-reference/item', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts index 5c619e1448..b224466f6c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts @@ -20,10 +20,10 @@ export class UserGroupResource { * @throws ApiError */ public static deleteUserGroup({ - requestBody, - }: { - requestBody?: DeleteUserGroupsRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: DeleteUserGroupsRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user-group', @@ -42,10 +42,10 @@ export class UserGroupResource { * @throws ApiError */ public static postUserGroup({ - requestBody, - }: { - requestBody?: CreateUserGroupRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateUserGroupRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user-group', @@ -64,12 +64,12 @@ export class UserGroupResource { * @throws ApiError */ public static getUserGroup({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user-group', @@ -88,10 +88,10 @@ export class UserGroupResource { * @throws ApiError */ public static getUserGroupById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user-group/{id}', @@ -111,10 +111,10 @@ export class UserGroupResource { * @throws ApiError */ public static deleteUserGroupById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user-group/{id}', @@ -134,12 +134,12 @@ export class UserGroupResource { * @throws ApiError */ public static putUserGroupById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateUserGroupRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateUserGroupRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/user-group/{id}', @@ -155,15 +155,69 @@ export class UserGroupResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static deleteUserGroupByIdUsers({ +id, +requestBody, +}: { +id: string, +requestBody?: Array, +}): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/user-group/{id}/users', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static postUserGroupByIdUsers({ +id, +requestBody, +}: { +id: string, +requestBody?: Array, +}): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/user-group/{id}/users', + path: { + 'id': id, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError */ public static getUserGroupItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user-group/item', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 212388f45a..a5ff7f7d00 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -7,6 +7,7 @@ import type { CreateInitialPasswordUserRequestModel } from '../models/CreateInit import type { CreateUserRequestModel } from '../models/CreateUserRequestModel'; import type { CreateUserResponseModel } from '../models/CreateUserResponseModel'; import type { CurrentUserResponseModel } from '../models/CurrentUserResponseModel'; +import type { CurrenUserConfigurationResponseModel } from '../models/CurrenUserConfigurationResponseModel'; import type { DeleteUsersRequestModel } from '../models/DeleteUsersRequestModel'; import type { DirectionModel } from '../models/DirectionModel'; import type { DisableUserRequestModel } from '../models/DisableUserRequestModel'; @@ -19,6 +20,7 @@ import type { SetAvatarRequestModel } from '../models/SetAvatarRequestModel'; import type { UnlockUsersRequestModel } from '../models/UnlockUsersRequestModel'; import type { UpdateUserGroupsOnUserRequestModel } from '../models/UpdateUserGroupsOnUserRequestModel'; import type { UpdateUserRequestModel } from '../models/UpdateUserRequestModel'; +import type { UserConfigurationResponseModel } from '../models/UserConfigurationResponseModel'; import type { UserItemResponseModel } from '../models/UserItemResponseModel'; import type { UserOrderModel } from '../models/UserOrderModel'; import type { UserPermissionsResponseModel } from '../models/UserPermissionsResponseModel'; @@ -37,10 +39,10 @@ export class UserResource { * @throws ApiError */ public static postUser({ - requestBody, - }: { - requestBody?: (CreateUserRequestModel | InviteUserRequestModel), - }): CancelablePromise { +requestBody, +}: { +requestBody?: (CreateUserRequestModel | InviteUserRequestModel), +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user', @@ -58,10 +60,10 @@ export class UserResource { * @throws ApiError */ public static deleteUser({ - requestBody, - }: { - requestBody?: DeleteUsersRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: DeleteUsersRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user', @@ -80,12 +82,12 @@ export class UserResource { * @throws ApiError */ public static getUser({ - skip, - take = 100, - }: { - skip?: number, - take?: number, - }): CancelablePromise { +skip, +take = 100, +}: { +skip?: number, +take?: number, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user', @@ -104,10 +106,10 @@ export class UserResource { * @throws ApiError */ public static getUserById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/{id}', @@ -127,10 +129,10 @@ export class UserResource { * @throws ApiError */ public static deleteUserById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user/{id}', @@ -149,12 +151,12 @@ export class UserResource { * @throws ApiError */ public static putUserById({ - id, - requestBody, - }: { - id: string, - requestBody?: UpdateUserRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: UpdateUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/user/{id}', @@ -174,10 +176,10 @@ export class UserResource { * @throws ApiError */ public static deleteUserAvatarById({ - id, - }: { - id: string, - }): CancelablePromise { +id, +}: { +id: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user/avatar/{id}', @@ -196,12 +198,12 @@ export class UserResource { * @throws ApiError */ public static postUserAvatarById({ - id, - requestBody, - }: { - id: string, - requestBody?: SetAvatarRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: SetAvatarRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/avatar/{id}', @@ -223,12 +225,12 @@ export class UserResource { * @throws ApiError */ public static postUserChangePasswordById({ - id, - requestBody, - }: { - id: string, - requestBody?: ChangePasswordUserRequestModel, - }): CancelablePromise { +id, +requestBody, +}: { +id: string, +requestBody?: ChangePasswordUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/change-password/{id}', @@ -243,6 +245,20 @@ export class UserResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getUserConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/user/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -263,10 +279,10 @@ export class UserResource { * @throws ApiError */ public static postUserCurrentAvatar({ - requestBody, - }: { - requestBody?: SetAvatarRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: SetAvatarRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/current/avatar', @@ -284,10 +300,10 @@ export class UserResource { * @throws ApiError */ public static postUserCurrentChangePassword({ - requestBody, - }: { - requestBody?: ChangePasswordUserRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: ChangePasswordUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/current/change-password', @@ -299,6 +315,20 @@ export class UserResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getUserCurrentConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/user/current/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -318,10 +348,10 @@ export class UserResource { * @throws ApiError */ public static getUserCurrentPermissions({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current/permissions', @@ -339,10 +369,10 @@ export class UserResource { * @throws ApiError */ public static getUserCurrentPermissionsDocument({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current/permissions/document', @@ -360,10 +390,10 @@ export class UserResource { * @throws ApiError */ public static getUserCurrentPermissionsMedia({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current/permissions/media', @@ -381,10 +411,10 @@ export class UserResource { * @throws ApiError */ public static postUserDisable({ - requestBody, - }: { - requestBody?: DisableUserRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: DisableUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/disable', @@ -403,10 +433,10 @@ export class UserResource { * @throws ApiError */ public static postUserEnable({ - requestBody, - }: { - requestBody?: EnableUserRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: EnableUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/enable', @@ -425,22 +455,22 @@ export class UserResource { * @throws ApiError */ public static getUserFilter({ - skip, - take = 100, - orderBy, - orderDirection, - userGroupIds, - userStates, - filter = '', - }: { - skip?: number, - take?: number, - orderBy?: UserOrderModel, - orderDirection?: DirectionModel, - userGroupIds?: Array, - userStates?: Array, - filter?: string, - }): CancelablePromise { +skip, +take = 100, +orderBy, +orderDirection, +userGroupIds, +userStates, +filter = '', +}: { +skip?: number, +take?: number, +orderBy?: UserOrderModel, +orderDirection?: DirectionModel, +userGroupIds?: Array, +userStates?: Array, +filter?: string, +}): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/filter', @@ -464,10 +494,10 @@ export class UserResource { * @throws ApiError */ public static postUserInvite({ - requestBody, - }: { - requestBody?: InviteUserRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: InviteUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite', @@ -485,10 +515,10 @@ export class UserResource { * @throws ApiError */ public static postUserInviteCreatePassword({ - requestBody, - }: { - requestBody?: CreateInitialPasswordUserRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: CreateInitialPasswordUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite/create-password', @@ -506,10 +536,10 @@ export class UserResource { * @throws ApiError */ public static postUserInviteResend({ - requestBody, - }: { - requestBody?: ResendInviteUserRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: ResendInviteUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite/resend', @@ -527,10 +557,10 @@ export class UserResource { * @throws ApiError */ public static postUserInviteVerify({ - requestBody, - }: { - requestBody?: (VerifyInviteUserRequestModel | CreateInitialPasswordUserRequestModel), - }): CancelablePromise { +requestBody, +}: { +requestBody?: (VerifyInviteUserRequestModel | CreateInitialPasswordUserRequestModel), +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite/verify', @@ -548,10 +578,10 @@ export class UserResource { * @throws ApiError */ public static getUserItem({ - id, - }: { - id?: Array, - }): CancelablePromise> { +id, +}: { +id?: Array, +}): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/item', @@ -569,10 +599,10 @@ export class UserResource { * @throws ApiError */ public static postUserSetUserGroups({ - requestBody, - }: { - requestBody?: UpdateUserGroupsOnUserRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: UpdateUserGroupsOnUserRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/set-user-groups', @@ -590,10 +620,10 @@ export class UserResource { * @throws ApiError */ public static postUserUnlock({ - requestBody, - }: { - requestBody?: UnlockUsersRequestModel, - }): CancelablePromise { +requestBody, +}: { +requestBody?: UnlockUsersRequestModel, +}): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/unlock', From dd2415a1696820e4964d6b0d6dec74d02404a465 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 12:43:37 +0100 Subject: [PATCH 411/786] use routable create modal --- .../property-editor-ui-block-list.element.ts | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index eb572768d7..130ffe4626 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -84,15 +84,9 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement #context = new UmbBlockListManagerContext(this); - #modalContext?: UmbModalManagerContext; - constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this.#modalContext = instance; - }); - // TODO: Prevent initial notification from these observes: this.observe(this.#context.layouts, (layouts) => { this._value = { ...this._value, layout: { [UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS]: layouts } }; @@ -128,25 +122,6 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement }); } - async #openBlockCatalogue(openClipboard: boolean = false) { - //Open modal - const modalContext = this.#modalContext?.open(UMB_BLOCK_CATALOGUE_MODAL, { - data: { blocks: this._blocks ?? [], openClipboard }, - }); - - await modalContext?.onSubmit(); - - /* - if (!data) return; - - const block = this._blocks?.find((x) => x.contentElementTypeKey === data.key); - - if (!block?.contentElementTypeKey) return; - - this.#context.createBlock(block.contentElementTypeKey); - */ - } - render() { return html` ${repeat( this._layouts, From b5686f9ed3e0b1277fd5b127e7ea0efc3baa3006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 12:43:50 +0100 Subject: [PATCH 412/786] clean up imports --- .../property-editor-ui-block-list.element.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 130ffe4626..23c9bd25ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -13,12 +13,7 @@ import { type UmbBlockValueType, } from '@umbraco-cms/backoffice/block'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; -import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UmbModalManagerContext, - UmbModalRouteBuilder, - UmbModalRouteRegistrationController, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalRouteBuilder, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} From e73179a73c465c5f8f60711c4146ea46588299c0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 18 Jan 2024 12:45:12 +0100 Subject: [PATCH 413/786] fix order --- .../scripts/repository/script-detail.server.data-source.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index d8b6cc933b..25073bfd92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,9 +1,9 @@ +import { UmbScriptDetailModel } from '../types.js'; +import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbScriptDetailModel } from '../types.js'; -import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { CreateScriptRequestModel, ScriptResource, From a4f3eca56d16adb8afe9800803a3bd2750884aa0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 18 Jan 2024 12:45:21 +0100 Subject: [PATCH 414/786] fix order --- .../rename/rename-stylesheet.server.data-source.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts index 3af9417de0..c869c823b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts @@ -1,8 +1,8 @@ +import { UmbStylesheetDetailServerDataSource } from '../../repository/stylesheet-detail.server.data-source.js'; import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbStylesheetDetailServerDataSource } from '../../repository/stylesheet-detail.server.data-source.js'; import { RenameStylesheetRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; From 7f99f6296dd4e683aec34f9ead637ee2b03fc05a Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 18 Jan 2024 11:49:45 +0000 Subject: [PATCH 415/786] Reflecting API change from `server/version` to `server/information` --- .../src/mocks/browser-handlers.ts | 2 +- src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts | 2 +- .../src/mocks/handlers/server.handlers.ts | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index de02ff3fef..8a7c8cc318 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -38,7 +38,7 @@ import { handlers as configHandlers } from './handlers/config.handlers.js'; import { handlers as scriptHandlers } from './handlers/scripts.handlers.js'; const handlers = [ - serverHandlers.serverVersionHandler, + serverHandlers.serverInformationHandler, ...auditLogHandlers, ...configHandlers, ...cultureHandlers, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts index de0db89e66..037dfef4b7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts @@ -20,7 +20,7 @@ import { handlers as trackedReferenceHandlers } from './handlers/tracked-referen export const handlers = [ serverHandlers.serverRunningHandler, - serverHandlers.serverVersionHandler, + serverHandlers.serverInformationHandler, manifestsHandlers.manifestEmptyHandler, ...auditLogHandlers, ...installHandlers, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts index b62fb9112a..e650c0b6f2 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts @@ -1,8 +1,9 @@ const { rest } = window.MockServiceWorker; import { RuntimeLevelModel, + RuntimeModeModel, ServerStatusResponseModel, - VersionResponseModel, + ServerInformationResponseModel, } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -36,12 +37,15 @@ export const serverMustUpgradeHandler = rest.get(umbracoPath('/server/status'), ); }); -export const serverVersionHandler = rest.get(umbracoPath('/server/version'), (_req, res, ctx) => { +export const serverInformationHandler = rest.get(umbracoPath('/server/information'), (_req, res, ctx) => { return res( // Respond with a 200 status code ctx.status(200), - ctx.json({ - version: '13.0.0', + ctx.json({ + version: '14.0.0-preview004', + assemblyVersion: '14.0.0-preview004', + baseUtcOffset: '01:00:00', + runtimeMode: RuntimeModeModel.BACKOFFICE_DEVELOPMENT }), ); }); From 8c73a309bf7829dd2ba7819f66edf52b988a789c Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 18 Jan 2024 11:52:52 +0000 Subject: [PATCH 416/786] Updated `DataTypeResource` from POST to PUT --- .../repository/move/data-type-move.server.data-source.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts index 852385bd5f..2d31037380 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts @@ -33,7 +33,7 @@ export class UmbDataTypeMoveServerDataSource implements UmbMoveDataSource { return tryExecuteAndNotify( this.#host, - DataTypeResource.postDataTypeByIdMove({ + DataTypeResource.putDataTypeByIdMove({ id: unique, requestBody: { targetId: targetUnique, From 287df279e7f58b0f7557228b3ac3648be249800a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 18 Jan 2024 12:56:59 +0100 Subject: [PATCH 417/786] generate new server models --- .../external/backend-api/src/services/DataTypeResource.ts | 6 +++--- .../external/backend-api/src/services/DictionaryResource.ts | 4 ++-- .../external/backend-api/src/services/DocumentResource.ts | 6 +++--- .../backend-api/src/services/DocumentTypeResource.ts | 6 +++--- .../external/backend-api/src/services/LanguageResource.ts | 2 +- .../external/backend-api/src/services/LogViewerResource.ts | 2 +- .../src/external/backend-api/src/services/MediaResource.ts | 2 +- .../external/backend-api/src/services/MediaTypeResource.ts | 6 +++--- .../external/backend-api/src/services/PackageResource.ts | 2 +- .../backend-api/src/services/PartialViewResource.ts | 6 +++--- .../backend-api/src/services/RelationTypeResource.ts | 2 +- .../src/external/backend-api/src/services/ScriptResource.ts | 6 +++--- .../external/backend-api/src/services/StylesheetResource.ts | 6 +++--- .../external/backend-api/src/services/TemplateResource.ts | 2 +- .../backend-api/src/services/TemporaryFileResource.ts | 2 +- .../external/backend-api/src/services/UserGroupResource.ts | 2 +- .../src/external/backend-api/src/services/UserResource.ts | 2 +- 17 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts index 7981a21e8f..f7ebd3ff5e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts @@ -34,7 +34,7 @@ export class DataTypeResource { url: '/umbraco/management/api/v1/data-type', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -134,7 +134,7 @@ export class DataTypeResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, @@ -226,7 +226,7 @@ export class DataTypeResource { url: '/umbraco/management/api/v1/data-type/folder', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts index 67a351992d..6e230f7b52 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts @@ -55,7 +55,7 @@ export class DictionaryResource { url: '/umbraco/management/api/v1/dictionary', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -205,7 +205,7 @@ export class DictionaryResource { url: '/umbraco/management/api/v1/dictionary/import', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index 19d3171ea0..91adc48a92 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -41,7 +41,7 @@ export class DocumentResource { url: '/umbraco/management/api/v1/document', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 401: `The resource is protected and requires an authentication token`, 403: `The authenticated user do not have access to this resource`, @@ -119,7 +119,7 @@ export class DocumentResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 401: `The resource is protected and requires an authentication token`, 403: `The authenticated user do not have access to this resource`, @@ -294,7 +294,7 @@ export class DocumentResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 401: `The resource is protected and requires an authentication token`, 403: `The authenticated user do not have access to this resource`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index 26c10721fc..6a71d5699f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -36,7 +36,7 @@ export class DocumentTypeResource { url: '/umbraco/management/api/v1/document-type', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -158,7 +158,7 @@ export class DocumentTypeResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -228,7 +228,7 @@ export class DocumentTypeResource { url: '/umbraco/management/api/v1/document-type/folder', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts index 50b9fcc55d..5125a1feba 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts @@ -52,7 +52,7 @@ export class LanguageResource { url: '/umbraco/management/api/v1/language', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts index 875f6ddd01..136e84a465 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts @@ -175,7 +175,7 @@ export class LogViewerResource { url: '/umbraco/management/api/v1/log-viewer/saved-search', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts index 300cf01e33..28894cfc77 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts @@ -32,7 +32,7 @@ export class MediaResource { url: '/umbraco/management/api/v1/media', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 401: `The resource is protected and requires an authentication token`, 403: `The authenticated user do not have access to this resource`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts index f5c808cc78..ba99baec61 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts @@ -36,7 +36,7 @@ export class MediaTypeResource { url: '/umbraco/management/api/v1/media-type', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -158,7 +158,7 @@ export class MediaTypeResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -228,7 +228,7 @@ export class MediaTypeResource { url: '/umbraco/management/api/v1/media-type/folder', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts index 997effe03a..b952a0f2a7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts @@ -76,7 +76,7 @@ export class PackageResource { url: '/umbraco/management/api/v1/package/created', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts index 749b937918..88accea1fa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PartialViewResource.ts @@ -33,7 +33,7 @@ export class PartialViewResource { url: '/umbraco/management/api/v1/partial-view', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -133,7 +133,7 @@ export class PartialViewResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -156,7 +156,7 @@ export class PartialViewResource { url: '/umbraco/management/api/v1/partial-view/folder', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts index fd4f1cbc2a..ec9f492b34 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts @@ -28,7 +28,7 @@ export class RelationTypeResource { url: '/umbraco/management/api/v1/relation-type', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts index 349c1b2a7b..49829f19db 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ScriptResource.ts @@ -31,7 +31,7 @@ export class ScriptResource { url: '/umbraco/management/api/v1/script', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -131,7 +131,7 @@ export class ScriptResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -154,7 +154,7 @@ export class ScriptResource { url: '/umbraco/management/api/v1/script/folder', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts index 3c6984fc12..e6e680eced 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/StylesheetResource.ts @@ -31,7 +31,7 @@ export class StylesheetResource { url: '/umbraco/management/api/v1/stylesheet', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -131,7 +131,7 @@ export class StylesheetResource { }, body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, @@ -154,7 +154,7 @@ export class StylesheetResource { url: '/umbraco/management/api/v1/stylesheet/folder', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts index 944b8232d4..67b7e7970e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts @@ -32,7 +32,7 @@ export class TemplateResource { url: '/umbraco/management/api/v1/template', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts index f4d68864f0..28ccb40cf5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts @@ -27,7 +27,7 @@ export class TemporaryFileResource { url: '/umbraco/management/api/v1/temporaryfile', formData: formData, mediaType: 'multipart/form-data', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts index 2c578e5872..ce4526d8d1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserGroupResource.ts @@ -51,7 +51,7 @@ export class UserGroupResource { url: '/umbraco/management/api/v1/user-group', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 95cd03041d..09a5475f82 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -503,7 +503,7 @@ export class UserResource { url: '/umbraco/management/api/v1/user/invite', body: requestBody, mediaType: 'application/json', - responseHeader: 'Location', + responseHeader: 'Umb-Generated-Resource', errors: { 401: `The resource is protected and requires an authentication token`, }, From 0e0ec074623e6637a5ad2afe86acda49e2aa5e3b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 18 Jan 2024 12:57:58 +0100 Subject: [PATCH 418/786] add new resource header + make the location header an absolute url --- .../src/mocks/handlers/data-type/detail.handlers.ts | 3 ++- .../src/mocks/handlers/data-type/folder.handlers.ts | 3 ++- .../src/mocks/handlers/document-type/detail.handlers.ts | 3 ++- .../src/mocks/handlers/media-type/detail.handlers.ts | 3 ++- .../src/mocks/handlers/media-type/folder.handlers.ts | 3 ++- .../src/mocks/handlers/partial-view/detail.handlers.ts | 4 +++- .../src/mocks/handlers/partial-view/folder.handlers.ts | 4 +++- .../src/mocks/handlers/partial-view/rename.handlers.ts | 4 +++- .../src/mocks/handlers/script/detail.handlers.ts | 4 +++- .../src/mocks/handlers/script/folder.handlers.ts | 4 +++- .../src/mocks/handlers/script/rename.handlers.ts | 4 +++- .../src/mocks/handlers/stylesheet/detail.handlers.ts | 5 ++++- .../src/mocks/handlers/stylesheet/folder.handlers.ts | 4 +++- .../src/mocks/handlers/stylesheet/rename.handlers.ts | 4 +++- .../src/mocks/handlers/user/invite.handlers.ts | 8 +++++++- 15 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts index 8755fe49fe..733414055a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts @@ -14,7 +14,8 @@ export const detailHandlers = [ return res( ctx.status(201), ctx.set({ - Location: id, + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts index 2326b0a4fd..608446abab 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/folder.handlers.ts @@ -13,7 +13,8 @@ export const folderHandlers = [ return res( ctx.status(201), ctx.set({ - Location: id, + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts index fb9735ac11..ff7566750d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts @@ -14,7 +14,8 @@ export const detailHandlers = [ return res( ctx.status(201), ctx.set({ - Location: id, + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts index a7cfbffe5e..166ea0c421 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts @@ -14,7 +14,8 @@ export const detailHandlers = [ return res( ctx.status(201), ctx.set({ - Location: id, + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts index 3fcf4cd3de..6d666827d2 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/folder.handlers.ts @@ -13,7 +13,8 @@ export const folderHandlers = [ return res( ctx.status(201), ctx.set({ - Location: id, + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts index 6bc74373bd..b5448ef3f5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts @@ -9,10 +9,12 @@ export const detailHandlers = [ const requestBody = (await req.json()) as CreateStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); const path = umbPartialViewMockDB.file.create(requestBody); + const encodedPath = encodeURIComponent(path); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(path), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts index 32c4e106bb..dba907337c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts @@ -9,11 +9,13 @@ export const folderHandlers = [ const requestBody = (await req.json()) as CreatePartialViewFolderRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); const path = umbPartialViewMockDB.folder.create(requestBody); + const encodedPath = encodeURIComponent(path); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(path), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts index 21d7bbc569..4057806d0d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts @@ -13,11 +13,13 @@ export const renameHandlers = [ if (!requestBody) return res(ctx.status(400, 'no body found')); const newPath = umbPartialViewMockDB.file.rename(decodeURIComponent(path), requestBody.name); + const encodedPath = encodeURIComponent(newPath); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(newPath), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts index 4e7718e7ce..2059029bb2 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts @@ -9,10 +9,12 @@ export const detailHandlers = [ const requestBody = (await req.json()) as CreateStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); const path = umbScriptMockDb.file.create(requestBody); + const encodedPath = encodeURIComponent(path); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(path), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts index da2668695e..0a2de048fb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts @@ -9,11 +9,13 @@ export const folderHandlers = [ const requestBody = (await req.json()) as CreateScriptFolderRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); const path = umbScriptMockDb.folder.create(requestBody); + const encodedPath = encodeURIComponent(path); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(path), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts index 01cb62012e..a24018b14c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts @@ -13,11 +13,13 @@ export const renameHandlers = [ if (!requestBody) return res(ctx.status(400, 'no body found')); const newPath = umbScriptMockDb.file.rename(decodeURIComponent(path), requestBody.name); + const encodedPath = encodeURIComponent(newPath); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(newPath), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts index a0d6f3b106..2e0750345a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts @@ -9,10 +9,13 @@ export const detailHandlers = [ const requestBody = (await req.json()) as CreateStylesheetRequestModel; if (!requestBody) return res(ctx.status(400, 'no body found')); const path = umbStylesheetMockDb.file.create(requestBody); + const encodedPath = encodeURIComponent(path); + return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(path), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts index 6a92a201c5..b3b534633a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts @@ -10,11 +10,13 @@ export const folderHandlers = [ if (!requestBody) return res(ctx.status(400, 'no body found')); const path = umbStylesheetMockDb.folder.create(requestBody); + const encodedPath = encodeURIComponent(path); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(path), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts index dce4556047..bbd2b85db5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts @@ -13,11 +13,13 @@ export const renameHandlers = [ if (!requestBody) return res(ctx.status(400, 'no body found')); const newPath = umbStylesheetMockDb.file.rename(decodeURIComponent(path), requestBody.name); + const encodedPath = encodeURIComponent(newPath); return res( ctx.status(201), ctx.set({ - Location: encodeURIComponent(newPath), + Location: req.url.href + '/' + encodedPath, + 'Umb-Generated-Resource': encodedPath, }), ); }), diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts index 42e8ba2b2c..d8b47e2b71 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts @@ -15,7 +15,13 @@ export const handlers = [ if (!userId) return res(ctx.status(400)); - return res(ctx.status(201), ctx.set('Location', userId)); + return res( + ctx.status(201), + ctx.set({ + Location: req.url.href + '/' + userId, + 'Umb-Generated-Resource': userId, + }), + ); }), rest.post(umbracoPath(`${inviteSlug}/resend`), async (req, res, ctx) => { From d7be6f3e4d50553f663a35379cd01c4fac1908e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 13:10:52 +0100 Subject: [PATCH 419/786] implement sorting --- .../property-editor-ui-block-list.element.ts | 25 ++++++++++++++++++- .../packages/core/sorter/sorter.controller.ts | 18 ++++++------- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 23c9bd25ab..b9ef84cf8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -1,5 +1,6 @@ import { UmbBlockListManagerContext } from '../../manager/block-list-manager.context.js'; import '../../components/block-list-block/index.js'; +import { type UmbPropertyEditorUIBlockListBlockElement } from '../../components/block-list-block/index.js'; import { UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS } from './manifests.js'; import { html, customElement, property, state, repeat, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -15,16 +16,37 @@ import { import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; import { UmbModalRouteBuilder, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} export interface UmbBlockListValueModel extends UmbBlockValueType {} +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element, model) => { + return element.getAttribute('data-udi') === model.contentUdi; + }, + querySelectModelToElement: (container, modelEntry) => { + return container.querySelector("umb-property-editor-ui-block-list-block[data-udi='" + modelEntry.contentUdi + "']"); + }, + identifier: 'block-list-editor', + itemSelector: 'umb-property-editor-ui-block-list-block', + //containerSelector: 'EMPTY ON PURPOSE, SO IT BECOMES THE HOST ELEMENT', +}; + /** * @element umb-property-editor-ui-block-list */ @customElement('umb-property-editor-ui-block-list') export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implements UmbPropertyEditorUiElement { + // + #sorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + onChange: ({ model }) => { + this.#context.setLayouts(model); + }, + }); + private _value: UmbBlockListValueModel = { layout: {}, contentData: [], @@ -89,6 +111,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement //console.log('layout changed', this._value); // TODO: idea: consider inserting an await here, so other changes could appear first? Maybe some mechanism to only fire change event onces? this._layouts = layouts; + this.#sorter.setModel(layouts); this.dispatchEvent(new UmbChangeEvent()); }); this.observe(this.#context.contents, (contents) => { @@ -123,7 +146,7 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement (x) => x.contentUdi, (layoutEntry) => html` - + `, )} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 8c4923b9f4..8768697b56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -185,25 +185,25 @@ export class UmbSorterController { - return this; - }; - - // TODO: Clean up?? - this.#observer.disconnect(); // Only look at the shadowRoot if the containerElement is host. const containerElement = this.#useContainerShadowRoot ? this.#containerElement.shadowRoot ?? this.#containerElement : this.#containerElement; + containerElement.addEventListener('dragover', preventDragOver); + + (this.#containerElement as any)['__umbBlockGridSorterController'] = () => { + return this; + }; + + this.#observer.disconnect(); + containerElement.querySelectorAll(this.#config.itemSelector).forEach((child) => { if (child.matches && child.matches(this.#config.itemSelector)) { this.setupItem(child as ElementType); From a780640851a81c7f5d64afee1fe365172e98f59e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 18 Jan 2024 13:15:25 +0100 Subject: [PATCH 420/786] placeholder style --- .../components/block-list-block/block-list-block.element.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 40f95cb891..2e0aa2c7c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -108,6 +108,10 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl top: var(--uui-size-2); right: var(--uui-size-2); } + + :host([drag-placeholder]) { + opacity: 0.2; + } `, ]; } From e37a57e7eaa4aaf9bb98db56b8da86b6802d636a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 18 Jan 2024 13:17:14 +0100 Subject: [PATCH 421/786] align naming --- .../data-type-detail.server.data-source.ts | 56 ++++++----- ...document-type-detail.server.data-source.ts | 96 +++++++++---------- .../media-type-detail.server.data-source.ts | 84 ++++++++-------- .../partial-view-detail.server.data-source.ts | 30 +++--- .../script-detail.server.data-source.ts | 30 +++--- .../stylesheet-detail.server.data-source.ts | 34 +++---- 6 files changed, 162 insertions(+), 168 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts index d6cdf52c56..593cb6b875 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts @@ -79,38 +79,37 @@ export class UmbDataTypeServerDataSource implements UmbDetailDataSource Date: Thu, 18 Jan 2024 13:26:16 +0100 Subject: [PATCH 422/786] use correct file extension --- .../rename/rename-partial-view.server.data-source.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts index 49bd0e33ec..31c440c54f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts @@ -32,7 +32,7 @@ export class UmbRenamePartialViewServerDataSource { if (!path) throw new Error('Path is missing'); const requestBody: RenameStylesheetRequestModel = { - name: appendFileExtensionIfNeeded(name, '.js'), + name: appendFileExtensionIfNeeded(name, '.cshtml'), }; const { data, error } = await tryExecuteAndNotify( From bb32627b30fb9903b78ea4c109937eb89551fa08 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 18 Jan 2024 13:52:07 +0100 Subject: [PATCH 423/786] using repository --- .../DomainsPresentationModelBaseModel.ts | 2 +- .../src/mocks/data/document.data.ts | 21 +++ .../handlers/document/document.handlers.ts | 16 ++ .../culture-and-hostnames-modal.token.ts | 9 +- .../culture-and-hostnames-modal.element.ts | 163 +++++++++++------- .../culture-and-hostnames.action.ts | 5 +- .../repository/document.repository.ts | 24 ++- .../sources/document.server.data.ts | 17 ++ 8 files changed, 187 insertions(+), 70 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts index 193e811957..363b8a2aac 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts @@ -6,7 +6,7 @@ import type { DomainPresentationModel } from './DomainPresentationModel'; export type DomainsPresentationModelBaseModel = { - defaultIsoCode?: string | null; + defaultIsoCode: string; domains: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 2073ead14a..7c3e746123 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -9,6 +9,8 @@ import { DocumentResponseModel, DocumentTreeItemResponseModel, DocumentTypeResponseModel, + DomainsPresentationModelBaseModel, + DomainsResponseModel, PagedDocumentTreeItemResponseModel, PagedDocumentTypeResponseModel, PagedRecycleBinItemResponseModel, @@ -17,6 +19,16 @@ import { } from '@umbraco-cms/backoffice/backend-api'; import { UMB_DOCUMENT_ENTITY_TYPE } from '@umbraco-cms/backoffice/document'; +export const domainData: DomainsResponseModel = { + defaultIsoCode: 'en', + domains: [ + { + isoCode: 'en', + domainName: 'google.com', + }, + ], +}; + export const data: Array = [ { urls: [ @@ -723,6 +735,7 @@ const createDocumentItem = (item: DocumentResponseModel): DocumentItemResponseMo // @ts-ignore class UmbDocumentData extends UmbEntityData { private treeData = treeData; + private domainData = domainData; constructor() { super(data); @@ -874,6 +887,14 @@ class UmbDocumentData extends UmbEntityData { permission.target.entityType === UMB_DOCUMENT_ENTITY_TYPE && permission.target.documentId === id, ); } + + // domains + getDomains(id: string): DomainsResponseModel { + return this.domainData; + } + setDomains(id: string, data: DomainsPresentationModelBaseModel) { + this.domainData = data; + } } const mapToDocumentType = (item: UmbMockDocumentTypeModel): DocumentTypeResponseModel => { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts index 6db43aa751..46d2db6629 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts @@ -69,4 +69,20 @@ export const handlers = [ umbDocumentData.insert(data); return res(ctx.status(200)); }), + + rest.get(umbracoPath('/document/:id/domains'), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return; + const response = umbDocumentData.getDomains(id); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.put(umbracoPath('/document/:id/domains'), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return; + const data = await req.json(); + if (!data) return; + umbDocumentData.setDomains(id, data); + return res(ctx.status(200)); + }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/culture-and-hostnames-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/culture-and-hostnames-modal.token.ts index 9e23f9f0b8..4f52f2abda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/culture-and-hostnames-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/culture-and-hostnames-modal.token.ts @@ -1,3 +1,4 @@ +import { DomainPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbCultureAndHostnamesModalData { @@ -6,12 +7,8 @@ export interface UmbCultureAndHostnamesModalData { } export interface UmbCultureAndHostnamesModalValue { - data: Array; -} - -export interface CultureAndHostnames { - hostname: string; - culture: string; + defaultIsoCode?: string | null; + domains: Array; } export const UMB_CULTURE_AND_HOSTNAMES_MODAL = new UmbModalToken< diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames-modal.element.ts index 102c4a26ea..99c3c4bc3d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -1,90 +1,125 @@ -import { html, customElement, state, css, query, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UmbDocumentRepository } from '../../repository/document.repository.js'; +import { html, customElement, state, css, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { - CultureAndHostnames, UmbCultureAndHostnamesModalData, UmbCultureAndHostnamesModalValue, UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; import { UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import { UmbLanguageRepository } from '@umbraco-cms/backoffice/language'; +import { DomainPresentationModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-culture-and-hostnames-modal') export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< UmbCultureAndHostnamesModalData, UmbCultureAndHostnamesModalValue > { + #documentRepository = new UmbDocumentRepository(this); + #languageRepository = new UmbLanguageRepository(this); + #unique?: string | null; + #defaultIsoCode = ''; + #languageModel: Array = []; @state() - private _cultureOptions: Array
`; } + #renderItem = (item: BlockType) => { + return html` + this.deleteItem(item.contentElementTypeKey)}> + + `; + }; + + #renderButton() { + return html` + this.create()} label="open"> + + Add + + `; + } + + //Group renders (if exists) + #renderGroupInput() { if (!this.groupKey) return; return html` @@ -153,28 +174,8 @@ export class UmbInputBlockTypeElement< ); this.value = this._items.filter((block) => block.groupKey !== this.groupKey); this.dispatchEvent(new UmbChangeEvent()); - console.log(this.value); } - #renderButton() { - return html` - this.create()} label="open"> - - Add - - `; - } - - #renderItem = (item: BlockType) => { - return html` - this.deleteItem(item.contentElementTypeKey)}> - - `; - }; - static styles = [ css` div { From 288d9e0a759763dc65441bea2f3314e677f90edb Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Fri, 19 Jan 2024 10:28:41 +0100 Subject: [PATCH 433/786] fix group type in group config --- ...ty-editor-ui-block-grid-group-configuration.element.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts index b5f896a42d..ea8b94c594 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts @@ -4,20 +4,20 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { BlockGridGroupConfigration } from '@umbraco-cms/backoffice/block'; +import { UmbBlockGridGroupType } from '@umbraco-cms/backoffice/block'; @customElement('umb-property-editor-ui-block-grid-group-configuration') export class UmbPropertyEditorUIBlockGridGroupConfigurationElement extends UmbLitElement implements UmbPropertyEditorUiElement { - private _value: Array = []; + private _value: Array = []; @property({ type: Array }) - public get value(): Array { + public get value(): Array { return this._value; } - public set value(value: Array) { + public set value(value: Array) { this._value = value || []; } From 1c7382b95b57feab60f1a824b89b4976bcdaa250 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Fri, 19 Jan 2024 10:32:41 +0100 Subject: [PATCH 434/786] filter fix --- ...rty-editor-ui-block-grid-type-configuration.element.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 0282db6938..b4ff316d7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -67,10 +67,10 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement const newValues = (e.target as UmbInputBlockTypeElement).value; // remove all values that are in the group, or have a group that does not exist in the block groups. - const values = this.value - .filter((b) => b.groupKey !== groupKey) - .filter((b) => this._blockGroups.find((group) => group.key === b.groupKey)); - + let values = this.value.filter((b) => b.groupKey !== groupKey); + if (!groupKey) { + values = values.filter((b) => this._blockGroups.find((group) => group.key === b.groupKey)); + } this.value = [...values, ...newValues]; this.dispatchEvent(new CustomEvent('property-value-change')); } From 43070aca04066942fed0dda387fa896d4eafd7f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 19 Jan 2024 10:59:54 +0100 Subject: [PATCH 435/786] better data binding + inline mode --- .../observable-api/states/string-state.ts | 8 ++ .../src/mocks/data/data-type.data.ts | 9 +- .../block-list-block.element.ts | 36 +++---- .../ref-list-block/ref-list-block.element.ts | 32 ++++++- .../context/block-list.context-token.ts | 4 + .../block-list/context/block-list.context.ts | 30 ++++++ .../src/packages/block/block-list/index.ts | 1 + .../manager/block-list-manager.context.ts | 9 ++ .../property-editor-ui-block-list.element.ts | 3 + .../src/packages/block/block-type/types.ts | 4 +- .../block/block/context/block.context.ts | 93 ++++++++++++------- 11 files changed, 169 insertions(+), 60 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context.ts diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/string-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/string-state.ts index d893e5b8ce..03c38f7a33 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/string-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/string-state.ts @@ -1,3 +1,4 @@ +import { createObservablePart, type MappingFunction, type MemoizationFunction } from '../index.js'; import { UmbBasicState } from './basic-state.js'; /** @@ -10,4 +11,11 @@ export class UmbStringState extends UmbBasicState { constructor(initialData: T | string) { super(initialData); } + + asObservablePart( + mappingFunction: MappingFunction, + memoizationFunction?: MemoizationFunction, + ) { + return createObservablePart(this._subject, mappingFunction, memoizationFunction); + } } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts index 74e7646d41..e4d46ca5bf 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type.data.ts @@ -500,7 +500,6 @@ export const data: Array = editorSize: 'medium', icon: 'icon-coffee', }, - { label: 'Headline', contentElementTypeKey: 'headline-umbraco-demo-block-id', @@ -528,6 +527,14 @@ export const data: Array = }, ], }, + { + alias: 'useInlineEditingAsDefault', + value: true, + }, + { + alias: 'useLiveEditing', + value: true, + }, ], }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 2e0aa2c7c1..58663957fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -1,9 +1,9 @@ +import { UmbBlockListContext } from '../../context/block-list.context.js'; import { html, css, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { type UmbBlockLayoutBaseModel } from '@umbraco-cms/backoffice/block'; import '../ref-list-block/index.js'; -import { UmbBlockContext } from '@umbraco-cms/backoffice/block'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; import { encodeFilePath } from '@umbraco-cms/backoffice/utils'; @@ -23,7 +23,7 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl } private _layout?: UmbBlockLayoutBaseModel | undefined; - #context = new UmbBlockContext(this); + #context = new UmbBlockListContext(this); @state() _contentUdi?: string; @@ -32,13 +32,16 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl _label = ''; @state() - _workspacePath?: string; + _workspaceEditPath?: string; + + @state() + _inlineEditingMode?: boolean; constructor() { super(); - this.observe(this.#context.workspacePath, (workspacePath) => { - this._workspacePath = workspacePath; + this.observe(this.#context.workspaceEditPath, (workspaceEditPath) => { + this._workspaceEditPath = workspaceEditPath; }); this.observe(this.#context.contentUdi, (contentUdi) => { this._contentUdi = contentUdi; @@ -46,9 +49,9 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl this.observe(this.#context.label, (label) => { this._label = label; }); - /*this.observe(this.#context.layout, (layout) => { - console.log('layout', layout); - });*/ + this.observe(this.#context.inlineEditingMode, (inlineEditingMode) => { + this._inlineEditingMode = inlineEditingMode; + }); } #requestDelete() { @@ -67,22 +70,19 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl } #renderRefBlock() { - return html` `; + return html``; } - /*#renderInlineBlock() { - return html``; - }*/ + #renderInlineBlock() { + return html``; + } #renderBlock() { return html` - ${this.#renderRefBlock()} + ${this._inlineEditingMode ? this.#renderInlineBlock() : this.#renderRefBlock()} - ${this._workspacePath - ? html` + ${this._workspaceEditPath + ? html` ` : ''} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts index 06e0fa5b0b..7dc6d20276 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts @@ -1,15 +1,37 @@ -import { css, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UMB_BLOCK_LIST_CONTEXT } from '../../context/block-list.context-token.js'; +import { css, customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** * @element umb-ref-list-block */ @customElement('umb-ref-list-block') -export class UmbRefListBlockElement extends UUIRefNodeElement { +export class UmbRefListBlockElement extends UmbLitElement { // - connectedCallback(): void { - super.connectedCallback(); - this.setAttribute('border', ''); + @property({ type: String }) + name?: string; + + @state() + _workspaceEditPath?: string; + + constructor() { + super(); + + this.consumeContext(UMB_BLOCK_LIST_CONTEXT, (context) => { + this.observe( + context.workspaceEditPath, + (workspaceEditPath) => { + this._workspaceEditPath = workspaceEditPath; + }, + 'observeWorkspaceEditPath', + ); + }); + } + + render() { + // href=${this._workspaceEditPath ?? '#'} + return html``; } static styles = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context-token.ts new file mode 100644 index 0000000000..f5ac6af1ec --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context-token.ts @@ -0,0 +1,4 @@ +import type { UmbBlockListContext } from './block-list.context.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; + +export const UMB_BLOCK_LIST_CONTEXT = new UmbContextToken('UmbBlockContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context.ts new file mode 100644 index 0000000000..60b2c3b4c3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list.context.ts @@ -0,0 +1,30 @@ +import { UMB_BLOCK_LIST_MANAGER_CONTEXT } from '../manager/block-list-manager.context.js'; +import { UmbBlockContext } from '@umbraco-cms/backoffice/block'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; +export class UmbBlockListContext extends UmbBlockContext< + typeof UMB_BLOCK_LIST_MANAGER_CONTEXT, + typeof UMB_BLOCK_LIST_MANAGER_CONTEXT.TYPE +> { + #inlineEditingMode = new UmbBooleanState(undefined); + inlineEditingMode = this.#inlineEditingMode.asObservable(); + + constructor(host: UmbControllerHost) { + super(host, UMB_BLOCK_LIST_MANAGER_CONTEXT); + } + + _gotManager() { + super._gotManager(); + if (this._manager) { + this.observe( + this._manager.inlineEditingMode, + (inlineEditingMode) => { + this.#inlineEditingMode.setValue(inlineEditingMode); + }, + 'observeInlineEditingMode', + ); + } else { + this.removeControllerByAlias('observeInlineEditingMode'); + } + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/index.ts index 60f06132a7..06bff7c73b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/index.ts @@ -1 +1,2 @@ export * from './workspace/index.js'; +export * from './context/block-list.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts index 8049c9c48a..4f32598ee1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts @@ -1,6 +1,7 @@ import type { UmbBlockListLayoutModel, UmbBlockListTypeModel } from '../types.js'; import { UmbBlockManagerContext } from '@umbraco-cms/backoffice/block'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; /** * A implementation of the Block Manager specifically for the Block List. @@ -8,6 +9,14 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbBlockListManagerContext< BlockLayoutType extends UmbBlockListLayoutModel = UmbBlockListLayoutModel, > extends UmbBlockManagerContext { + // + #inlineEditingMode = new UmbBooleanState(undefined); + inlineEditingMode = this.#inlineEditingMode.asObservable(); + + setInlineEditingMode(inlineEditingMode: boolean | undefined) { + this.#inlineEditingMode.setValue(inlineEditingMode ?? false); + } + createBlock(layoutEntry: Omit, contentElementTypeKey: string) { // Here is room to append some extra layout properties if needed for this type. diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index b9ef84cf8e..c897630ce7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -79,6 +79,9 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement const blocks = config.getValueByAlias>('blocks') ?? []; this.#context.setBlockTypes(blocks); + + const useInlineEditingAsDefault = config.getValueByAlias('useInlineEditingAsDefault'); + this.#context.setInlineEditingMode(useInlineEditingAsDefault); //config.useSingleBlockMode //config.useLiveEditing //config.useInlineEditingAsDefault diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts index 2871fdd639..b949ca70f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/types.ts @@ -4,8 +4,8 @@ export interface UmbBlockTypeBaseModel { contentElementTypeKey: string; settingsElementTypeKey?: string; label?: string; - view?: string; - stylesheet?: string; + view?: string; // TODO: remove/replace with custom element manifest type for block list. + stylesheet?: string; // TODO: remove/replace with custom element manifest type for block list. iconColor?: string; backgroundColor?: string; editorSize?: UUIModalSidebarSize; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index 10fe739b4b..e091007682 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -1,17 +1,22 @@ import type { UmbBlockTypeBaseModel } from '../../block-type/types.js'; import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; -import { UMB_BLOCK_MANAGER_CONTEXT } from '../manager/index.js'; +import { UMB_BLOCK_MANAGER_CONTEXT, type UmbBlockManagerContext } from '../manager/index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; +import { encodeFilePath } from '@umbraco-cms/backoffice/utils'; -export class UmbBlockContext< +export abstract class UmbBlockContext< + BlockManagerContextTokenType extends UmbContextToken, + BlockManagerContextType extends UmbBlockManagerContext, BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel, BlockLayoutType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, -> extends UmbContextBase { +> extends UmbContextBase< + UmbBlockContext +> { // - #manager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; + _manager?: BlockManagerContextType; #blockTypeName = new UmbStringState(undefined); public readonly blockTypeName = this.#blockTypeName.asObservable(); @@ -21,11 +26,17 @@ export class UmbBlockContext< #workspacePath = new UmbStringState(undefined); public readonly workspacePath = this.#workspacePath.asObservable(); + public readonly workspaceEditPath = this.#workspacePath.asObservablePart( + (path) => path + 'edit/' + encodeFilePath(this.getContentUdi() ?? ''), + ); + public readonly workspaceEditSettingsPath = this.#workspacePath.asObservablePart( + (path) => path + 'edit/' + encodeFilePath(this.getContentUdi() ?? '') + '/view/settings', + ); - #blockType = new UmbObjectState(undefined); - public readonly blockType = this.#blockType.asObservable(); - public readonly blockTypeContentElementTypeKey = this.#blockType.asObservablePart((x) => x?.contentElementTypeKey); - public readonly blockTypeSettingsElementTypeKey = this.#blockType.asObservablePart((x) => x?.settingsElementTypeKey); + _blockType = new UmbObjectState(undefined); + public readonly blockType = this._blockType.asObservable(); + public readonly blockTypeContentElementTypeKey = this._blockType.asObservablePart((x) => x?.contentElementTypeKey); + public readonly blockTypeSettingsElementTypeKey = this._blockType.asObservablePart((x) => x?.settingsElementTypeKey); #layout = new UmbObjectState(undefined); public readonly layout = this.#layout.asObservable(); @@ -48,21 +59,13 @@ export class UmbBlockContext< this.#layout.setValue(layout); } - constructor(host: UmbControllerHost) { + constructor(host: UmbControllerHost, blockManagerContextToken: BlockManagerContextTokenType) { super(host, UMB_BLOCK_CONTEXT); // Consume block manager: - this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (manager) => { - this.#manager = manager; - this.observe( - manager.workspacePath, - (workspacePath) => { - this.#workspacePath.setValue(workspacePath); - }, - 'observeWorkspacePath', - ); - this.#observeBlockType(); - this.#observeData(); + this.consumeContext(blockManagerContextToken, (manager) => { + this._manager = manager; + this._gotManager(); }); // Observe UDI: @@ -85,14 +88,34 @@ export class UmbBlockContext< }); } + getContentUdi() { + return this.#layout.value?.contentUdi; + } + + _gotManager() { + if (this._manager) { + this.observe( + this._manager.workspacePath, + (workspacePath) => { + this.#workspacePath.setValue(workspacePath); + }, + 'observeWorkspacePath', + ); + } else { + this.removeControllerByAlias('observeWorkspacePath'); + } + this.#observeBlockType(); + this.#observeData(); + } + #observeData() { - if (!this.#manager) return; + if (!this._manager) return; const contentUdi = this.#layout.value?.contentUdi; if (!contentUdi) return; // observe content: this.observe( - this.#manager.contentOf(contentUdi), + this._manager.contentOf(contentUdi), (content) => { this.#content.setValue(content); }, @@ -103,7 +126,7 @@ export class UmbBlockContext< const settingsUdi = this.#layout.value?.settingsUdi; if (settingsUdi) { this.observe( - this.#manager.contentOf(settingsUdi), + this._manager.contentOf(settingsUdi), (content) => { this.#settings.setValue(content); }, @@ -113,28 +136,28 @@ export class UmbBlockContext< } #observeBlockType() { - if (!this.#manager) return; + if (!this._manager) return; const contentTypeKey = this.#content.value?.contentTypeKey; if (!contentTypeKey) return; // observe blockType: this.observe( - this.#manager.blockTypeOf(contentTypeKey), + this._manager.blockTypeOf(contentTypeKey), (blockType) => { - this.#blockType.setValue(blockType as BlockType); + this._blockType.setValue(blockType as BlockType); }, 'observeBlockType', ); } #observeBlockTypeContentElementName() { - if (!this.#manager) return; - const contentElementTypeKey = this.#blockType.value?.contentElementTypeKey; + if (!this._manager) return; + const contentElementTypeKey = this._blockType.value?.contentElementTypeKey; if (!contentElementTypeKey) return; // observe blockType: this.observe( - this.#manager.contentTypeNameOf(contentElementTypeKey), + this._manager.contentTypeNameOf(contentElementTypeKey), (contentTypeName) => { this.#blockTypeName.setValue(contentTypeName); }, @@ -143,8 +166,8 @@ export class UmbBlockContext< } #observeBlockTypeLabel() { - if (!this.#manager) return; - const blockType = this.#blockType.value; + if (!this._manager) return; + const blockType = this._blockType.value; if (!blockType) return; if (blockType.label) { @@ -168,11 +191,13 @@ export class UmbBlockContext< // Public methods: public delete() { - if (!this.#manager) return; + if (!this._manager) return; const contentUdi = this.#layout.value?.contentUdi; if (!contentUdi) return; - this.#manager.deleteBlock(contentUdi); + this._manager.deleteBlock(contentUdi); } } -export const UMB_BLOCK_CONTEXT = new UmbContextToken('UmbBlockContext'); +export const UMB_BLOCK_CONTEXT = new UmbContextToken< + UmbBlockContext +>('UmbBlockContext'); From 71c49ceb2045c1e9cd85c8789caee6e70c5c0f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 19 Jan 2024 13:33:16 +0100 Subject: [PATCH 436/786] to string for context token --- .../components/inline-list-block/inline-list-block.element.ts | 2 +- .../src/packages/block/block/context/block.context.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts index 542de5c0a7..f2a6c3c566 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts @@ -7,7 +7,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-inline-list-block') export class UmbInlineListBlockElement extends UmbLitElement { render() { - return 'inline mode..'; + return 'INLINE EDITING'; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index e091007682..015a3126f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -60,7 +60,7 @@ export abstract class UmbBlockContext< } constructor(host: UmbControllerHost, blockManagerContextToken: BlockManagerContextTokenType) { - super(host, UMB_BLOCK_CONTEXT); + super(host, UMB_BLOCK_CONTEXT.toString()); // Consume block manager: this.consumeContext(blockManagerContextToken, (manager) => { From 46a9e4465fc9fcc702f0cafc2012a2637fd65edd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 19 Jan 2024 16:12:18 +0100 Subject: [PATCH 437/786] simple inline editing --- .../block-list-block.element.ts | 2 +- .../inline-list-block.element.ts | 50 ++++++- .../src/packages/block/block/index.ts | 1 + .../block-workspace.context-token.ts | 9 ++ .../workspace/block-workspace.context.ts | 9 +- .../workspace/block-workspace.element.ts | 8 +- .../packages/block/block/workspace/index.ts | 2 +- ...k-workspace-view-edit-no-router.element.ts | 139 ++++++++++++++++++ ...-workspace-view-edit-properties.element.ts | 2 +- .../block-workspace-view-edit-tab.element.ts | 2 +- .../edit/block-workspace-view-edit.element.ts | 2 +- 11 files changed, 208 insertions(+), 18 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 58663957fc..1b7b8a3981 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -4,8 +4,8 @@ import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extensi import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { type UmbBlockLayoutBaseModel } from '@umbraco-cms/backoffice/block'; import '../ref-list-block/index.js'; +import '../inline-list-block/index.js'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; -import { encodeFilePath } from '@umbraco-cms/backoffice/utils'; /** * @element umb-property-editor-ui-block-list-block diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts index f2a6c3c566..154673d767 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts @@ -1,13 +1,59 @@ -import { customElement } from '@umbraco-cms/backoffice/external/lit'; +import { UMB_BLOCK_LIST_CONTEXT } from '../../index.js'; +import { UMB_BLOCK_WORKSPACE_ALIAS, UMB_BLOCK_WORKSPACE_CONTEXT } from '../../../block/index.js'; +import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import '../../../block/workspace/views/edit/block-workspace-view-edit-no-router.element.js'; /** * @element umb-inline-list-block */ @customElement('umb-inline-list-block') export class UmbInlineListBlockElement extends UmbLitElement { + #blockContext?: typeof UMB_BLOCK_LIST_CONTEXT.TYPE; + #workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; + #contentUdi?: string; + + constructor() { + super(); + + this.consumeContext(UMB_BLOCK_LIST_CONTEXT, (blockContext) => { + this.#blockContext = blockContext; + this.observe( + this.#blockContext.contentUdi, + (contentUdi) => { + this.#contentUdi = contentUdi; + this.#load(); + }, + 'observeContentUdi', + ); + }); + this.observe(umbExtensionsRegistry.getByTypeAndAlias('workspace', UMB_BLOCK_WORKSPACE_ALIAS), (manifest) => { + if (manifest) { + createExtensionApi(manifest, [this, { manifest: manifest }]).then((context) => { + if (context) { + this.#workspaceContext = context as typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; + this.#load(); + this.#workspaceContext.content.createPropertyDatasetContext(this); + + new UmbExtensionsApiInitializer(this, umbExtensionsRegistry, 'workspaceContext', [ + this, + this.#workspaceContext, + ]); + } + }); + } + }); + } + + #load() { + if (!this.#workspaceContext || !this.#contentUdi) return; + this.#workspaceContext.load(this.#contentUdi); + } + render() { - return 'INLINE EDITING'; + return html``; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts index d6127f3d29..258f163605 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts @@ -1,4 +1,5 @@ export * from './context/index.js'; export * from './manager/index.js'; export * from './modals/index.js'; +export * from './workspace/index.js'; export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context-token.ts new file mode 100644 index 0000000000..696d6c70a4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context-token.ts @@ -0,0 +1,9 @@ +import type { UmbBlockWorkspaceContext } from './block-workspace.context.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; + +export const UMB_BLOCK_WORKSPACE_CONTEXT = new UmbContextToken( + 'UmbWorkspaceContext', + undefined, + (context): context is UmbBlockWorkspaceContext => (context as any).IS_BLOCK_WORKSPACE_CONTEXT, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 1432f8ccda..f9fb54e010 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -1,9 +1,8 @@ import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; import { UmbBlockElementManager } from './block-element-manager.js'; -import { UmbEditableWorkspaceContextBase, UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { UmbBooleanState, UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; @@ -185,9 +184,3 @@ export class UmbBlockWorkspaceContext< } export default UmbBlockWorkspaceContext; - -export const UMB_BLOCK_WORKSPACE_CONTEXT = new UmbContextToken( - 'UmbWorkspaceContext', - undefined, - (context): context is UmbBlockWorkspaceContext => (context as any).IS_BLOCK_WORKSPACE_CONTEXT, -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts index 5576623403..49f51c24e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts @@ -29,6 +29,11 @@ export class UmbBlockWorkspaceElement extends UmbLitElement { createExtensionApi(manifest, [this, { manifest: manifest }]).then((context) => { if (context) { this.#gotWorkspaceContext(context); + // TODO: We need to recreate when ID changed? + new UmbExtensionsApiInitializer(this, umbExtensionsRegistry, 'workspaceContext', [ + this, + this.#workspaceContext, + ]); } }); } @@ -60,9 +65,6 @@ export class UmbBlockWorkspaceElement extends UmbLitElement { }, }, ]; - - // TODO: We need to recreate when ID changed? - new UmbExtensionsApiInitializer(this, umbExtensionsRegistry, 'workspaceContext', [this, this.#workspaceContext]); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts index faae92b1d1..533b373c45 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/index.ts @@ -1,5 +1,5 @@ export * from './block-element-property-dataset.context-token.js'; -export * from './block-workspace.context.js'; +export * from './block-workspace.context-token.js'; export * from './block-workspace.modal-token.js'; export const UMB_BLOCK_WORKSPACE_ALIAS = 'Umb.Workspace.Block'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts new file mode 100644 index 0000000000..7da7a85701 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts @@ -0,0 +1,139 @@ +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js'; +import './block-workspace-view-edit-tab.element.js'; +import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; + +@customElement('umb-block-workspace-view-edit-no-router') +export class UmbBlockWorkspaceViewEditNoRouterElement extends UmbLitElement implements UmbWorkspaceViewElement { + //private _hasRootProperties = false; + private _hasRootGroups = false; + + @state() + _tabs?: Array; + + @state() + private _activeTabId?: string | null | undefined; + + @state() + private _activeTabName?: string | null | undefined; + + private _workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; + + private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); + + constructor() { + super(); + + this._tabsStructureHelper.setIsRoot(true); + this._tabsStructureHelper.setContainerChildType('Tab'); + this.observe(this._tabsStructureHelper.containers, (tabs) => { + this._tabs = tabs; + this._checkDefaultTabName(); + }); + + // _hasRootProperties can be gotten via _tabsStructureHelper.hasProperties. But we do not support root properties currently. + + this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { + this._workspaceContext = workspaceContext; + console.log('workspaceContext.content.structure', workspaceContext.content.structure); + this._tabsStructureHelper.setStructureManager(workspaceContext.content.structure); + this._observeRootGroups(); + }); + } + + private _observeRootGroups() { + if (!this._workspaceContext) return; + + this.observe( + this._workspaceContext.content.structure.hasRootContainers('Group'), + (hasRootGroups) => { + this._hasRootGroups = hasRootGroups; + this._checkDefaultTabName(); + }, + '_observeGroups', + ); + } + + private _checkDefaultTabName() { + if (!this._tabs || !this._workspaceContext) return; + + // Find the default tab to grab: + if (this._activeTabId === undefined) { + if (this._tabs.length > 0) { + this._activeTabName = this._tabs[0].name; + this._activeTabId = this._tabs[0].id; + } + if (this._hasRootGroups) { + this._activeTabName = null; + this._activeTabId = null; + } + } + } + + #setTabName(tabName: string | undefined | null, tabId: string | null | undefined) { + this._activeTabName = tabName; + this._activeTabId = tabId; + } + + render() { + if (!this._tabs) return; + return html` + ${this._tabs.length > 1 || (this._tabs.length === 1 && this._hasRootGroups) + ? html` + ${this._hasRootGroups && this._tabs.length > 0 + ? html` + this.#setTabName(null, null)} + >Content + ` + : ''} + ${repeat( + this._tabs, + (tab) => tab.name, + (tab) => { + return html` this.#setTabName(tab.name, tab.id)} + >${tab.name}`; + }, + )} + ` + : ''} + ${this._activeTabId !== undefined + ? html` + ` + : ''} + `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + height: 100%; + --uui-tab-background: var(--uui-color-surface); + } + `, + ]; +} + +export default UmbBlockWorkspaceViewEditNoRouterElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-block-workspace-view-edit-no-router': UmbBlockWorkspaceViewEditNoRouterElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index cf683c464a..4233452bed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -1,4 +1,4 @@ -import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts index 315bdc107a..06c7e3818c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts @@ -1,4 +1,4 @@ -import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts index ed9edcc0c5..a43bb0417d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts @@ -1,4 +1,4 @@ -import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context.js'; +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js'; import type { UmbBlockWorkspaceViewEditTabElement } from './block-workspace-view-edit-tab.element.js'; import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; From d0a659d539256ff473a32b2fd887672cd050a011 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 19 Jan 2024 16:23:58 +0100 Subject: [PATCH 438/786] split signOut and clear token into two methods --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 6 +++--- .../src/shared/auth/auth-flow.ts | 11 +++++++++++ .../src/shared/auth/auth.context.interface.ts | 5 +++++ .../src/shared/auth/auth.context.ts | 8 ++++++++ 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts index 745e057c76..c1f4e35d4f 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts @@ -77,8 +77,8 @@ export class UmbAppElement extends UmbLitElement { async #setup() { if (this.serverUrl === undefined) throw new Error('No serverUrl provided'); - /* All requests to the server requires the base URL to be set. - We make sure it happens before we get the server status. + /* All requests to the server requires the base URL to be set. + We make sure it happens before we get the server status. TODO: find the right place to set this */ OpenAPI.BASE = this.serverUrl; @@ -93,7 +93,7 @@ export class UmbAppElement extends UmbLitElement { // If the runtime level is "install" we should clear any cached tokens // else we should try and set the auth status if (this.#serverConnection.getStatus() === RuntimeLevelModel.INSTALL) { - await this.#authContext.signOut(); + await this.#authContext.clearTokenStorage(); } else { await this.#setAuthStatus(); } diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts index 8f9ec99743..0cf116b1cb 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts @@ -223,6 +223,17 @@ export class UmbAuthFlow { return !!this.#accessTokenResponse && this.#accessTokenResponse.isValid(); } + /** + * Forget all cached token state + */ + async clearTokenStorage() { + await this.#storageBackend.removeItem(TOKEN_RESPONSE_NAME); + + // clear the internal state + this.#accessTokenResponse = undefined; + this.#refreshToken = undefined; + } + /** * This method will sign the user out of the application. */ diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts index 33b70eceac..3ec2beb473 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts @@ -34,6 +34,11 @@ export interface IUmbAuthContext { */ getLatestToken(): Promise; + /** + * Clears the token storage. + */ + clearTokenStorage(): Promise; + /** * Signs the user out by removing any tokens from the browser. */ diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts index d9e45daca3..af3768cad2 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts @@ -65,6 +65,14 @@ export class UmbAuthContext extends UmbBaseController implements IUmbAuthContext return this.#authFlow.performWithFreshTokens(); } + /** + * Clears the token storage. + * @memberof UmbAuthContext + */ + clearTokenStorage() { + return this.#authFlow.clearTokenStorage(); + } + /** * Signs the user out by removing any tokens from the browser. * @return {*} {Promise} From e57ba681c0e9568be3818d86895a822b94a0bb3e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 19 Jan 2024 16:24:14 +0100 Subject: [PATCH 439/786] user modal should not redirect after signout --- .../modals/current-user/current-user-modal.element.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts index 6e24fdd099..dd843ca087 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts @@ -54,10 +54,7 @@ export class UmbCurrentUserModalElement extends UmbLitElement { private async _logout() { if (!this.#authContext) return; - await this.#authContext.signOut(); - let newUrl = this.#appContext ? `${this.#appContext.getBackofficePath()}/login` : '/'; - newUrl = newUrl.replace(/\/\//g, '/'); - location.href = newUrl; + this.#authContext.signOut(); } render() { From d72e2a7506c9649da44ff2e4ab7a3e53de07dcd1 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 19 Jan 2024 16:24:57 +0100 Subject: [PATCH 440/786] signout on server by first revoking all known tokens, then clear local cache of tokens, and finally redirect user to signout endpoint to clear the cookies on the server --- .../src/shared/auth/auth-flow.ts | 48 +++++++++++-------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts index 0cf116b1cb..b3e80000e2 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts @@ -238,34 +238,42 @@ export class UmbAuthFlow { * This method will sign the user out of the application. */ async signOut() { - // forget all cached token state - await this.#storageBackend.removeItem(TOKEN_RESPONSE_NAME); + const signOutPromises: Promise[] = []; + // revoke the access token if it exists if (this.#accessTokenResponse) { - // TODO: Enable this when the server supports it - // const tokenRevokeRequest = new RevokeTokenRequest({ - // token: this.#accessTokenResponse.accessToken, - // client_id: this.#clientId, - // token_type_hint: 'access_token', - // }); + const tokenRevokeRequest = new RevokeTokenRequest({ + token: this.#accessTokenResponse.accessToken, + client_id: this.#clientId, + token_type_hint: 'access_token', + }); - // await this.#tokenHandler.performRevokeTokenRequest(this.#configuration, tokenRevokeRequest); - - this.#accessTokenResponse = undefined; + signOutPromises.push(this.#tokenHandler.performRevokeTokenRequest(this.#configuration, tokenRevokeRequest)); } + // revoke the refresh token if it exists if (this.#refreshToken) { - // TODO: Enable this when the server supports it - // const tokenRevokeRequest = new RevokeTokenRequest({ - // token: this.#refreshToken, - // client_id: this.#clientId, - // token_type_hint: 'refresh_token', - // }); + const tokenRevokeRequest = new RevokeTokenRequest({ + token: this.#refreshToken, + client_id: this.#clientId, + token_type_hint: 'refresh_token', + }); - // await this.#tokenHandler.performRevokeTokenRequest(this.#configuration, tokenRevokeRequest); - - this.#refreshToken = undefined; + signOutPromises.push(this.#tokenHandler.performRevokeTokenRequest(this.#configuration, tokenRevokeRequest)); } + + // clear the internal token state + signOutPromises.push(this.clearTokenStorage()); + + // wait for all promises to settle before continuing + await Promise.allSettled(signOutPromises); + + // clear the session on the server as well + // this will redirect the user to the end session endpoint of the server + // which will redirect the user back to the client + // and the client will then try and log in again (if the user is not logged in) + // which will redirect the user to the login page + location.href = `${this.#configuration.endSessionEndpoint}?post_logout_redirect_uri=${this.#redirectUri}`; } /** From 5be473cb32f04fff93c81bcec19362465c094eae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 19 Jan 2024 19:20:09 +0100 Subject: [PATCH 441/786] ownerTabId --- .../views/edit/block-workspace-view-edit-no-router.element.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts index 7da7a85701..59346e2b4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts @@ -110,7 +110,9 @@ export class UmbBlockWorkspaceViewEditNoRouterElement extends UmbLitElement impl : ''} ${this._activeTabId !== undefined ? html` ` From 90ae3682dffb1f2571fc4ed4a34ab94dbe401728 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Sun, 21 Jan 2024 15:01:53 +0100 Subject: [PATCH 442/786] types --- .../src/packages/block/block-grid/types.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts index b6c2e2a02e..0b2771f457 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts @@ -1,6 +1,6 @@ import type { UmbBlockTypeBase, UmbBlockTypeWithGroupKey } from '../block-type/index.js'; -export interface UmbBlockGridType extends UmbBlockTypeBase { +export interface UmbBlockGridType extends UmbBlockTypeWithGroupKey { columnSpanOptions: Array; allowAtRoot: boolean; allowInAreas: boolean; @@ -9,7 +9,6 @@ export interface UmbBlockGridType extends UmbBlockTypeBase { thumbnail?: string; areaGridColumns?: number; areas: Array; - groupKey: null | string; } export interface UmbBlockGridGroupType { From 038f4fc1c26766559e8483243a75d70b09c09cf8 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Sun, 21 Jan 2024 15:29:32 +0100 Subject: [PATCH 443/786] move grouping to property editor rather than component --- ...i-block-grid-type-configuration.element.ts | 46 +++++++++++++--- .../src/packages/block/block-grid/types.ts | 2 +- .../input-block-type.element.ts | 53 ++----------------- 3 files changed, 45 insertions(+), 56 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index b4ff316d7a..e74c52cce4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,12 +1,13 @@ import type { UmbBlockTypeWithGroupKey, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, property, state, css, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state, css, repeat, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UmbBlockGridGroupType, UmbBlockGridGroupTypeConfiguration } from '@umbraco-cms/backoffice/block'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; /** * @element umb-property-editor-ui-block-grid-type-configuration @@ -80,15 +81,46 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this._mappedValuesAndGroups, (group) => group.key, (group) => - html` this.#onChange(e, group.key)}>`, + html`${group.key ? this.#renderGroupInput(group.key, group.name) : nothing} + this.#onChange(e, group.key)}>`, )}`; } + #changeGroupName(e: UUIInputEvent, groupKey: string) { + const groupName = e.target.value as string; + this.#datasetContext?.setPropertyValue( + 'blockGroups', + this._blockGroups.map((group) => ({ ...group, groupName: groupKey === group.key ? groupName : group.name })), + ); + } + + #deleteGroup(groupKey: string) { + this.#datasetContext?.setPropertyValue( + 'blockGroups', + this._blockGroups.filter((group) => group.key !== groupKey), + ); + + // Should blocks that belonged to the removed group be deleted as well? + this.value = this.value.filter((block) => block.groupKey !== groupKey); + } + + #renderGroupInput(groupKey: string, groupName?: string) { + return html` this.#changeGroupName(e, groupKey)}> + this.#deleteGroup(groupKey)}> + + + `; + } + static styles = [ UmbTextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts index 0b2771f457..41778daab8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts @@ -1,4 +1,4 @@ -import type { UmbBlockTypeBase, UmbBlockTypeWithGroupKey } from '../block-type/index.js'; +import type { UmbBlockTypeWithGroupKey } from '../block-type/index.js'; export interface UmbBlockGridType extends UmbBlockTypeWithGroupKey { columnSpanOptions: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 8337b90f0f..ac790ef928 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -1,4 +1,4 @@ -import { UmbBlockTypeBase, UmbBlockTypeGroup, UmbBlockTypeWithGroupKey } from '../../types.js'; +import { UmbBlockTypeBase, UmbBlockTypeWithGroupKey } from '../../types.js'; import { UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, @@ -9,7 +9,6 @@ import '../block-type-card/index.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UmbBlockGridType } from '@umbraco-cms/backoffice/block'; @@ -25,12 +24,6 @@ export class UmbInputBlockTypeElement< this._items = items ?? []; } - @property() - groupKey?: string; - - @property() - groupName?: string; - @property({ type: String, attribute: 'entity-type' }) public get entityType() { return this.#entityType; @@ -67,16 +60,12 @@ export class UmbInputBlockTypeElement< >; #datasetContext?: UmbPropertyDatasetContext; - #blockGroups: Array = []; - #filter?: any; + #filter: Array = []; constructor() { super(); this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, async (instance) => { this.#datasetContext = instance; - this.observe(await this.#datasetContext?.propertyValueByAlias('blockGroups'), (value) => { - this.#blockGroups = value as Array; - }); this.observe(await this.#datasetContext?.propertyValueByAlias('blocks'), (value) => { this.#filter = value as Array; }); @@ -120,10 +109,9 @@ export class UmbInputBlockTypeElement< } render() { - return html`${this.#renderGroupInput()} -
- ${repeat(this.value, (block) => block.contentElementTypeKey, this.#renderItem)} ${this.#renderButton()} -
`; + return html`
+ ${repeat(this.value, (block) => block.contentElementTypeKey, this.#renderItem)} ${this.#renderButton()} +
`; } #renderItem = (item: BlockType) => { @@ -145,37 +133,6 @@ export class UmbInputBlockTypeElement< `; } - //Group renders (if exists) - - #renderGroupInput() { - if (!this.groupKey) return; - return html` - - - - `; - } - - #changeGroupName(e: UUIInputEvent) { - if (!this.groupKey) return; - - const groupName = e.target.value as string; - this.#datasetContext?.setPropertyValue( - 'blockGroups', - this.#blockGroups.map((group) => ({ ...group, groupName: this.groupKey === group.key ? groupName : group.name })), - ); - } - - #deleteGroup() { - if (!this.groupKey) return; - this.#datasetContext?.setPropertyValue( - 'blockGroups', - this.#blockGroups.filter((group) => group.key !== this.groupKey), - ); - this.value = this._items.filter((block) => block.groupKey !== this.groupKey); - this.dispatchEvent(new UmbChangeEvent()); - } - static styles = [ css` div { From 5411d0e872d4eed944eeea74dda161d139e4f21d Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Sun, 21 Jan 2024 15:38:27 +0100 Subject: [PATCH 444/786] remove events --- ...i-block-grid-type-configuration.element.ts | 25 +++---------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index e74c52cce4..d7aed09461 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -52,10 +52,8 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement } #mapValuesToBlockGroups() { - const valuesWithNoGroup = this.value.filter( - // Look for values without a group, or with a group that is non existent. - (value) => !value.groupKey || this._blockGroups.find((group) => group.key !== value.groupKey), - ); + // What if a block is in a group that does not exist in the block groups? Should it be removed? (Right now they will never be rendered) + const valuesWithNoGroup = this.value.filter((value) => !value.groupKey); const valuesWithGroup = this._blockGroups.map((group) => { return { name: group.name, key: group.key, blocks: this.value.filter((value) => value.groupKey === group.key) }; @@ -64,30 +62,13 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this._mappedValuesAndGroups = [{ blocks: valuesWithNoGroup }, ...valuesWithGroup]; } - #onChange(e: Event, groupKey?: string) { - const newValues = (e.target as UmbInputBlockTypeElement).value; - - // remove all values that are in the group, or have a group that does not exist in the block groups. - let values = this.value.filter((b) => b.groupKey !== groupKey); - if (!groupKey) { - values = values.filter((b) => this._blockGroups.find((group) => group.key === b.groupKey)); - } - this.value = [...values, ...newValues]; - this.dispatchEvent(new CustomEvent('property-value-change')); - } - render() { return html`${repeat( this._mappedValuesAndGroups, (group) => group.key, (group) => html`${group.key ? this.#renderGroupInput(group.key, group.name) : nothing} - this.#onChange(e, group.key)}>`, + `, )}`; } From fb12ade9ece49c87901dd356714fe3dec6dff179 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 21 Jan 2024 21:54:14 +0100 Subject: [PATCH 445/786] wip use managers in document mock data --- .../src/mocks/data/audit-log.data.ts | 2 +- .../document/document-publishing.manager.ts | 43 +++ .../data/{ => document}/document.data.ts | 333 +----------------- .../src/mocks/data/document/document.db.ts | 127 +++++++ .../mocks/data/entity/entity-recycle-bin.ts | 26 ++ .../document/allowed-types.handlers.ts | 14 + .../handlers/document/detail.handlers.ts | 45 +++ .../handlers/document/document.handlers.ts | 72 ---- .../src/mocks/handlers/document/index.ts | 16 +- .../mocks/handlers/document/item.handlers.ts | 6 +- .../handlers/document/permission.handlers.ts | 6 +- .../handlers/document/publishing.handlers.ts | 25 ++ .../handlers/document/recycle-bin.handlers.ts | 23 +- .../mocks/handlers/document/tree.handlers.ts | 13 +- 14 files changed, 329 insertions(+), 422 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts rename src/Umbraco.Web.UI.Client/src/mocks/data/{ => document}/document.data.ts (90%) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts index 6bd136e8a3..91551029ed 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts @@ -1,5 +1,5 @@ import { data as userData } from './user/user.data.js'; -import { data as documentData } from './document.data.js'; +import { data as documentData } from './document/document.data.js'; import { AuditLogResponseModel, AuditLogWithUsernameResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts new file mode 100644 index 0000000000..a3eeefe33d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts @@ -0,0 +1,43 @@ +import { UmbMockDocumentModel } from './document.data.js'; +import { type UmbDocumentMockDB } from './document.db.js'; +import { + ContentStateModel, + PublishDocumentRequestModel, + UnpublishDocumentRequestModel, +} from '@umbraco-cms/backoffice/backend-api'; + +export class UmbMockDocumentPublishingManager { + #documentDb: UmbDocumentMockDB; + + constructor(documentDb: UmbDocumentMockDB) { + this.#documentDb = documentDb; + } + + publish(id: string, data: PublishDocumentRequestModel) { + const document: UmbMockDocumentModel = this.#documentDb.detail.read(id); + + document?.variants?.forEach((variant) => { + const hasCulture = variant.culture && data.cultures?.includes(variant.culture); + + if (hasCulture) { + variant.state = ContentStateModel.PUBLISHED; + } + }); + + this.#documentDb.detail.update(id, document); + } + + unpublish(id: string, data: UnpublishDocumentRequestModel) { + const document: UmbMockDocumentModel = this.#documentDb.detail.read(id); + + document?.variants?.forEach((variant) => { + const hasCulture = variant.culture && data.cultures?.includes(variant.culture); + + if (hasCulture) { + variant.state = ContentStateModel.DRAFT; + } + }); + + this.#documentDb.detail.update(id, document); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts similarity index 90% rename from src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts index 3fde647e18..e65e1dde0a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts @@ -1,23 +1,17 @@ -import { umbDocumentTypeMockDb } from './document-type/document-type.db.js'; -import { umbUserPermissionData } from './user-permission.data.js'; -import { UmbEntityData } from './entity.data.js'; -import { createDocumentTreeItem } from './utils.js'; -import { UmbMockDocumentTypeModel } from './document-type/document-type.data.js'; import { ContentStateModel, DocumentItemResponseModel, DocumentResponseModel, DocumentTreeItemResponseModel, - DocumentTypeResponseModel, - PagedDocumentTreeItemResponseModel, - PagedDocumentTypeResponseModel, - PagedRecycleBinItemResponseModel, - PublishDocumentRequestModel, - PublishedStateModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UMB_DOCUMENT_ENTITY_TYPE } from '@umbraco-cms/backoffice/document'; -export const data: Array = [ +export type UmbMockDataTypeModelHack = DocumentResponseModel & + DocumentTreeItemResponseModel & + DocumentItemResponseModel; + +export interface UmbMockDocumentModel extends Omit {} + +export const data: Array = [ { urls: [ { @@ -28,6 +22,7 @@ export const data: Array = [ isTrashed: false, templateId: null, id: 'all-property-editors-document-id', + parentId: null, contentTypeId: 'all-property-editors-document-type-id', values: [ { @@ -378,6 +373,7 @@ export const data: Array = [ ], templateId: null, id: 'c05da24d-7740-447b-9cdc-bd8ce2172e38', + parentId: null, contentTypeId: '29643452-cff9-47f2-98cd-7de4b6807681', isTrashed: false, values: [ @@ -494,6 +490,7 @@ export const data: Array = [ urls: [], templateId: null, id: 'fd56a0b5-01a0-4da2-b428-52773bfa9cc4', + parentId: null, contentTypeId: '29643452-cff9-47f2-98cd-7de4b6807681', isTrashed: false, values: [ @@ -567,6 +564,7 @@ export const data: Array = [ ], templateId: null, id: 'simple-document-id', + parentId: null, contentTypeId: 'simple-document-type-id', isTrashed: false, variants: [ @@ -590,312 +588,3 @@ export const data: Array = [ ], }, ]; - -export const treeData: Array = [ - { - isProtected: false, - isPublished: true, - isEdited: false, - noAccess: false, - isTrashed: false, - id: 'all-property-editors-document-id', - contentTypeId: 'all-property-editors-document-type-id', - isContainer: false, - parentId: null, - name: 'All property editors', - type: 'document', - icon: 'document', - hasChildren: false, - variants: [ - { - name: 'All property editors', - culture: 'en-us', - state: PublishedStateModel.PUBLISHED, - }, - { - name: 'All property editors', - culture: 'da-dk', - state: PublishedStateModel.PUBLISHED, - }, - ], - }, - { - isProtected: false, - isPublished: true, - isEdited: false, - noAccess: false, - isTrashed: false, - id: 'c05da24d-7740-447b-9cdc-bd8ce2172e38', - contentTypeId: '29643452-cff9-47f2-98cd-7de4b6807681', - isContainer: false, - parentId: null, - name: 'Article in english', - type: 'document', - icon: 'document', - hasChildren: true, - variants: [ - { - state: PublishedStateModel.PUBLISHED, - culture: 'en-us', - name: 'Article in english', - }, - { - state: PublishedStateModel.PUBLISHED, - culture: 'da-dk', - name: 'Artikel på Dansk', - }, - { - state: PublishedStateModel.PUBLISHED, - culture: 'no-no', - name: 'Artikel på Norsk', - }, - { - state: PublishedStateModel.PUBLISHED, - culture: 'es-es', - name: 'Articulo en ingles', - }, - { - state: PublishedStateModel.PUBLISHED, - culture: 'pl-pl', - name: 'Artykuł w języku polskim', - }, - ], - }, - { - isProtected: false, - isPublished: false, - isEdited: false, - noAccess: false, - isTrashed: false, - id: 'fd56a0b5-01a0-4da2-b428-52773bfa9cc4', - contentTypeId: '29643452-cff9-47f2-98cd-7de4b6807681', - isContainer: false, - parentId: 'c05da24d-7740-447b-9cdc-bd8ce2172e38', - name: 'Blog post B', - type: 'document', - icon: 'document', - hasChildren: false, - variants: [ - { - state: PublishedStateModel.UNPUBLISHED, - culture: 'en-us', - name: 'Blog post B', - }, - ], - }, - { - name: 'Simple', - type: 'document', - icon: 'document', - hasChildren: false, - id: 'simple-document-id', - contentTypeId: 'simple-document-type-id', - isContainer: false, - parentId: null, - noAccess: false, - isProtected: false, - isPublished: false, - isEdited: false, - isTrashed: false, - variants: [ - { - state: PublishedStateModel.UNPUBLISHED, - culture: 'en-us', - name: 'Simple Document', - }, - ], - }, -]; - -const createDocumentItem = (item: DocumentResponseModel): DocumentItemResponseModel => { - return { - id: item.id, - name: item.variants?.[0].name, // Hack: TODO: we need to get all variants as part of the document - contentTypeId: item.contentTypeId, - isTrashed: item.isTrashed, - }; -}; - -// TODO: look into making a combined document model so we don't need to maintain two+ data sets. -// Temp mocked database -// TODO: all properties are optional in the server schema. I don't think this is correct. -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore -class UmbDocumentData extends UmbEntityData { - private treeData = treeData; - - constructor() { - super(data); - } - - // TODO: Can we do this smarter so we don't need to make this for each mock data: - insert(item: DocumentResponseModel) { - super.insert(item); - this.treeData.push(createDocumentTreeItem(item)); - } - - update(id: string, item: DocumentResponseModel) { - super.save(id, item); - this.treeData = this.treeData.map((x) => { - if (x.id === id) { - return createDocumentTreeItem(item); - } else { - return x; - } - }); - } - - publish(id: string, data: PublishDocumentRequestModel) { - // Update detail data: - const foundIndex = this.data.findIndex((item) => item.id === id); - if (foundIndex !== -1) { - // update - this.data[foundIndex].variants?.forEach((variant) => { - if (data.cultures?.includes(variant.culture ?? '')) { - variant.state = ContentStateModel.PUBLISHED; - } - }); - } - - // TODO: Tree data is not aware about variants and status of variants: so this is not good enough: - this.treeData = this.treeData.map((x) => { - if (x.id && x.id === id) { - return { ...x, isPublished: true }; - } else { - return x; - } - }); - return true; - } - - unpublish(id: string, data: PublishDocumentRequestModel) { - // Update detail data: - const foundIndex = this.data.findIndex((item) => item.id === id); - if (foundIndex !== -1) { - // update - this.data[foundIndex].variants?.forEach((variant) => { - if (data.cultures?.includes(variant.culture ?? '')) { - variant.state = ContentStateModel.DRAFT; - } - }); - } - - // TODO: Tree data is not aware about variants and status of variants: so this is not good enough: - this.treeData = this.treeData.map((x) => { - if (x.id && x.id === id) { - return { ...x, isPublished: false }; - } else { - return x; - } - }); - - return true; - } - - trash(ids: string[]): DocumentResponseModel[] { - const result = super.trash(ids); - this.treeData = this.treeData.map((x) => { - if (x.id && ids.includes(x.id)) { - return { ...x, isTrashed: true }; - } else { - return x; - } - }); - return result; - } - - getTreeRoot(): PagedDocumentTreeItemResponseModel { - const items = this.treeData.filter((item) => item.parentId === null && item.isTrashed === false); - const treeItems = items.map((item) => item); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItemChildrenOf(id: string): PagedDocumentTreeItemResponseModel { - const items = this.treeData.filter((item) => item.parentId === id && item.isTrashed === false); - const treeItems = items.map((item) => item); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItem(ids: Array): Array { - const items = this.treeData.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => item); - } - - getItems(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); - return items.map((item) => createDocumentItem(item)); - } - - getDocumentByIdAllowedDocumentTypes(id: string): PagedDocumentTypeResponseModel { - const item = this.getById(id); - if (item?.contentTypeId) { - const docType = umbDocumentTypeMockDb.read(item.contentTypeId); - - if (docType) { - const allowedTypes = docType?.allowedContentTypes ?? []; - const mockedTypes = allowedTypes - .map((allowedType) => umbDocumentTypeMockDb.read(allowedType.id)) - .filter((item) => item !== undefined) as Array; - const items = mockedTypes.map((item) => mapToDocumentType(item)); - const total = items.length; - return { items, total }; - } - } - return { items: [], total: 0 }; - } - - getAllowedDocumentTypesAtRoot(): PagedDocumentTypeResponseModel { - const items = umbDocumentTypeMockDb.getData(); //.filter((docType) => docType.allowedAsRoot); - return { items, total: items.length }; - } - - getRecycleBinRoot(): PagedRecycleBinItemResponseModel { - const items = this.treeData.filter((item) => item.parentId === null && item.isTrashed === true); - const treeItems = items.map((item) => item); - const total = items.length; - return { items: treeItems, total }; - } - - getRecycleBinChildrenOf(parentId: string): PagedRecycleBinItemResponseModel { - const items = this.treeData.filter((item) => item.parentId === parentId && item.isTrashed === true); - const treeItems = items.map((item) => item); - const total = items.length; - return { items: treeItems, total }; - } - - // permissions - - getUserPermissionsForDocument(id: string): Array { - return umbUserPermissionData - .getAll() - .items.filter( - (permission: any) => - permission.target.entityType === UMB_DOCUMENT_ENTITY_TYPE && permission.target.documentId === id, - ); - } -} - -const mapToDocumentType = (item: UmbMockDocumentTypeModel): DocumentTypeResponseModel => { - return { - alias: item.alias, - name: item.name, - description: item.description, - icon: item.icon, - allowedAsRoot: item.allowedAsRoot, - variesByCulture: item.variesByCulture, - variesBySegment: item.variesBySegment, - isElement: item.isElement, - properties: item.properties, - containers: item.containers, - allowedContentTypes: item.allowedContentTypes, - compositions: item.compositions, - id: item.id, - allowedTemplateIds: item.allowedTemplateIds, - defaultTemplateId: item.defaultTemplateId, - cleanup: item.cleanup, - }; -}; - -export const umbDocumentData = new UmbDocumentData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts new file mode 100644 index 0000000000..774700770a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts @@ -0,0 +1,127 @@ +import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; +import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; +import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; +import { umbDocumentTypeMockDb } from '../document-type/document-type.db.js'; +import { UmbEntityMockDbBase } from '../entity/entity-base.js'; +import { UmbEntityRecycleBin } from '../entity/entity-recycle-bin.js'; +import { UmbMockDocumentModel, data } from './document.data.js'; +import { UmbMockDocumentPublishingManager } from './document-publishing.manager.js'; +import { + CreateDocumentRequestModel, + DocumentItemResponseModel, + DocumentResponseModel, + DocumentTreeItemResponseModel, + PagedDocumentTypeResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; +import { UmbId } from '@umbraco-cms/backoffice/id'; + +export class UmbDocumentMockDB extends UmbEntityMockDbBase { + tree = new UmbMockEntityTreeManager(this, treeItemMapper); + item = new UmbMockEntityItemManager(this, itemMapper); + detail = new UmbMockEntityDetailManager(this, createMockDocumentMapper, detailResponseMapper); + recycleBin = new UmbEntityRecycleBin(this.data, treeItemMapper); + publishing = new UmbMockDocumentPublishingManager(this); + + constructor(data: Array) { + super(data); + } + + getAllowedDocumentTypes(id: string): PagedDocumentTypeResponseModel { + debugger; + const { contentTypeId } = this.detail.read(id); + + if (contentTypeId) { + const docType = umbDocumentTypeMockDb.detail.read(contentTypeId); + + if (docType) { + const allowedTypes = docType.allowedContentTypes; + const models = allowedTypes + .map((allowedType: any) => umbDocumentTypeMockDb.detail.read(allowedType.id)) + .filter((item: any) => item !== undefined); + const total = models.length; + return { items: models, total }; + } + } + + return { items: [], total: 0 }; + } + + // permissions + /* + getUserPermissionsForDocument(id: string): Array { + return umbUserPermissionData + .getAll() + .items.filter( + (permission: any) => + permission.target.entityType === UMB_DOCUMENT_ENTITY_TYPE && permission.target.documentId === id, + ); + } + */ +} + +const treeItemMapper = (model: UmbMockDocumentModel): Omit => { + const documentType = umbDocumentTypeMockDb.read(model.contentTypeId); + if (!documentType) throw new Error(`Document type with id ${model.contentTypeId} not found`); + + return { + id: model.id, + parentId: model.parentId, + contentTypeId: model.contentTypeId, + variants: model.variants, + icon: documentType.icon, + isContainer: documentType.isContainer, + name: model.variants?.[0]?.name, + hasChildren: model.hasChildren, + noAccess: model.noAccess, + isProtected: model.isProtected, + isPublished: model.isProtected, + isEdited: model.isEdited, + isTrashed: model.isTrashed, + }; +}; + +const createMockDocumentMapper = (request: CreateDocumentRequestModel): UmbMockDocumentModel => { + const documentType = umbDocumentTypeMockDb.read(request.contentTypeId); + if (!documentType) throw new Error(`Document type with id ${request.contentTypeId} not found`); + + return { + id: request.id ? request.id : UmbId.new(), + parentId: request.parentId, + contentTypeId: request.contentTypeId, + variants: request.variants, + values: request.values, + name: request.variants?.[0]?.name, + icon: documentType.icon, + isContainer: documentType.isContainer, + hasChildren: false, + noAccess: false, + isProtected: false, + isPublished: false, + isEdited: false, + isTrashed: false, + }; +}; + +const detailResponseMapper = (model: UmbMockDocumentModel): DocumentResponseModel => { + return { + values: model.values, + variants: model.variants, + id: model.id, + contentTypeId: model.contentTypeId, + urls: model.urls, + templateId: model.templateId, + isTrashed: model.isTrashed, + }; +}; + +const itemMapper = (model: UmbMockDocumentModel): DocumentItemResponseModel => { + return { + name: model.name, + id: model.id, + icon: model.icon, + contentTypeId: model.contentTypeId, + isTrashed: model.isTrashed, + }; +}; + +export const umbDocumentMockDb = new UmbDocumentMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts new file mode 100644 index 0000000000..71f36d2a68 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts @@ -0,0 +1,26 @@ +import { UmbEntityMockDbBase } from './entity-base.js'; +import { UmbMockEntityTreeManager } from './entity-tree.manager.js'; +import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbEntityRecycleBin< + MockType extends Omit, +> extends UmbEntityMockDbBase { + tree; + + constructor(data: Array, treeItemMapper: (model: MockType) => any) { + super(data); + this.tree = new UmbMockEntityTreeManager(this, treeItemMapper); + } + + trash(ids: string[]) { + const models = ids.map((id) => this.read(id)).filter((model) => !!model) as Array; + + models.forEach((model) => { + model.isTrashed = true; + }); + + models.forEach((model) => { + this.update(model.id, model); + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts new file mode 100644 index 0000000000..efb97989e6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts @@ -0,0 +1,14 @@ +const { rest } = window.MockServiceWorker; +import { umbDocumentMockDb } from '../../data/document/document.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const allowedTypesHandlers = [ + rest.get(umbracoPath(`${UMB_SLUG}/allowed-document-types`), (req, res, ctx) => { + debugger; + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const response = umbDocumentMockDb.getAllowedDocumentTypes(id); + return res(ctx.status(200), ctx.json(response)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts new file mode 100644 index 0000000000..7ab120dad1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts @@ -0,0 +1,45 @@ +const { rest } = window.MockServiceWorker; +import { umbDocumentMockDb } from '../../data/document/document.db.js'; +import { UMB_SLUG } from './slug.js'; +import { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const detailHandlers = [ + rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { + const requestBody = (await req.json()) as CreateDocumentRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const id = umbDocumentMockDb.detail.create(requestBody); + + return res( + ctx.status(201), + ctx.set({ + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, + }), + ); + }), + + rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const response = umbDocumentMockDb.detail.read(id); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.put(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const requestBody = (await req.json()) as UpdateDocumentRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbDocumentMockDb.detail.update(id, requestBody); + return res(ctx.status(200)); + }), + + rest.delete(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + umbDocumentMockDb.detail.delete(id); + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts deleted file mode 100644 index 6db43aa751..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/document.handlers.ts +++ /dev/null @@ -1,72 +0,0 @@ -const { rest } = window.MockServiceWorker; -import { umbDocumentData } from '../../data/document.data.js'; -import { umbracoPath } from '@umbraco-cms/backoffice/utils'; - -// TODO: add schema -export const handlers = [ - rest.get(umbracoPath('/document/root/allowed-document-types'), (req, res, ctx) => { - const response = umbDocumentData.getAllowedDocumentTypesAtRoot(); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.put(umbracoPath('/document/:id/move-to-recycle-bin'), async (req, res, ctx) => { - const id = req.params.id as string; - umbDocumentData.trash([id]); - return res(ctx.status(200)); - }), - - rest.put(umbracoPath('/document/:id/publish'), async (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - umbDocumentData.publish(id, data); - return res(ctx.status(200)); - }), - - rest.put(umbracoPath('/document/:id/unpublish'), async (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - umbDocumentData.unpublish(id, data); - return res(ctx.status(200)); - }), - - rest.get(umbracoPath('/document/:id/allowed-document-types'), (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const response = umbDocumentData.getDocumentByIdAllowedDocumentTypes(id); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get(umbracoPath('/document/:id'), (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const document = umbDocumentData.getById(id); - return res(ctx.status(200), ctx.json(document)); - }), - - rest.delete(umbracoPath('/document/:id'), (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - umbDocumentData.delete([id]); - return res(ctx.status(200)); - }), - - rest.put(umbracoPath(`/document/:id`), async (req, res, ctx) => { - const id = req.params.id as string; - if (!id) return; - const data = await req.json(); - if (!data) return; - umbDocumentData.save(id, data); - return res(ctx.status(200)); - }), - - rest.post(umbracoPath(`/document`), async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; - umbDocumentData.insert(data); - return res(ctx.status(200)); - }), -]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts index f02652bc13..7bb59c3f4e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts @@ -1,13 +1,17 @@ -import { handlers as recycleBinHandlers } from './recycle-bin.handlers.js'; -import { handlers as treeHandlers } from './tree.handlers.js'; -import { handlers as documentHandlers } from './document.handlers.js'; -import { handlers as itemHandlers } from './item.handlers.js'; -import { handlers as permissionHandlers } from './permission.handlers.js'; +import { recycleBinHandlers } from './recycle-bin.handlers.js'; +import { treeHandlers } from './tree.handlers.js'; +import { itemHandlers } from './item.handlers.js'; +import { permissionHandlers } from './permission.handlers.js'; +import { publishingHandlers } from './publishing.handlers.js'; +import { detailHandlers } from './detail.handlers.js'; +import { allowedTypesHandlers } from './allowed-types.handlers.js'; export const handlers = [ ...recycleBinHandlers, ...permissionHandlers, ...treeHandlers, ...itemHandlers, - ...documentHandlers, + ...publishingHandlers, + ...allowedTypesHandlers, + ...detailHandlers, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts index 87fcf83b30..44179c36c6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/item.handlers.ts @@ -1,13 +1,13 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentData } from '../../data/document.data.js'; +import { umbDocumentMockDb } from '../../data/document/document.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -export const handlers = [ +export const itemHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { const ids = req.url.searchParams.getAll('id'); if (!ids) return; - const items = umbDocumentData.getItems(ids); + const items = umbDocumentMockDb.item.getItems(ids); return res(ctx.status(200), ctx.json(items)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts index d663059f07..c5f828261b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/permission.handlers.ts @@ -1,14 +1,14 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentData } from '../../data/document.data.js'; +import { umbDocumentMockDb } from '../../data/document/document.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; // TODO: temp handlers until we have a real API -export const handlers = [ +export const permissionHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/:id/permissions`), (req, res, ctx) => { const id = req.params.id as string; if (!id) return; - const response = umbDocumentData.getUserPermissionsForDocument(id); + const response = umbDocumentMockDb.getUserPermissionsForDocument(id); return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts new file mode 100644 index 0000000000..9f512c740e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts @@ -0,0 +1,25 @@ +const { rest } = window.MockServiceWorker; +import { umbDocumentMockDb } from '../../data/document/document.db.js'; +import { UMB_SLUG } from './slug.js'; +import { PublishDocumentRequestModel, UnpublishDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const publishingHandlers = [ + rest.put(umbracoPath(`${UMB_SLUG}/:id/publish`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const requestBody = (await req.json()) as PublishDocumentRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbDocumentMockDb.publishing.publish(id, requestBody); + return res(ctx.status(200)); + }), + + rest.put(umbracoPath(`${UMB_SLUG}/:id/unpublish`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const requestBody = (await req.json()) as UnpublishDocumentRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbDocumentMockDb.publishing.unpublish(id, requestBody); + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts index 4776bea829..2b842595f7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/recycle-bin.handlers.ts @@ -1,20 +1,25 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentData } from '../../data/document.data.js'; +import { umbDocumentMockDb } from '../../data/document/document.db.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -export const handlers = [ - rest.get(umbracoPath(`/recycle-bin/document/root`), (req, res, ctx) => { - const response = umbDocumentData.getRecycleBinRoot(); - +export const recycleBinHandlers = [ + rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/root`), (req, res, ctx) => { + const response = umbDocumentMockDb.recycleBin.tree.getRoot(); return res(ctx.status(200), ctx.json(response)); }), - rest.get(umbracoPath(`/recycle-bin/document/children`), (req, res, ctx) => { + rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - - const response = umbDocumentData.getRecycleBinChildrenOf(parentId); - + const response = umbDocumentMockDb.recycleBin.tree.getChildrenOf(parentId); return res(ctx.status(200), ctx.json(response)); }), + + rest.put(umbracoPath(`${UMB_SLUG}/:id/move-to-recycle-bin`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + umbDocumentMockDb.recycleBin.trash([id]); + return res(ctx.status(200)); + }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts index 71636ef42c..e2a0aacc7e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/tree.handlers.ts @@ -1,17 +1,18 @@ const { rest } = window.MockServiceWorker; -import { umbDocumentData } from '../../data/document.data.js'; +import { umbDocumentMockDb } from '../../data/document/document.db.js'; +import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -export const handlers = [ - rest.get(umbracoPath('/tree/document/root'), (req, res, ctx) => { - const response = umbDocumentData.getTreeRoot(); +export const treeHandlers = [ + rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { + const response = umbDocumentMockDb.tree.getRoot(); return res(ctx.status(200), ctx.json(response)); }), - rest.get(umbracoPath('/tree/document/children'), (req, res, ctx) => { + rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { const parentId = req.url.searchParams.get('parentId'); if (!parentId) return; - const response = umbDocumentData.getTreeItemChildrenOf(parentId); + const response = umbDocumentMockDb.tree.getChildrenOf(parentId); return res(ctx.status(200), ctx.json(response)); }), ]; From 9b8d0da5abed88c78033da97da0b76a4156b5584 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 21 Jan 2024 21:56:16 +0100 Subject: [PATCH 446/786] add entity types --- .../src/packages/documents/documents/entity.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity.ts index 1ab686ef3a..c85fa375c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity.ts @@ -1,2 +1,5 @@ -export const UMB_DOCUMENT_ROOT_ENTITY_TYPE = 'document-root'; export const UMB_DOCUMENT_ENTITY_TYPE = 'document'; +export const UMB_DOCUMENT_ROOT_ENTITY_TYPE = 'document-root'; + +export type UmbDocumentEntityType = typeof UMB_DOCUMENT_ENTITY_TYPE; +export type UmbDocumentRootEntityType = typeof UMB_DOCUMENT_ROOT_ENTITY_TYPE; From 086a78264da0f008b19f1dd9bf7816fdf88d35b9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 21 Jan 2024 21:58:06 +0100 Subject: [PATCH 447/786] start on document detail model --- .../src/packages/documents/documents/types.ts | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts new file mode 100644 index 0000000000..2f4dd3688e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts @@ -0,0 +1,7 @@ +import { UmbDocumentEntityType } from './entity.js'; + +export interface UmbDocumentDetailModel { + unique: string; + parentUnique: string; + entityType: UmbDocumentEntityType; +} From 89243dbc51340ab3aebef84ffe30c4645c16d903 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 21 Jan 2024 22:05:26 +0100 Subject: [PATCH 448/786] use unique in document tree items --- .../packages/documents/documents/tree/types.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts index 25531a2e35..3064dcbfaa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts @@ -1,7 +1,11 @@ +import { UmbDocumentEntityType, UmbDocumentRootEntityType } from '../entity.js'; import { PublishedStateModel } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbDocumentTreeItemModel extends UmbEntityTreeItemModel { +export interface UmbDocumentTreeItemModel extends UmbUniqueTreeItemModel { + entityType: UmbDocumentEntityType; + noAccess: boolean; + isTrashed: boolean; isProtected: boolean; isPublished: boolean; isEdited: boolean; @@ -10,11 +14,12 @@ export interface UmbDocumentTreeItemModel extends UmbEntityTreeItemModel { icon: string; } +export interface UmbDocumentTreeRootModel extends UmbUniqueTreeRootModel { + entityType: UmbDocumentRootEntityType; +} + export interface UmbDocumentVariantTreeItemModel { name: string; culture: string | null; state: PublishedStateModel; // TODO: make our own enum for this. We might have states for "unsaved changes" etc. } - -// TODO: TREE STORE TYPE PROBLEM: -export interface UmbDocumentTreeRootModel extends UmbEntityTreeRootModel {} From 76a77d7e4abe457d952eb2506f141439af4f3aae Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 21 Jan 2024 22:18:27 +0100 Subject: [PATCH 449/786] use unique in document tree item store --- .../documents/tree/document-tree.repository.ts | 4 ++-- .../tree/document-tree.server.data-source.ts | 16 +++++++--------- .../documents/tree/document-tree.store.ts | 6 +++--- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts index f696b3237b..55db38fcb4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts @@ -15,8 +15,8 @@ export class UmbDocumentTreeRepository } async requestTreeRoot() { - const data = { - id: null, + const data: UmbDocumentTreeRootModel = { + unique: null, entityType: UMB_DOCUMENT_ROOT_ENTITY_TYPE, name: 'Documents', icon: 'icon-folder', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index 218b0f7258..2a8ca2f932 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -1,3 +1,4 @@ +import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { DocumentResource, DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -43,22 +44,19 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: DocumentTreeItemResponseModel): UmbDocumentTreeItemModel => { return { - id: item.id, - parentId: item.parentId || null, + unique: item.id, + parentUnique: item.parentId ? item.parentId : null, name: item.name, - entityType: 'document', + entityType: UMB_DOCUMENT_ENTITY_TYPE, + noAccess: item.noAccess, + isTrashed: item.isTrashed, isContainer: item.isContainer, hasChildren: item.hasChildren, isProtected: item.isProtected, isPublished: item.isPublished, isEdited: item.isEdited, contentTypeId: item.contentTypeId, - variants: - item.variants?.map((variant) => ({ - name: variant.name!, - culture: variant.culture!, - state: variant.state!, - })) || [], + variants: item.variants, icon: item.icon, isFolder: false, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts index 35343edce3..55945ad3d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts @@ -1,14 +1,14 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; /** * @export * @class UmbDocumentTreeStore - * @extends {UmbStoreBase} + * @extends {UmbUniqueTreeStore} * @description - Tree Data Store for Document Items */ -export class UmbDocumentTreeStore extends UmbEntityTreeStore { +export class UmbDocumentTreeStore extends UmbUniqueTreeStore { /** * Creates an instance of UmbDocumentTreeStore. * @param {UmbControllerHostElement} host From 9603950c852b0e42db2d3e6e40f45af29615eece Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 21 Jan 2024 22:18:44 +0100 Subject: [PATCH 450/786] make unique tree item context generic --- .../tree/unique-tree-item/unique-tree-item.context.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts index 51f4554b57..79a03c1a1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts @@ -1,9 +1,11 @@ import { UmbTreeItemContextBase } from '../tree-item-base/tree-item-base.context.js'; import { UmbUniqueTreeItemModel } from '../types.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -export class UmbUniqueTreeItemContext extends UmbTreeItemContextBase { - constructor(host: UmbControllerHostElement) { +export class UmbUniqueTreeItemContext< + TreeItemModelType extends UmbUniqueTreeItemModel, +> extends UmbTreeItemContextBase { + constructor(host: UmbControllerHost) { super(host, (x: UmbUniqueTreeItemModel) => x.unique); } } From ff1990d9bd2390bdf6ece2a889798a05eb7bd8fc Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 21 Jan 2024 22:19:01 +0100 Subject: [PATCH 451/786] extends unique tree item context for document tree item --- .../documents/tree/tree-item/document-tree-item.context.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts index 813b73fc71..efbf12f6c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts @@ -1,10 +1,9 @@ import { UmbDocumentTreeItemModel } from '../types.js'; -import { UmbTreeItemContextBase } from '@umbraco-cms/backoffice/tree'; +import { UmbUniqueTreeItemContext } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -// TODO get unique method from an document repository static method -export class UmbDocumentTreeItemContext extends UmbTreeItemContextBase { +export class UmbDocumentTreeItemContext extends UmbUniqueTreeItemContext { constructor(host: UmbControllerHost) { - super(host, (x: UmbDocumentTreeItemModel) => x.id); + super(host); } } From 100ac1284024c6ff45d6251dfe23fdc1ba3122a2 Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Mon, 22 Jan 2024 00:01:55 +0100 Subject: [PATCH 452/786] #1136 update rte when value changes --- .../input-tiny-mce/input-tiny-mce.element.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 7ef6f439f7..656bbd7b52 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -42,6 +42,19 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { return this._editorElement?.querySelector('iframe') ?? undefined; } + set value(newValue: FormDataEntryValue | FormData) { + this._value = newValue; + const newContent = newValue?.toString() ?? ''; + + if(this.#editorRef && this.#editorRef.getContent() != newContent) { + this.#editorRef.setContent(newContent); + } + } + + get value(): FormDataEntryValue | FormData { + return this._value; + } + @query('#editor', true) private _editorElement?: HTMLElement; From afca263105073cf4ec186b8d6a9f94a24d27ab75 Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Mon, 22 Jan 2024 00:20:31 +0100 Subject: [PATCH 453/786] #1019 lower z-index to not hide actions menu --- .../core/components/input-tiny-mce/input-tiny-mce.element.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 7ef6f439f7..40d0b2eca5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -335,6 +335,11 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { .tox .tox-collection__item-label { line-height: 1 !important; } + + // Solves issue 1019 by lowering un-needed z-index on header. + .tox.tox-tinymce .tox-editor-header { + z-index:0; + } `, ]; } From 5a2cb8b9dcafe897d7e6ea9e73a29d773ebb6c55 Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Mon, 22 Jan 2024 00:33:21 +0100 Subject: [PATCH 454/786] #1019 fixed issue with comment --- .../core/components/input-tiny-mce/input-tiny-mce.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 40d0b2eca5..3d81f3ab98 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -336,7 +336,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { line-height: 1 !important; } - // Solves issue 1019 by lowering un-needed z-index on header. + /* Solves issue 1019 by lowering un-needed z-index on header.*/ .tox.tox-tinymce .tox-editor-header { z-index:0; } From 43d9ec3ad4a66d21de0c1410ccf887490786d4a5 Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Mon, 22 Jan 2024 01:26:33 +0100 Subject: [PATCH 455/786] #844 fixes headline and button label for content type edit property --- .../property-settings/property-settings-modal.element.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index c3c48e80cd..913dbf9dec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -50,6 +50,9 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< protected _originalPropertyData!: UmbPropertySettingsModalValue; + /** Indicates if the currently edited property is a new property or an existing */ + #isNew = false; + #context = new UmbPropertyTypeWorkspaceContext(this); @state() @@ -69,6 +72,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< }).skipOrigin(); this._originalPropertyData = this.value; + this.#isNew = this.value.alias === ''; const regEx = this.value.validation?.regEx ?? null; if (regEx) { @@ -222,7 +226,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< return html`
- +
@@ -273,7 +277,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<
- +
From dc9b84f3a945df40c9c7912144850dcf4c748409 Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Mon, 22 Jan 2024 01:40:53 +0100 Subject: [PATCH 456/786] #844 translation for new property modal headline --- src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts index cfbeba5478..6dce152d56 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts @@ -1522,6 +1522,7 @@ export default { addGroup: 'Add group', inheritedFrom: 'Inherited from', addProperty: 'Add property', + editProperty : 'Edit property', requiredLabel: 'Required label', enableListViewHeading: 'Enable list view', enableListViewDescription: From f0af737d953ab9865df7f83eb1be6f328e4248df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 22:36:43 +0000 Subject: [PATCH 457/786] Bump vite from 5.0.11 to 5.0.12 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.11 to 5.0.12. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.0.12/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.0.12/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 8 ++++---- src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 1ef5cbf0c8..dd2df99770 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -79,7 +79,7 @@ "tsc-alias": "^1.8.8", "typescript": "^5.3.3", "typescript-json-schema": "^0.62.0", - "vite": "^5.0.11", + "vite": "^5.0.12", "vite-plugin-static-copy": "^1.0.0", "vite-tsconfig-paths": "^4.2.3", "web-component-analyzer": "^2.0.0" @@ -21273,9 +21273,9 @@ } }, "node_modules/vite": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.11.tgz", - "integrity": "sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", + "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", "dev": true, "dependencies": { "esbuild": "^0.19.3", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index cacac385a8..e11f2f50e2 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -208,7 +208,7 @@ "tsc-alias": "^1.8.8", "typescript": "^5.3.3", "typescript-json-schema": "^0.62.0", - "vite": "^5.0.11", + "vite": "^5.0.12", "vite-plugin-static-copy": "^1.0.0", "vite-tsconfig-paths": "^4.2.3", "web-component-analyzer": "^2.0.0" From cace02c94def5c9e5d6bbb79906862440afba63a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 22 Jan 2024 09:10:10 +0100 Subject: [PATCH 458/786] imports --- .../src/packages/block/block/manager/block-manager.context.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index c7aa2a0788..c5c713f38e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -4,10 +4,11 @@ import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; -import { getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; +import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; import { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import { UmbId } from '@umbraco-cms/backoffice/id'; // TODO: We are using backend model here, I think we should get our own model: type ElementTypeModel = UmbContentTypeModel; From a6f0e97717e867451123b74fd186c4f48ca97a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 22 Jan 2024 10:00:19 +0100 Subject: [PATCH 459/786] update import --- .../block/block/workspace/block-workspace-editor.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts index 5613084f53..ee4e734440 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts @@ -1,4 +1,4 @@ -import { UMB_BLOCK_WORKSPACE_CONTEXT } from './block-workspace.context.js'; +import { UMB_BLOCK_WORKSPACE_CONTEXT } from './block-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { customElement, css, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; From 60e7cee1124875c7baf814d7da0b2c552e94b9a9 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 22 Jan 2024 13:21:23 +0100 Subject: [PATCH 460/786] revert edit of a file --- .../backend-api/src/models/DomainsPresentationModelBaseModel.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts index 44c265d2ea..d8588d7c51 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts @@ -6,6 +6,6 @@ import type { DomainPresentationModel } from './DomainPresentationModel'; export type DomainsPresentationModelBaseModel = { - defaultIsoCode: string; + defaultIsoCode?: string | null; domains: Array; }; From 122025b9ee949dfe98d06ee500a445d0204f9e97 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 22 Jan 2024 13:40:47 +0100 Subject: [PATCH 461/786] move modals --- .../src/packages/core/modal/token/index.ts | 1 - .../culture-and-hostnames.action.ts | 7 ++----- .../culture-and-hostnames/manifests.ts | 13 ++----------- .../src/packages/documents/documents/index.ts | 1 + .../src/packages/documents/documents/manifests.ts | 2 ++ .../culture-and-hostnames-modal.element.ts | 9 +++------ .../culture-and-hostnames-modal.token.ts | 0 .../documents/modals/culture-and-hostnames/index.ts | 2 ++ .../packages/documents/documents/modals/index.ts | 1 + .../documents/documents/modals/manifests.ts | 12 ++++++++++++ 10 files changed, 25 insertions(+), 23 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{entity-actions => modals}/culture-and-hostnames/culture-and-hostnames-modal.element.ts (96%) rename src/Umbraco.Web.UI.Client/src/packages/{core/modal/token => documents/documents/modals/culture-and-hostnames}/culture-and-hostnames-modal.token.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts index 481eb23938..2b50aea71b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts @@ -5,7 +5,6 @@ export * from './create-dictionary-modal.token.js'; export * from './create-document-modal.token.js'; export * from './create-user-modal.token.js'; export * from './create-user-success-modal.token.js'; -export * from './culture-and-hostnames-modal.token.js'; export * from './current-user-modal.token.js'; export * from './data-type-picker-flow-data-type-picker-modal.token.js'; export * from './data-type-picker-flow-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts index b785007e18..9521403d4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts @@ -1,11 +1,8 @@ import { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CULTURE_AND_HOSTNAMES_MODAL as UMB_CULTURE_AND_HOSTNAMES_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UMB_CULTURE_AND_HOSTNAMES_MODAL } from '@umbraco-cms/backoffice/document'; export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts index 9ce79086f8..06a93cac69 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UmbDocumentCultureAndHostnamesEntityAction } from './culture-and-hostnames.action.js'; -import { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { @@ -19,13 +19,4 @@ const entityActions: Array = [ }, ]; -const modals: Array = [ - { - type: 'modal', - alias: 'Umb.Modal.CultureAndHostnames', - name: 'Create Document Modal', - js: () => import('./culture-and-hostnames-modal.element.js'), - }, -]; - -export const manifests = [...entityActions, ...modals]; +export const manifests = [...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts index 6791477575..572fb2c61e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts @@ -7,6 +7,7 @@ export * from './recycle-bin/index.js'; export * from './user-permissions/index.js'; export * from './components/index.js'; export * from './entity.js'; +export * from './modals/index.js'; export { UMB_DOCUMENT_TREE_ALIAS } from './tree/index.js'; export { UMB_CONTENT_MENU_ALIAS } from './menu.manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts index ba7ad261ff..dbd160f8a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts @@ -9,6 +9,7 @@ import { manifests as propertyEditorManifests } from './property-editors/manifes import { manifests as userPermissionManifests } from './user-permissions/manifests.js'; import { manifests as recycleBinManifests } from './recycle-bin/manifests.js'; import { manifests as trackedReferenceManifests } from './tracked-reference/manifests.js'; +import { manifests as modalManifests } from './modals/manifests.js'; export const manifests = [ ...collectionManifests, @@ -22,4 +23,5 @@ export const manifests = [ ...userPermissionManifests, ...recycleBinManifests, ...trackedReferenceManifests, + ...modalManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts index c9d60e732e..1a1eb7f6ca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -1,14 +1,11 @@ import { UmbDocumentRepository } from '../../repository/document.repository.js'; import { html, customElement, state, css, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UmbCultureAndHostnamesModalData, - UmbCultureAndHostnamesModalValue, - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLanguageRepository } from '@umbraco-cms/backoffice/language'; import { DomainPresentationModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbCultureAndHostnamesModalData, UmbCultureAndHostnamesModalValue } from '@umbraco-cms/backoffice/document'; @customElement('umb-culture-and-hostnames-modal') export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< @@ -52,7 +49,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< this.#getLanguages(data.defaultIsoCode); } - async #getLanguages(defaultIsoCode?: string) { + async #getLanguages(defaultIsoCode?: string | null) { const { data } = await this.#languageRepository.requestLanguages(); if (!data) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/culture-and-hostnames-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/token/culture-and-hostnames-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/index.ts new file mode 100644 index 0000000000..0b0238bc88 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/index.ts @@ -0,0 +1,2 @@ +export * from './culture-and-hostnames-modal.token.js'; +export * from './culture-and-hostnames-modal.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts new file mode 100644 index 0000000000..a25927e33b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts @@ -0,0 +1 @@ +export * from './culture-and-hostnames/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts new file mode 100644 index 0000000000..746c4d8a5b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts @@ -0,0 +1,12 @@ +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.CultureAndHostnames', + name: 'Culture And Hostnames Modal', + js: () => import('./culture-and-hostnames/culture-and-hostnames-modal.element.js'), + }, +]; + +export const manifests = [...modals]; From 2eb1ef3c4614aceccc166c3d3887a443d6ef7a1b Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 22 Jan 2024 13:45:02 +0100 Subject: [PATCH 462/786] rename --- .../documents/repository/document.repository.ts | 2 +- .../documents/repository/sources/document.server.data.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index 54c4155136..7ff6f5cbed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -283,7 +283,7 @@ export class UmbDocumentRepository extends UmbBaseController implements UmbApi { if (!data) throw new Error('Data is missing'); await this.#init; - const { error } = await this.#detailDataSource.setDomains(id, data); + const { error } = await this.#detailDataSource.updateDomains(id, data); if (!error) { const notification = { data: { message: `Cultures and hostnames saved` } }; this.#notificationContext?.peek('positive', notification); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts index a0cefd7329..cfdb69abd4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts @@ -8,7 +8,6 @@ import { UpdateDocumentRequestModel, PublishDocumentRequestModel, UnpublishDocumentRequestModel, - DomainPresentationModel, DomainsPresentationModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -204,7 +203,13 @@ export class UmbDocumentServerDataSource return tryExecuteAndNotify(this.#host, DocumentResource.getDocumentByIdDomains({ id })); } - async setDomains(id: string, data: DomainsPresentationModelBaseModel) { + /** + * Updates the Document Domains for the given Document id + * @param {string} id + * @param {DomainsPresentationModelBaseModel} data + * @memberof UmbDocumentTypeServerDataSource + */ + async updateDomains(id: string, data: DomainsPresentationModelBaseModel) { if (!id) throw new Error('Id is missing'); return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdDomains({ id, requestBody: data })); } From 95181473aa6db0c275e806aacf8c690449751249 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:05:24 +0100 Subject: [PATCH 463/786] actual popover --- .../culture-and-hostnames-modal.element.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts index 1a1eb7f6ca..7cf0844ad5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -1,8 +1,8 @@ import { UmbDocumentRepository } from '../../repository/document.repository.js'; -import { html, customElement, state, css, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state, css, repeat, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent, UUIPopoverContainerElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLanguageRepository } from '@umbraco-cms/backoffice/language'; import { DomainPresentationModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbCultureAndHostnamesModalData, UmbCultureAndHostnamesModalValue } from '@umbraco-cms/backoffice/document'; @@ -24,6 +24,9 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< @state() private _domains: Array = []; + @query('#more-options') + private _moreOptions?: UUIPopoverContainerElement; + #handleCancel() { this.modalContext?.reject(); } @@ -76,6 +79,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< #addDomain(currentDomain?: boolean) { const defaultModel = this.#languageModel.find((model) => model.isDefault); if (currentDomain) { + this._moreOptions?.hidePopover(); this._domains = [...this._domains, { isoCode: defaultModel?.isoCode ?? '', domainName: window.location.host }]; } else { this._domains = [...this._domains, { isoCode: defaultModel?.isoCode ?? '', domainName: '' }]; @@ -177,10 +181,15 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< label=${this.localize.term('buttons_select')} look="placeholder" compact - @click=${() => this.#addDomain(true)}> + popovertarget="more-options"> - `; + + + this.#addDomain(true)}> Add current domain + + + `; } static styles = [ From 5a9623daa18c6b644e1aa2472d9bf4c5dcf413a2 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:07:26 +0100 Subject: [PATCH 464/786] localize option --- .../culture-and-hostnames-modal.element.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts index 7cf0844ad5..38253f009e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -186,7 +186,9 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< - this.#addDomain(true)}> Add current domain + this.#addDomain(true)}> + Add current domain + `; From 9758b06f7e5041d08bdf24ba18f8899fbd0878c3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 14:58:36 +0100 Subject: [PATCH 465/786] add document detail + item repositories --- .../detail/document-detail.repository.ts | 11 + .../document-detail.server.data-source.ts | 171 +++++++++++++++ .../detail/document-detail.store.ts | 23 ++ .../documents/repository/detail/index.ts | 2 + .../documents/repository/detail/manifests.ts | 23 ++ .../repository/document-item.store.ts | 25 --- .../repository/document.repository.ts | 199 ------------------ .../documents/repository/document.store.ts | 33 --- .../documents/documents/repository/index.ts | 4 +- .../item/document-item.repository.ts | 11 + .../document-item.server.data.ts | 3 +- .../repository/item/document-item.store.ts | 24 +++ .../documents/repository/item/index.ts | 2 + .../documents/repository/item/manifests.ts | 22 ++ .../documents/repository/manifests.ts | 34 +-- .../sources/document.server.data.ts | 107 +--------- .../src/packages/documents/documents/types.ts | 22 +- 17 files changed, 317 insertions(+), 399 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/{sources => item}/document-item.server.data.ts (95%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts new file mode 100644 index 0000000000..ff2ca012dd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts @@ -0,0 +1,11 @@ +import { UmbDocumentDetailModel } from '../../types.js'; +import { UmbDocumentServerDataSource } from './document-detail.server.data-source.js'; +import { UMB_DOCUMENT_DETAIL_STORE_CONTEXT } from './document-detail.store.js'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; + +export class UmbDocumentDetailRepository extends UmbDetailRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbDocumentServerDataSource, UMB_DOCUMENT_DETAIL_STORE_CONTEXT); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts new file mode 100644 index 0000000000..700f7fcb66 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts @@ -0,0 +1,171 @@ +import { UmbDocumentDetailModel } from '../../types.js'; +import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import { + CreateDocumentRequestModel, + DocumentResource, + UpdateDocumentRequestModel, +} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for the Document that fetches data from the server + * @export + * @class UmbDocumentServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbDocumentServerDataSource implements UmbDetailDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbDocumentServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbDocumentServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Creates a new Document scaffold + * @param {(string | null)} parentUnique + * @return { UmbDocumentDetailModel } + * @memberof UmbDocumentServerDataSource + */ + async createScaffold(parentUnique: string | null) { + const data: UmbDocumentDetailModel = { + entityType: UMB_DOCUMENT_ENTITY_TYPE, + unique: UmbId.new(), + parentUnique: parentUnique, + urls: [], + templateId: null, + contentTypeId: 'documentTypeId', + isTrashed: false, + values: [], + variants: [ + { + state: null, + culture: null, + segment: null, + name: '', + publishDate: null, + createDate: null, + updateDate: null, + }, + ], + }; + + return { data }; + } + + /** + * Fetches a Document with the given id from the server + * @param {string} unique + * @return {*} + * @memberof UmbDocumentServerDataSource + */ + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const { data, error } = await tryExecuteAndNotify(this.#host, DocumentResource.getDocumentById({ id: unique })); + + if (error || !data) { + return { error }; + } + + // TODO: make data mapper to prevent errors + const document: UmbDocumentDetailModel = { + entityType: UMB_DOCUMENT_ENTITY_TYPE, + unique: data.id, + parentUnique: data.parentId || null, + values: data.values, + variants: data.variants, + urls: data.urls, + templateId: data.templateId || null, + contentTypeId: data.contentTypeId, + isTrashed: data.isTrashed, + }; + + return { data: document }; + } + + /** + * Inserts a new Document on the server + * @param {UmbDocumentDetailModel} model + * @return {*} + * @memberof UmbDocumentServerDataSource + */ + async create(model: UmbDocumentDetailModel) { + if (!model) throw new Error('Document is missing'); + if (!model.unique) throw new Error('Document unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: CreateDocumentRequestModel = { + id: model.unique, + parentId: model.parentUnique, + contentTypeId: model.contentTypeId, + templateId: model.templateId, + values: model.values, + variants: model.variants, + }; + + const { data, error } = await tryExecuteAndNotify( + this.#host, + DocumentResource.postDocument({ + requestBody, + }), + ); + + if (data) { + return this.read(data); + } + + return { error }; + } + + /** + * Updates a Document on the server + * @param {UmbDocumentDetailModel} Document + * @return {*} + * @memberof UmbDocumentServerDataSource + */ + async update(model: UmbDocumentDetailModel) { + if (!model.unique) throw new Error('Unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: UpdateDocumentRequestModel = { + templateId: model.templateId, + values: model.values, + variants: model.variants, + }; + + const { data, error } = await tryExecuteAndNotify( + this.#host, + DocumentResource.putDocumentById({ + id: model.unique, + requestBody, + }), + ); + + if (data) { + return this.read(data); + } + + return { error }; + } + + /** + * Deletes a Document on the server + * @param {string} unique + * @return {*} + * @memberof UmbDocumentServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + // TODO: update to delete when implemented + return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdMoveToRecycleBin({ id: unique })); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts new file mode 100644 index 0000000000..605364800c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts @@ -0,0 +1,23 @@ +import { UmbDocumentDetailModel } from '../../types.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; + +/** + * @export + * @class UmbDocumentDetailStore + * @extends {UmbStoreBase} + * @description - Data Store for Document Details + */ +export class UmbDocumentDetailStore extends UmbDetailStoreBase { + /** + * Creates an instance of UmbDocumentDetailStore. + * @param {UmbControllerHostElement} host + * @memberof UmbDocumentDetailStore + */ + constructor(host: UmbControllerHostElement) { + super(host, UMB_DOCUMENT_DETAIL_STORE_CONTEXT.toString()); + } +} + +export const UMB_DOCUMENT_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbDocumentDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/index.ts new file mode 100644 index 0000000000..ddeb20f533 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/index.ts @@ -0,0 +1,2 @@ +export { UmbDocumentDetailRepository } from './document-detail.repository.js'; +export { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts new file mode 100644 index 0000000000..2cfc4e4146 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts @@ -0,0 +1,23 @@ +import { UmbDocumentDetailRepository } from './document-detail.repository.js'; +import { UmbDocumentDetailStore } from './document-detail.store.js'; +import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Document.Detail'; + +const repository: ManifestRepository = { + type: 'repository', + alias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + name: 'Document Detail Repository', + api: UmbDocumentDetailRepository, +}; + +export const UMB_DOCUMENT_DETAIL_STORE_ALIAS = 'Umb.Store.Document.Detail'; + +const store: ManifestStore = { + type: 'store', + alias: UMB_DOCUMENT_DETAIL_STORE_ALIAS, + name: 'Document Detail Store', + api: UmbDocumentDetailStore, +}; + +export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts deleted file mode 100644 index d186d8edf3..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityItemStore, UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; - -/** - * @export - * @class UmbDocumentItemStore - * @extends {UmbStoreBase} - * @description - Data Store for Document items - */ - -export class UmbDocumentItemStore extends UmbEntityItemStore { - /** - * Creates an instance of UmbDocumentItemStore. - * @param {UmbControllerHostElement} host - * @memberof UmbDocumentItemStore - */ - constructor(host: UmbControllerHostElement) { - super(host, UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN.toString()); - } -} - -export const UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDocumentItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index 755a60c513..7134398829 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -1,11 +1,6 @@ -import { UmbDocumentTreeStore, UMB_DOCUMENT_TREE_STORE_CONTEXT } from '../tree/document-tree.store.js'; import { UmbDocumentServerDataSource } from './sources/document.server.data.js'; -import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.store.js'; -import { UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, type UmbDocumentItemStore } from './document-item.store.js'; -import { UmbDocumentItemServerDataSource } from './sources/document-item.server.data.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; @@ -13,13 +8,7 @@ import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; export class UmbDocumentRepository extends UmbBaseController implements UmbApi { #init!: Promise; - #treeStore?: UmbDocumentTreeStore; - #detailDataSource: UmbDocumentServerDataSource; - #store?: UmbDocumentStore; - - #itemSource: UmbDocumentItemServerDataSource; - #itemStore?: UmbDocumentItemStore; #notificationContext?: UmbNotificationContext; @@ -28,21 +17,8 @@ export class UmbDocumentRepository extends UmbBaseController implements UmbApi { // TODO: figure out how spin up get the correct data source this.#detailDataSource = new UmbDocumentServerDataSource(this); - this.#itemSource = new UmbDocumentItemServerDataSource(this); this.#init = Promise.all([ - this.consumeContext(UMB_DOCUMENT_TREE_STORE_CONTEXT, (instance) => { - this.#treeStore = instance; - }).asPromise(), - - this.consumeContext(UMB_DOCUMENT_STORE_CONTEXT_TOKEN, (instance) => { - this.#store = instance; - }).asPromise(), - - this.consumeContext(UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, (instance) => { - this.#itemStore = instance; - }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { this.#notificationContext = instance; }).asPromise(), @@ -58,133 +34,8 @@ export class UmbDocumentRepository extends UmbBaseController implements UmbApi { return this.#detailDataSource.getAllowedDocumentTypesOf(id); } - // ITEMS: - async requestItems(ids: Array) { - if (!ids) throw new Error('Keys are missing'); - await this.#init; - - const { data, error } = await this.#itemSource.getItems(ids); - - if (data) { - this.#itemStore?.appendItems(data); - } - - return { data, error, asObservable: () => this.#itemStore!.items(ids) }; - } - - async items(ids: Array) { - await this.#init; - return this.#itemStore!.items(ids); - } - - // DETAILS: - - async createScaffold(documentTypeKey: string, preset?: Partial) { - if (!documentTypeKey) throw new Error('Document type id is missing'); - await this.#init; - return this.#detailDataSource.createScaffold(documentTypeKey, preset); - } - - async requestById(id: string) { - await this.#init; - - // TODO: should we show a notification if the id is missing? - // Investigate what is best for Acceptance testing, cause in that perspective a thrown error might be the best choice? - if (!id) { - throw new Error('Id is missing'); - } - - const { data, error } = await this.#detailDataSource.read(id); - - if (data) { - this.#store?.append(data); - } - - return { data, error, asObservable: () => this.#store!.byId(id) }; - } - - async byId(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - return this.#store!.byId(id); - } - - // Could potentially be general methods: - async create(item: CreateDocumentRequestModel & { id: string }) { - await this.#init; - - if (!item || !item.id) { - throw new Error('Document is missing'); - } - - const { error } = await this.#detailDataSource.create(item); - - if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server - this.#store?.append(item); - // TODO: Update tree store with the new item? or ask tree to request the new item? - - const notification = { data: { message: `Document created` } }; - this.#notificationContext?.peek('positive', notification); - - // TODO: Revisit this call, as we should be able to update tree on client. - //await this.requestRootTreeItems(); - - return { data: item }; - } - - return { error }; - } - - async save(id: string, item: UpdateDocumentRequestModel) { - if (!id) throw new Error('Id is missing'); - if (!item) throw new Error('Item is missing'); - - await this.#init; - - const { error } = await this.#detailDataSource.update(id, item); - - if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server - // Consider notify a workspace if a document is updated in the store while someone is editing it. - this.#store?.append(item); - //this.#treeStore?.updateItem(item.id, { name: item.name });// Port data to tree store. - - const notification = { data: { message: `Document saved` } }; - this.#notificationContext?.peek('positive', notification); - - // TODO: Revisit this call, as we should be able to update tree on client. - //await this.requestRootTreeItems(); - } - - return { error }; - } - // General: - async delete(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - - const { error } = await this.#detailDataSource.delete(id); - - if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server. - // Consider notify a workspace if a document is deleted from the store while someone is editing it. - this.#store?.removeItem(id); - this.#treeStore?.removeItem(id); - this.#itemStore?.removeItem(id); - - const notification = { data: { message: `Document deleted` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; - } - async trash(id: string) { if (!id) throw new Error('Id is missing'); await this.#init; @@ -192,16 +43,6 @@ export class UmbDocumentRepository extends UmbBaseController implements UmbApi { const { error } = await this.#detailDataSource.trash(id); if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server. - // Consider notify a workspace if a document is deleted from the store while someone is editing it. - // TODO: Temp hack: would should update a property isTrashed (maybe) on the item instead of removing them. - this.#store?.removeItem(id); - this.#treeStore?.removeItem(id); - this.#itemStore?.removeItem(id); - - // TODO: append to recycle bin store - const notification = { data: { message: `Document moved to recycle bin` } }; this.#notificationContext?.peek('positive', notification); } @@ -242,44 +83,4 @@ export class UmbDocumentRepository extends UmbBaseController implements UmbApi { return { error }; } - - async saveAndPreview() { - alert('save and preview'); - } - - async saveAndSchedule() { - alert('save and schedule'); - } - - async createBlueprint() { - alert('create document blueprint'); - } - - async move() { - alert('move'); - } - - async copy() { - alert('copy'); - } - - async sortChildrenOf() { - alert('sort'); - } - - async setCultureAndHostnames() { - alert('set culture and hostnames'); - } - - async setPermissions() { - alert('set permissions'); - } - - async setPublicAccess() { - alert('set public access'); - } - - async rollback() { - alert('rollback'); - } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts deleted file mode 100644 index bc228ed79e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; - -/** - * @export - * @class UmbDocumentDetailStore - * @extends {UmbStoreBase} - * @description - Data Store for Document Details - */ -export class UmbDocumentStore extends UmbStoreBase { - /** - * Creates an instance of UmbDocumentDetailStore. - * @param {UmbControllerHostElement} host - * @memberof UmbDocumentDetailStore - */ - constructor(host: UmbControllerHostElement) { - super(host, UMB_DOCUMENT_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id)); - } - - /** - * Retrieve a document from the store - * @param {string} id - * @memberof UmbDocumentStore - */ - byId(id: DocumentResponseModel['id']) { - return this._data.asObservablePart((x) => x.find((y) => y.id === id)); - } -} - -export const UMB_DOCUMENT_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDocumentStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/index.ts index d8c807bc05..fe0c5bffca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/index.ts @@ -1,2 +1,2 @@ -export { UmbDocumentRepository } from './document.repository.js'; -export { UMB_DOCUMENT_REPOSITORY_ALIAS } from './manifests.js'; +export { UmbDocumentDetailRepository, UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from './detail/index.js'; +export { UmbDocumentItemRepository, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from './item/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts new file mode 100644 index 0000000000..19c3f06aa0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts @@ -0,0 +1,11 @@ +import { UmbDocumentItemServerDataSource } from './document-item.server.data.js'; +import { UMB_DOCUMENT_ITEM_STORE_CONTEXT } from './document-item.store.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; + +export class UmbDocumentItemRepository extends UmbItemRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbDocumentItemServerDataSource, UMB_DOCUMENT_ITEM_STORE_CONTEXT); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document-item.server.data.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data.ts index 36f9a45ff7..34ac7ec077 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document-item.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data.ts @@ -7,7 +7,7 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; * A data source for Document items that fetches data from the server * @export * @class UmbDocumentItemServerDataSource - * @implements {DocumentItemDataSource} + * @implements {DocumentTreeDataSource} */ export class UmbDocumentItemServerDataSource implements UmbItemDataSource { #host: UmbControllerHost; @@ -24,6 +24,7 @@ export class UmbDocumentItemServerDataSource implements UmbItemDataSource} ids + * @return {*} * @memberof UmbDocumentItemServerDataSource */ async getItems(ids: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts new file mode 100644 index 0000000000..825dffeabe --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts @@ -0,0 +1,24 @@ +import { UmbDocumentDetailModel } from '../../types.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; + +/** + * @export + * @class UmbDocumentItemStore + * @extends {UmbStoreBase} + * @description - Data Store for Document items + */ + +export class UmbDocumentItemStore extends UmbItemStoreBase { + /** + * Creates an instance of UmbDocumentItemStore. + * @param {UmbControllerHost} host + * @memberof UmbDocumentItemStore + */ + constructor(host: UmbControllerHost) { + super(host, UMB_DOCUMENT_ITEM_STORE_CONTEXT.toString()); + } +} + +export const UMB_DOCUMENT_ITEM_STORE_CONTEXT = new UmbContextToken('UmbDocumentItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/index.ts new file mode 100644 index 0000000000..f8c4b20a0d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/index.ts @@ -0,0 +1,2 @@ +export { UmbDocumentItemRepository } from './document-item.repository.js'; +export { UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/manifests.ts new file mode 100644 index 0000000000..6490290a74 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/manifests.ts @@ -0,0 +1,22 @@ +import { UmbDocumentItemStore } from './document-item.store.js'; +import { UmbDocumentItemRepository } from './document-item.repository.js'; +import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.DocumentItem'; +export const UMB_DOCUMENT_STORE_ALIAS = 'Umb.Store.DocumentItem'; + +const itemRepository: ManifestRepository = { + type: 'repository', + alias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, + name: 'Document Item Repository', + api: UmbDocumentItemRepository, +}; + +const itemStore: ManifestItemStore = { + type: 'itemStore', + alias: UMB_DOCUMENT_STORE_ALIAS, + name: 'Document Item Store', + api: UmbDocumentItemStore, +}; + +export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts index 5fccf17dd3..bb35952020 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/manifests.ts @@ -1,32 +1,4 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; -import { UmbDocumentItemStore } from './document-item.store.js'; -import { UmbDocumentStore } from './document.store.js'; -import type { ManifestItemStore, ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import { manifests as detailManifests } from './detail/manifests.js'; +import { manifests as itemManifests } from './item/manifests.js'; -export const UMB_DOCUMENT_REPOSITORY_ALIAS = 'Umb.Repository.Document'; - -const repository: ManifestRepository = { - type: 'repository', - alias: UMB_DOCUMENT_REPOSITORY_ALIAS, - name: 'Document Repository', - api: UmbDocumentRepository, -}; - -export const UMB_DOCUMENT_STORE_ALIAS = 'Umb.Store.Document'; -export const UMB_DOCUMENT_ITEM_STORE_ALIAS = 'Umb.Store.Document.Item'; - -const store: ManifestStore = { - type: 'store', - alias: UMB_DOCUMENT_STORE_ALIAS, - name: 'Document Store', - api: UmbDocumentStore, -}; - -const itemStore: ManifestItemStore = { - type: 'itemStore', - alias: UMB_DOCUMENT_ITEM_STORE_ALIAS, - name: 'Document Item Store', - api: UmbDocumentItemStore, -}; - -export const manifests = [repository, store, itemStore]; +export const manifests = [...detailManifests, ...itemManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts index 805240d798..191cb04d48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts @@ -1,11 +1,5 @@ -import { UmbId } from '@umbraco-cms/backoffice/id'; -import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; import { DocumentResource, - DocumentResponseModel, - ContentStateModel, - CreateDocumentRequestModel, - UpdateDocumentRequestModel, PublishDocumentRequestModel, UnpublishDocumentRequestModel, } from '@umbraco-cms/backoffice/backend-api'; @@ -19,9 +13,7 @@ import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; * @class UmbDocumentServerDataSource * @implements {RepositoryDetailDataSource} */ -export class UmbDocumentServerDataSource - implements UmbDataSource -{ +export class UmbDocumentServerDataSource { #host: UmbControllerHost; /** @@ -33,93 +25,6 @@ export class UmbDocumentServerDataSource this.#host = host; } - /** - * Fetches a Document with the given id from the server - * @param {string} id - * @memberof UmbDocumentServerDataSource - */ - async read(id: string) { - if (!id) throw new Error('Id is missing'); - - return tryExecuteAndNotify( - this.#host, - DocumentResource.getDocumentById({ - id, - }), - ); - } - - /** - * Creates a new Document scaffold - * @param {string} documentTypeId - * @param {Partial} [preset] - * @return {*} - * @memberof UmbDocumentServerDataSource - */ - async createScaffold(documentTypeId: string, preset?: Partial) { - // TODO: make our own "scaffold" model - const data: DocumentResponseModel = { - urls: [], - templateId: null, - parentId: null, - contentTypeId: documentTypeId, - values: [], - variants: [ - { - state: ContentStateModel.DRAFT, - publishDate: null, - culture: null, - segment: null, - name: '', - createDate: new Date().toISOString(), - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - updateDate: undefined, - }, - ], - ...preset, - id: UmbId.new(), - }; - - return { data }; - } - - /** - * Inserts a new Document on the server - * @param {Document} document - * @memberof UmbDocumentServerDataSource - */ - async create(document: CreateDocumentRequestModel) { - if (!document.id) throw new Error('Id is missing'); - return tryExecuteAndNotify(this.#host, DocumentResource.postDocument({ requestBody: document })); - } - - /** - * Updates a Document on the server - * @param {string} id - * @param {UpdateDocumentRequestModel} document - * @return {*} - * @memberof UmbDocumentServerDataSource - */ - async update(id: string, document: UpdateDocumentRequestModel) { - if (!id) throw new Error('Id is missing'); - - /* TODO: look into why typescript doesn't complain about getting another model than UpdateDocumentRequestModel - Maybe we should simplify the sources, and always send the biggest model. - Then it is up to the data source to format the data correctly before passing it to wherever */ - const requestBody: UpdateDocumentRequestModel = { - templateId: document.templateId, - values: document.values, - variants: document.variants?.map((variant) => ({ - culture: variant.culture, - segment: variant.segment, - name: variant.name, - })), - }; - - return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentById({ id, requestBody })); - } - /** * Publish one or more variants of a Document * @param {string} id @@ -169,16 +74,6 @@ export class UmbDocumentServerDataSource return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdMoveToRecycleBin({ id })); } - /** - * Deletes a Document on the server - * @param {string} id - * @memberof UmbDocumentServerDataSource - */ - async delete(id: string) { - if (!id) throw new Error('Document ID is missing'); - return this.trash(id); - } - /** * Get the allowed document types for a given parent id * @param {string} id diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts index 2f4dd3688e..8f392c9aa7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts @@ -1,7 +1,25 @@ import { UmbDocumentEntityType } from './entity.js'; +import { ContentStateModel, ContentUrlInfoModel, DocumentValueModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDocumentDetailModel { - unique: string; - parentUnique: string; + contentTypeId: string; entityType: UmbDocumentEntityType; + isTrashed: boolean; + parentUnique: string | null; + templateId: string | null; + unique: string; + // TODO: figure out if we need our own models for these + urls: Array; + values: Array; + variants: Array; +} + +export interface UmbDocumentVariantModel { + createDate: string | null; + culture: string | null; + name: string; + publishDate: string | null; + segment: string | null; + state: ContentStateModel | null; + updateDate: string | null; } From 8fccb103fc7b8b5442a7b86f57cfe53e5579c5dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 22 Jan 2024 15:06:35 +0100 Subject: [PATCH 466/786] hideSingleGroup --- .../inline-list-block.element.ts | 43 ++++++++++++++++++- ...k-workspace-view-edit-no-router.element.ts | 1 + .../block-workspace-view-edit-tab.element.ts | 40 +++++++++-------- 3 files changed, 65 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts index 154673d767..83b3ab6ce3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts @@ -2,9 +2,10 @@ import { UMB_BLOCK_LIST_CONTEXT } from '../../index.js'; import { UMB_BLOCK_WORKSPACE_ALIAS, UMB_BLOCK_WORKSPACE_CONTEXT } from '../../../block/index.js'; import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; +import { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import '../../../block/workspace/views/edit/block-workspace-view-edit-no-router.element.js'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; /** * @element umb-inline-list-block @@ -15,6 +16,12 @@ export class UmbInlineListBlockElement extends UmbLitElement { #workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; #contentUdi?: string; + @state() + _label = ''; + + @state() + _isOpen = false; + constructor() { super(); @@ -28,6 +35,9 @@ export class UmbInlineListBlockElement extends UmbLitElement { }, 'observeContentUdi', ); + this.observe(blockContext.label, (label) => { + this._label = label; + }); }); this.observe(umbExtensionsRegistry.getByTypeAndAlias('workspace', UMB_BLOCK_WORKSPACE_ALIAS), (manifest) => { if (manifest) { @@ -53,8 +63,37 @@ export class UmbInlineListBlockElement extends UmbLitElement { } render() { - return html``; + return html` + + ${this._isOpen === true + ? html`` + : ''} + `; } + + static styles = [ + css` + #accordion-button { + display: flex; + text-align: left; + align-items: center; + justify-content: flex-start; + width: 100%; + border: none; + background: none; + padding: 0; + } + `, + ]; } export default UmbInlineListBlockElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts index 59346e2b4e..ae8f92868f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts @@ -110,6 +110,7 @@ export class UmbBlockWorkspaceViewEditNoRouterElement extends UmbLitElement impl : ''} ${this._activeTabId !== undefined ? html`(this); @state() @@ -66,30 +73,29 @@ export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { render() { return html` - ${this._hasProperties - ? html` - - - - ` - : ''} + ${this._hasProperties ? this.#renderPart(this._tabName) : ''} ${repeat( this._groups, (group) => group.name, - (group) => - html` - - `, + (group) => this.#renderPart(group.name, group.name), )} `; } + #renderPart(groupName: string | null | undefined, boxName?: string | null | undefined) { + return this.hideSingleGroup && this._groups.length === 1 + ? html` ` + : html` `; + } + static styles = [ UmbTextStyles, css` From f5bbd05fd28aa7e583a025f9fcfe342cf6cba025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 22 Jan 2024 15:07:08 +0100 Subject: [PATCH 467/786] pre live editing --- .../block/workspace/block-element-manager.ts | 1 + .../workspace/block-workspace.context.ts | 22 ++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts index 9aeeb2bc93..88fcc764b3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -9,6 +9,7 @@ import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/documen export class UmbBlockElementManager extends UmbBaseController { // #data = new UmbObjectState(undefined); + readonly data = this.#data.asObservable(); #getDataPromise = new Promise((resolve) => { this.#getDataResolver = resolve; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index f9fb54e010..8558c4e029 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -6,6 +6,7 @@ import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; +import { buildUdi } from '@umbraco-cms/backoffice/utils'; export class UmbBlockWorkspaceContext< LayoutDataType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, @@ -76,9 +77,9 @@ export class UmbBlockWorkspaceContext< const settingsUdi = layoutData?.settingsUdi; if (settingsUdi) { this.observe( - this.#blockManager!.contentOf(settingsUdi), + this.#blockManager!.settingsOf(settingsUdi), (settingsData) => { - this.content.setData(settingsData); + this.settings.setData(settingsData); }, 'observeSettings', ); @@ -86,13 +87,28 @@ export class UmbBlockWorkspaceContext< }, 'observeLayout', ); + + /* + if ( liveEditingMode) { + this.observe(this.layout, (layoutData) => { + if(layoutData) { + this.#blockManager?.setOneLayout(layoutData); + } + }); + this.observe(this.content.data, (contentData) => { + if(contentData) { + this.#blockManager?.setOneContent(contentData); + } + }); + } + */ } async create(contentElementTypeId: string) { // // TODO: Condense this into some kind of create method? const key = UmbId.new(); - const contentUdi = `umb://block/${key}`; + const contentUdi = buildUdi('block', key); const layout: UmbBlockLayoutBaseModel = { contentUdi: contentUdi, }; From 214bbd0f4a2292a774e06eff197c9901e6dfc547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 22 Jan 2024 15:07:14 +0100 Subject: [PATCH 468/786] correct models --- .../src/packages/core/content-type/types.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index 130d6a81a0..aa1f738902 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -1,8 +1,8 @@ import { ContentTypeCompositionModel, ContentTypeSortModel, - MediaTypePropertyTypeContainerResponseModel, - MediaTypePropertyTypeResponseModel, + PropertyTypeContainerModelBaseModel, + PropertyTypeModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; export interface UmbContentTypeModel { @@ -17,8 +17,8 @@ export interface UmbContentTypeModel { variesBySegment: boolean; isElement: boolean; // TODO: investigate if we need our own model for these - properties: Array; - containers: Array; + properties: Array; + containers: Array; allowedContentTypes: Array; compositions: Array; } From e97cbe73e6c2bba33c7490973e4954f04d2b28f2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 15:09:16 +0100 Subject: [PATCH 469/786] add constraints to item repository base class --- .../core/repository/item/item-repository-base.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts index 914d39403a..b79fe3893d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts @@ -5,9 +5,12 @@ import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemStore } from '@umbraco-cms/backoffice/store'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -export class UmbItemRepositoryBase extends UmbRepositoryBase implements UmbItemRepository { +export class UmbItemRepositoryBase + extends UmbRepositoryBase + implements UmbItemRepository +{ protected _init: Promise; - protected _itemStore?: UmbItemStore; + protected _itemStore?: UmbItemStore; #itemSource: UmbItemDataSource; constructor( @@ -19,7 +22,7 @@ export class UmbItemRepositoryBase extends UmbRepositoryBase imp this.#itemSource = new itemSource(host); this._init = this.consumeContext(itemStoreContextAlias, (instance) => { - this._itemStore = instance as UmbItemStore; + this._itemStore = instance as UmbItemStore; }).asPromise(); } From 765d1d0ab3bf629f768886e3a84cb4e16236ab08 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 15:09:30 +0100 Subject: [PATCH 470/786] add models for document type item --- .../documents/repository/item/types.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts new file mode 100644 index 0000000000..d48a5cabbe --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts @@ -0,0 +1,17 @@ +export interface UmbDocumentItemModel { + unique: string; + isTrashed: boolean; + isProtected: boolean; + documentType: { + unique: string; + icon: string; + hasListView: boolean; + }; + variants: Array; +} + +export interface UmbDocumentItemVariantModel { + name: string; + culture: string; + state: string; +} From 4ad005fb5f7440448396e7ac35dbeb26d7128987 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 15:09:43 +0100 Subject: [PATCH 471/786] use client side model for document item repo --- .../documents/repository/item/document-item.repository.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts index 19c3f06aa0..9de25e33ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.repository.ts @@ -1,10 +1,10 @@ import { UmbDocumentItemServerDataSource } from './document-item.server.data.js'; import { UMB_DOCUMENT_ITEM_STORE_CONTEXT } from './document-item.store.js'; +import { UmbDocumentItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbDocumentItemRepository extends UmbItemRepositoryBase { +export class UmbDocumentItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbDocumentItemServerDataSource, UMB_DOCUMENT_ITEM_STORE_CONTEXT); } From 3dc1cf3df69adc58cb090861dc892840914b564f Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 22 Jan 2024 15:39:44 +0100 Subject: [PATCH 472/786] popover --- .../culture-and-hostnames-modal.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts index 38253f009e..999525a267 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -25,7 +25,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< private _domains: Array = []; @query('#more-options') - private _moreOptions?: UUIPopoverContainerElement; + popoverContainerElement?: UUIPopoverContainerElement; #handleCancel() { this.modalContext?.reject(); @@ -79,7 +79,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< #addDomain(currentDomain?: boolean) { const defaultModel = this.#languageModel.find((model) => model.isDefault); if (currentDomain) { - this._moreOptions?.hidePopover(); + this.popoverContainerElement?.hidePopover(); this._domains = [...this._domains, { isoCode: defaultModel?.isoCode ?? '', domainName: window.location.host }]; } else { this._domains = [...this._domains, { isoCode: defaultModel?.isoCode ?? '', domainName: '' }]; From f68d97eb2a59424e101b33e2a412d254059d3049 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 22 Jan 2024 15:46:15 +0100 Subject: [PATCH 473/786] ts ignore --- .../culture-and-hostnames-modal.element.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts index 999525a267..4c47752351 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -79,6 +79,9 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< #addDomain(currentDomain?: boolean) { const defaultModel = this.#languageModel.find((model) => model.isDefault); if (currentDomain) { + // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet. + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore this.popoverContainerElement?.hidePopover(); this._domains = [...this._domains, { isoCode: defaultModel?.isoCode ?? '', domainName: window.location.host }]; } else { From df258b915050ea436d66d4f44cbac8492cd76fa8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 16:04:00 +0100 Subject: [PATCH 474/786] add item server data source base --- .../packages/core/repository/item/index.ts | 1 + .../item/item-server-data-source-base.ts | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/index.ts index 024ad912f7..605da4d640 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/index.ts @@ -1,3 +1,4 @@ export * from './item-data-source.interface.js'; export * from './item-repository-base.js'; export * from './item-repository.interface.js'; +export * from './item-server-data-source-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts new file mode 100644 index 0000000000..edc4125854 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts @@ -0,0 +1,57 @@ +import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; +import { CancelablePromise, ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export interface UmbItemServerDataSourceBaseArgs< + ServerItemType extends ItemResponseModelBaseModel, + ClientItemType extends { unique: string }, +> { + getItems: (uniques: Array) => CancelablePromise>; + mapper: (item: ServerItemType) => ClientItemType; +} + +/** + * A data source base for items that fetches items from the server + * @export + * @class UmbItemServerDataSourceBase + * @implements {DocumentTreeDataSource} + */ +export abstract class UmbItemServerDataSourceBase< + ServerItemType extends ItemResponseModelBaseModel, + ClientItemType extends { unique: string }, +> implements UmbItemDataSource +{ + #host: UmbControllerHost; + #getItems: (uniques: Array) => CancelablePromise>; + #mapper: (item: ServerItemType) => ClientItemType; + + /** + * Creates an instance of UmbItemServerDataSourceBase. + * @param {UmbControllerHost} host + * @memberof UmbItemServerDataSourceBase + */ + constructor(host: UmbControllerHost, args: UmbItemServerDataSourceBaseArgs) { + this.#host = host; + this.#getItems = args.getItems; + this.#mapper = args.mapper; + } + + /** + * Fetches the items for the given uniques from the server + * @param {Array} uniques + * @return {*} + * @memberof UmbItemServerDataSourceBase + */ + async getItems(uniques: Array) { + if (!uniques) throw new Error('Uniques are missing'); + const { data, error } = await tryExecuteAndNotify(this.#host, this.#getItems(uniques)); + + if (data) { + const items = data.map((item) => this.#mapper(item)); + return { data: items }; + } + + return { error }; + } +} From 8df054ad2d7a876cc7e3f3b9a2c53e41e4a2f64a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 16:13:16 +0100 Subject: [PATCH 475/786] new server models --- .../src/external/backend-api/src/index.ts | 29 +- .../src/models/AuditLogBaseModel.ts | 1 + .../src/models/AuditLogResponseModel.ts | 1 + .../AuditLogWithUsernameResponseModel.ts | 5 +- .../models/ChangePasswordUserRequestModel.ts | 1 + ...onTypeModel.ts => CompositionTypeModel.ts} | 2 +- .../models/ConsentLevelPresentationModel.ts | 1 + .../models/ContentForDocumentResponseModel.ts | 2 +- .../models/ContentForMediaResponseModel.ts | 14 + .../models/ContentTreeItemResponseModel.ts | 7 +- .../src/models/ContentTypeCleanupModel.ts | 1 + .../src/models/ContentTypeCompositionModel.ts | 11 - ...ntTypeCompositionResponseModelBaseModel.ts | 1 + ...ContentTypeForDocumentTypeResponseModel.ts | 5 +- .../ContentTypeForMediaTypeResponseModel.ts | 5 +- ...entTypeReferenceResponseModelBaseModel.ts} | 9 +- .../src/models/ContentUrlInfoModel.ts | 1 + .../src/models/CopyDataTypeRequestModel.ts | 1 + .../src/models/CopyDocumentRequestModel.ts | 5 +- .../models/CopyDocumentTypeRequestModel.ts | 5 +- .../src/models/CopyMediaTypeRequestModel.ts | 4 +- .../CreateContentForDocumentRequestModel.ts | 4 +- .../CreateContentForMediaRequestModel.ts | 4 +- ...eContentTypeForDocumentTypeRequestModel.ts | 8 +- ...eateContentTypeForMediaTypeRequestModel.ts | 8 +- .../src/models/CreateDataTypeRequestModel.ts | 5 +- .../CreateDictionaryItemRequestModel.ts | 5 +- .../src/models/CreateDocumentRequestModel.ts | 6 +- ...ntTypePropertyTypeContainerRequestModel.ts | 1 + ...ateDocumentTypePropertyTypeRequestModel.ts | 1 + .../models/CreateDocumentTypeRequestModel.ts | 12 +- .../src/models/CreateFolderRequestModel.ts | 5 +- .../CreateInitialPasswordUserRequestModel.ts | 3 +- .../src/models/CreateLanguageRequestModel.ts | 3 +- .../src/models/CreateMediaRequestModel.ts | 4 +- ...iaTypePropertyTypeContainerRequestModel.ts | 1 + ...CreateMediaTypePropertyTypeRequestModel.ts | 1 + .../src/models/CreateMediaTypeRequestModel.ts | 8 +- .../src/models/CreatePackageRequestModel.ts | 1 + .../models/CreateRelationTypeRequestModel.ts | 3 +- .../src/models/CreateUserGroupRequestModel.ts | 1 + .../src/models/CreateUserRequestModel.ts | 1 + .../src/models/CreateUserResponseModel.ts | 1 + .../src/models/CultureReponseModel.ts | 1 + .../src/models/CurrentUserResponseModel.ts | 1 + .../src/models/DataTypeItemResponseModel.ts | 7 +- .../src/models/DataTypeModelBaseModel.ts | 1 + .../DataTypePropertyPresentationModel.ts | 1 + .../models/DataTypePropertyReferenceModel.ts | 1 + .../models/DataTypeReferenceResponseModel.ts | 1 + .../src/models/DataTypeResponseModel.ts | 5 +- .../models/DataTypeTreeItemResponseModel.ts | 3 +- .../models/DatabaseInstallResponseModel.ts | 1 + .../DatabaseSettingsPresentationModel.ts | 1 + .../models/DeleteUserGroupsRequestModel.ts | 1 + .../src/models/DeleteUsersRequestModel.ts | 1 + .../models/DictionaryItemItemResponseModel.ts | 5 +- .../models/DictionaryItemModelBaseModel.ts | 1 + .../src/models/DictionaryItemResponseModel.ts | 3 +- .../models/DictionaryItemTranslationModel.ts | 1 + .../models/DictionaryOverviewResponseModel.ts | 1 + .../src/models/DisableUserRequestModel.ts | 1 + .../models/DocumentBlueprintResponseModel.ts | 5 +- .../DocumentBlueprintTreeItemResponseModel.ts | 11 +- .../src/models/DocumentItemResponseModel.ts | 10 +- .../DocumentNotificationResponseModel.ts | 1 + .../DocumentRecycleBinItemResponseModel.ts | 14 + .../src/models/DocumentResponseModel.ts | 10 +- .../models/DocumentTreeItemResponseModel.ts | 13 +- .../models/DocumentTypeCompositionModel.ts | 13 + .../models/DocumentTypeItemResponseModel.ts | 9 +- ...tTypePropertyTypeContainerResponseModel.ts | 1 + .../DocumentTypePropertyTypeResponseModel.ts | 1 + .../DocumentTypeReferenceResponseModel.ts | 9 + .../src/models/DocumentTypeResponseModel.ts | 12 +- .../src/models/DocumentTypeSortModel.ts | 12 + .../DocumentTypeTreeItemResponseModel.ts | 5 +- .../src/models/DocumentValueModel.ts | 1 + .../src/models/DocumentVariantRequestModel.ts | 1 + .../models/DocumentVariantResponseModel.ts | 5 +- .../src/models/DomainPresentationModel.ts | 1 + .../DomainsPresentationModelBaseModel.ts | 1 + .../src/models/DomainsResponseModel.ts | 1 + .../DynamicRootQueryOriginRequestModel.ts | 1 + .../src/models/DynamicRootResponseModel.ts | 1 + .../src/models/EnableUserRequestModel.ts | 1 + .../src/models/EntityTreeItemResponseModel.ts | 7 +- .../src/models/FieldPresentationModel.ts | 1 + ...leSystemFileCreateRequestModelBaseModel.ts | 1 + ...leSystemFileUpdateRequestModelBaseModel.ts | 1 + .../FileSystemItemViewModelBaseModel.ts | 1 + .../FileSystemRenameRequestModelBaseModel.ts | 1 + .../FileSystemTreeItemPresentationModel.ts | 1 + .../src/models/FolderModelBaseModel.ts | 1 + .../src/models/FolderResponseModel.ts | 5 +- .../src/models/FolderTreeItemResponseModel.ts | 7 +- .../models/HealthCheckActionRequestModel.ts | 1 + .../HealthCheckGroupPresentationBaseModel.ts | 1 + .../HealthCheckGroupPresentationModel.ts | 3 +- .../models/HealthCheckGroupResponseModel.ts | 1 + ...HealthCheckGroupWithResultResponseModel.ts | 1 + .../src/models/HealthCheckModel.ts | 5 +- .../src/models/HealthCheckModelBaseModel.ts | 1 + .../models/HealthCheckResultResponseModel.ts | 1 + .../HealthCheckWithResultPresentationModel.ts | 3 +- .../src/models/HelpPageResponseModel.ts | 1 + .../models/ImportDictionaryRequestModel.ts | 1 + .../src/models/IndexResponseModel.ts | 1 + .../models/InstallSettingsResponseModel.ts | 1 + .../src/models/InstallVResponseModel.ts | 1 + .../src/models/InviteUserRequestModel.ts | 3 +- ...l.ts => ItemReferenceByIdResponseModel.ts} | 4 +- .../src/models/ItemResponseModelBaseModel.ts | 2 +- .../src/models/ItemSortingRequestModel.ts | 1 + .../src/models/LanguageItemResponseModel.ts | 1 + .../src/models/LanguageModelBaseModel.ts | 1 + .../src/models/LanguageResponseModel.ts | 3 +- .../src/models/LinkedLoginModel.ts | 1 + .../src/models/LinkedLoginsRequestModel.ts | 1 + .../src/models/LogLevelCountsReponseModel.ts | 1 + .../LogMessagePropertyPresentationModel.ts | 1 + .../src/models/LogMessageResponseModel.ts | 1 + .../src/models/LogTemplateResponseModel.ts | 1 + .../src/models/LoggerResponseModel.ts | 1 + .../src/models/MediaItemResponseModel.ts | 8 +- .../MediaRecycleBinItemResponseModel.ts | 14 + .../src/models/MediaResponseModel.ts | 15 + .../src/models/MediaTreeItemResponseModel.ts | 6 +- .../src/models/MediaTypeCompositionModel.ts | 13 + .../src/models/MediaTypeItemResponseModel.ts | 7 +- ...aTypePropertyTypeContainerResponseModel.ts | 1 + .../MediaTypePropertyTypeResponseModel.ts | 1 + .../models/MediaTypeReferenceResponseModel.ts | 9 + .../src/models/MediaTypeResponseModel.ts | 8 +- .../src/models/MediaTypeSortModel.ts | 12 + .../models/MediaTypeTreeItemResponseModel.ts | 3 +- .../backend-api/src/models/MediaValueModel.ts | 1 + .../src/models/MediaVariantRequestModel.ts | 1 + .../src/models/MediaVariantResponseModel.ts | 1 + .../models/MemberGroupItemResponseModel.ts | 5 +- .../src/models/MemberItemResponseModel.ts | 7 +- .../src/models/MemberTypeItemResponseModel.ts | 7 +- .../src/models/ModelsBuilderResponseModel.ts | 1 + .../src/models/MoveDataTypeRequestModel.ts | 1 + .../src/models/MoveDictionaryRequestModel.ts | 1 + .../src/models/MoveDocumentRequestModel.ts | 5 +- .../models/MoveDocumentTypeRequestModel.ts | 4 +- .../src/models/MoveMediaRequestModel.ts | 5 +- .../src/models/MoveMediaTypeRequestModel.ts | 4 +- .../NamedEntityTreeItemResponseModel.ts | 11 + .../models/NamedItemResponseModelBaseModel.ts | 10 + .../src/models/ObjectTypeResponseModel.ts | 1 + .../backend-api/src/models/OkResult.ts | 1 + .../models/OutOfDateStatusResponseModel.ts | 1 + .../models/PackageDefinitionResponseModel.ts | 5 +- .../models/PackageManifestResponseModel.ts | 1 + .../PackageMigrationStatusResponseModel.ts | 1 + .../src/models/PackageModelBaseModel.ts | 1 + .../src/models/PagedAuditLogResponseModel.ts | 1 + .../PagedAuditLogWithUsernameResponseModel.ts | 1 + .../src/models/PagedCultureReponseModel.ts | 1 + .../PagedDataTypeTreeItemResponseModel.ts | 1 + .../PagedDictionaryOverviewResponseModel.ts | 1 + ...dDocumentBlueprintTreeItemResponseModel.ts | 1 + ...agedDocumentRecycleBinItemResponseModel.ts | 12 + .../PagedDocumentTreeItemResponseModel.ts | 1 + .../models/PagedDocumentTypeResponseModel.ts | 1 + .../PagedDocumentTypeTreeItemResponseModel.ts | 1 + .../PagedEntityTreeItemResponseModel.ts | 19 -- ...agedFileSystemTreeItemPresentationModel.ts | 1 + .../PagedHealthCheckGroupResponseModel.ts | 1 + .../src/models/PagedHelpPageResponseModel.ts | 1 + .../src/models/PagedIndexResponseModel.ts | 1 + .../src/models/PagedLanguageResponseModel.ts | 1 + .../models/PagedLogMessageResponseModel.ts | 1 + .../models/PagedLogTemplateResponseModel.ts | 1 + .../src/models/PagedLoggerResponseModel.ts | 1 + .../PagedMediaRecycleBinItemResponseModel.ts | 12 + .../models/PagedMediaTreeItemResponseModel.ts | 1 + .../PagedMediaTypeTreeItemResponseModel.ts | 1 + .../PagedNamedEntityTreeItemResponseModel.ts | 17 + .../models/PagedObjectTypeResponseModel.ts | 1 + .../PagedPackageDefinitionResponseModel.ts | 1 + ...agedPackageMigrationStatusResponseModel.ts | 1 + .../src/models/PagedProblemDetailsModel.ts | 1 + .../PagedRecycleBinItemResponseModel.ts | 11 - .../models/PagedRedirectUrlResponseModel.ts | 1 + .../models/PagedRelationItemResponseModel.ts | 1 + .../src/models/PagedRelationResponseModel.ts | 1 + .../PagedSavedLogSearchResponseModel.ts | 1 + .../models/PagedSearchResultResponseModel.ts | 1 + .../src/models/PagedSearcherResponseModel.ts | 1 + .../src/models/PagedTagResponseModel.ts | 1 + .../src/models/PagedTelemetryResponseModel.ts | 1 + .../src/models/PagedUserGroupResponseModel.ts | 1 + .../src/models/PagedUserResponseModel.ts | 1 + .../PartialViewSnippetItemResponseModel.ts | 1 + .../src/models/ProfilingStatusRequestModel.ts | 1 + .../models/ProfilingStatusResponseModel.ts | 1 + .../src/models/PropertyTypeAppearanceModel.ts | 1 + .../PropertyTypeContainerModelBaseModel.ts | 5 +- .../src/models/PropertyTypeModelBaseModel.ts | 6 +- .../src/models/PropertyTypeValidationModel.ts | 1 + .../src/models/PublicAccessBaseModel.ts | 1 + .../src/models/PublicAccessRequestModel.ts | 5 +- .../src/models/PublicAccessResponseModel.ts | 5 +- .../src/models/PublishDocumentRequestModel.ts | 1 + ...lishDocumentWithDescendantsRequestModel.ts | 3 +- .../src/models/PublishedStateModel.ts | 11 - .../RecycleBinItemResponseModelBaseModel.ts | 14 + .../src/models/RedirectUrlResponseModel.ts | 1 + .../models/RedirectUrlStatusResponseModel.ts | 1 + .../src/models/ReferenceByIdModel.ts | 9 + .../src/models/RelationItemResponseModel.ts | 1 + .../src/models/RelationResponseModel.ts | 1 + .../src/models/RelationTypeBaseModel.ts | 1 + .../models/RelationTypeItemResponseModel.ts | 5 +- .../src/models/RelationTypeResponseModel.ts | 13 +- .../models/ResendInviteUserRequestModel.ts | 1 + .../src/models/ResetPasswordRequestModel.ts | 1 + .../models/ResetPasswordTokenRequestModel.ts | 3 +- .../SavedLogSearchPresenationBaseModel.ts | 1 + .../src/models/SavedLogSearchRequestModel.ts | 1 + .../src/models/SavedLogSearchResponseModel.ts | 1 + .../src/models/SearchResultResponseModel.ts | 1 + .../src/models/SearcherResponseModel.ts | 1 + .../ServerConfigurationItemResponseModel.ts | 1 + .../models/ServerInformationResponseModel.ts | 1 + .../src/models/ServerStatusResponseModel.ts | 1 + .../src/models/SetAvatarRequestModel.ts | 1 + .../src/models/SetTourStatusRequestModel.ts | 1 + .../src/models/SortingRequestModel.ts | 1 + .../src/models/TagResponseModel.ts | 1 + .../TelemetryRepresentationBaseModel.ts | 1 + .../src/models/TelemetryRequestModel.ts | 1 + .../src/models/TelemetryResponseModel.ts | 1 + .../src/models/TemplateItemResponseModel.ts | 7 +- .../src/models/TemplateModelBaseModel.ts | 1 + ...lateQueryExecuteFilterPresentationModel.ts | 1 + .../src/models/TemplateQueryExecuteModel.ts | 1 + .../models/TemplateQueryExecuteSortModel.ts | 1 + .../src/models/TemplateQueryOperatorModel.ts | 1 + .../TemplateQueryPropertyPresentationModel.ts | 1 + ...emplateQueryResultItemPresentationModel.ts | 1 + .../TemplateQueryResultResponseModel.ts | 1 + .../TemplateQuerySettingsResponseModel.ts | 1 + .../src/models/TemplateResponseModel.ts | 5 +- .../models/TemplateScaffoldResponseModel.ts | 1 + .../src/models/TemporaryFileResponseModel.ts | 1 + .../backend-api/src/models/TourStatusModel.ts | 1 + .../src/models/TreeItemPresentationModel.ts | 2 +- .../src/models/UnlockUsersRequestModel.ts | 1 + .../models/UnpublishDocumentRequestModel.ts | 1 + .../UpdateContentForDocumentRequestModel.ts | 1 + .../UpdateContentForMediaRequestModel.ts | 1 + ...eContentTypeForDocumentTypeRequestModel.ts | 5 +- ...dateContentTypeForMediaTypeRequestModel.ts | 5 +- .../src/models/UpdateDataTypeRequestModel.ts | 1 + .../UpdateDictionaryItemRequestModel.ts | 1 + ...UpdateDocumentNotificationsRequestModel.ts | 1 + .../src/models/UpdateDocumentRequestModel.ts | 4 +- ...ntTypePropertyTypeContainerRequestModel.ts | 1 + ...ateDocumentTypePropertyTypeRequestModel.ts | 1 + .../models/UpdateDocumentTypeRequestModel.ts | 12 +- .../src/models/UpdateDomainsRequestModel.ts | 1 + .../src/models/UpdateFolderResponseModel.ts | 1 + .../src/models/UpdateLanguageRequestModel.ts | 1 + .../src/models/UpdateMediaRequestModel.ts | 1 + ...iaTypePropertyTypeContainerRequestModel.ts | 1 + ...UpdateMediaTypePropertyTypeRequestModel.ts | 1 + .../src/models/UpdateMediaTypeRequestModel.ts | 8 +- .../src/models/UpdatePackageRequestModel.ts | 3 +- .../models/UpdateRelationTypeRequestModel.ts | 1 + .../src/models/UpdateTemplateRequestModel.ts | 1 + .../src/models/UpdateUserGroupRequestModel.ts | 1 + .../UpdateUserGroupsOnUserRequestModel.ts | 1 + .../src/models/UpdateUserRequestModel.ts | 7 +- .../models/UpgradeSettingsResponseModel.ts | 1 + .../src/models/UserGroupBaseModel.ts | 1 + .../src/models/UserGroupItemResponseModel.ts | 7 +- .../src/models/UserGroupResponseModel.ts | 5 +- .../src/models/UserInstallResponseModel.ts | 1 + .../src/models/UserItemResponseModel.ts | 5 +- .../src/models/UserPermissionModel.ts | 1 + .../models/UserPermissionsResponseModel.ts | 1 + .../src/models/UserPresentationBaseModel.ts | 1 + .../src/models/UserResponseModel.ts | 25 +- .../src/models/UserSettingsModel.ts | 1 + .../models/UserTourStatusesResponseModel.ts | 1 + .../src/models/ValueModelBaseModel.ts | 1 + ...emModel.ts => VariantItemResponseModel.ts} | 7 +- .../src/models/VariantModelBaseModel.ts | 1 + .../models/VariantResponseModelBaseModel.ts | 1 + .../models/VerifyInviteUserRequestModel.ts | 1 + .../VerifyResetPasswordTokenRequestModel.ts | 1 + .../src/services/AuditLogResource.ts | 64 ++-- .../src/services/CultureResource.ts | 12 +- .../src/services/DictionaryResource.ts | 10 +- .../src/services/DocumentBlueprintResource.ts | 20 +- .../src/services/DocumentResource.ts | 308 +++++++++--------- .../src/services/HealthCheckResource.ts | 36 +- .../backend-api/src/services/HelpResource.ts | 24 +- .../src/services/IndexerResource.ts | 28 +- .../src/services/InstallResource.ts | 16 +- .../src/services/LanguageResource.ts | 56 ++-- .../src/services/LogViewerResource.ts | 124 +++---- .../backend-api/src/services/MediaResource.ts | 180 +++++----- .../src/services/MemberGroupResource.ts | 24 +- .../src/services/MemberResource.ts | 8 +- .../src/services/MemberTypeResource.ts | 24 +- .../src/services/ObjectTypesResource.ts | 12 +- .../src/services/PackageResource.ts | 76 ++--- .../src/services/ProfilingResource.ts | 8 +- .../src/services/PropertyTypeResource.ts | 12 +- .../services/RedirectManagementResource.ts | 48 +-- .../src/services/RelationResource.ts | 36 +- .../src/services/RelationTypeResource.ts | 60 ++-- .../src/services/SearcherResource.ts | 32 +- .../src/services/SecurityResource.ts | 28 +- .../backend-api/src/services/TagResource.ts | 24 +- .../src/services/TelemetryResource.ts | 20 +- .../src/services/TemplateResource.ts | 94 +++--- .../src/services/TemporaryFileResource.ts | 30 +- .../backend-api/src/services/TourResource.ts | 8 +- .../src/services/TrackedReferenceResource.ts | 60 ++-- .../backend-api/src/services/UserResource.ts | 232 ++++++------- 326 files changed, 1578 insertions(+), 1114 deletions(-) rename src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/{ContentTypeCompositionTypeModel.ts => CompositionTypeModel.ts} (81%) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts rename src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/{RecycleBinItemResponseModel.ts => ContentTypeReferenceResponseModelBaseModel.ts} (51%) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts rename src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/{ContentTypeSortModel.ts => ItemReferenceByIdResponseModel.ts} (71%) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishedStateModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts rename src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/{VariantTreeItemModel.ts => VariantItemResponseModel.ts} (57%) diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index 74c14bcd08..fc0d96135b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -15,18 +15,18 @@ export type { AvailableContentTypeCompositionResponseModelBaseModel } from './mo export type { AvailableDocumentTypeCompositionResponseModel } from './models/AvailableDocumentTypeCompositionResponseModel'; export type { AvailableMediaTypeCompositionResponseModel } from './models/AvailableMediaTypeCompositionResponseModel'; export type { ChangePasswordUserRequestModel } from './models/ChangePasswordUserRequestModel'; +export { CompositionTypeModel } from './models/CompositionTypeModel'; export type { ConsentLevelPresentationModel } from './models/ConsentLevelPresentationModel'; export type { ContentForDocumentResponseModel } from './models/ContentForDocumentResponseModel'; +export type { ContentForMediaResponseModel } from './models/ContentForMediaResponseModel'; export { ContentStateModel } from './models/ContentStateModel'; export type { ContentTreeItemResponseModel } from './models/ContentTreeItemResponseModel'; export type { ContentTypeCleanupModel } from './models/ContentTypeCleanupModel'; -export type { ContentTypeCompositionModel } from './models/ContentTypeCompositionModel'; export type { ContentTypeCompositionRequestModelBaseModel } from './models/ContentTypeCompositionRequestModelBaseModel'; export type { ContentTypeCompositionResponseModelBaseModel } from './models/ContentTypeCompositionResponseModelBaseModel'; -export { ContentTypeCompositionTypeModel } from './models/ContentTypeCompositionTypeModel'; export type { ContentTypeForDocumentTypeResponseModel } from './models/ContentTypeForDocumentTypeResponseModel'; export type { ContentTypeForMediaTypeResponseModel } from './models/ContentTypeForMediaTypeResponseModel'; -export type { ContentTypeSortModel } from './models/ContentTypeSortModel'; +export type { ContentTypeReferenceResponseModelBaseModel } from './models/ContentTypeReferenceResponseModelBaseModel'; export type { ContentUrlInfoModel } from './models/ContentUrlInfoModel'; export type { CopyDataTypeRequestModel } from './models/CopyDataTypeRequestModel'; export type { CopyDocumentRequestModel } from './models/CopyDocumentRequestModel'; @@ -86,14 +86,18 @@ export type { DocumentBlueprintResponseModel } from './models/DocumentBlueprintR export type { DocumentBlueprintTreeItemResponseModel } from './models/DocumentBlueprintTreeItemResponseModel'; export type { DocumentItemResponseModel } from './models/DocumentItemResponseModel'; export type { DocumentNotificationResponseModel } from './models/DocumentNotificationResponseModel'; +export type { DocumentRecycleBinItemResponseModel } from './models/DocumentRecycleBinItemResponseModel'; export type { DocumentResponseModel } from './models/DocumentResponseModel'; export type { DocumentTreeItemResponseModel } from './models/DocumentTreeItemResponseModel'; +export type { DocumentTypeCompositionModel } from './models/DocumentTypeCompositionModel'; export type { DocumentTypeCompositionRequestModel } from './models/DocumentTypeCompositionRequestModel'; export type { DocumentTypeCompositionResponseModel } from './models/DocumentTypeCompositionResponseModel'; export type { DocumentTypeItemResponseModel } from './models/DocumentTypeItemResponseModel'; export type { DocumentTypePropertyTypeContainerResponseModel } from './models/DocumentTypePropertyTypeContainerResponseModel'; export type { DocumentTypePropertyTypeResponseModel } from './models/DocumentTypePropertyTypeResponseModel'; +export type { DocumentTypeReferenceResponseModel } from './models/DocumentTypeReferenceResponseModel'; export type { DocumentTypeResponseModel } from './models/DocumentTypeResponseModel'; +export type { DocumentTypeSortModel } from './models/DocumentTypeSortModel'; export type { DocumentTypeTreeItemResponseModel } from './models/DocumentTypeTreeItemResponseModel'; export type { DocumentValueModel } from './models/DocumentValueModel'; export type { DocumentVariantRequestModel } from './models/DocumentVariantRequestModel'; @@ -139,6 +143,7 @@ export type { IndexResponseModel } from './models/IndexResponseModel'; export type { InstallSettingsResponseModel } from './models/InstallSettingsResponseModel'; export type { InstallVResponseModel } from './models/InstallVResponseModel'; export type { InviteUserRequestModel } from './models/InviteUserRequestModel'; +export type { ItemReferenceByIdResponseModel } from './models/ItemReferenceByIdResponseModel'; export type { ItemResponseModelBaseModel } from './models/ItemResponseModelBaseModel'; export type { ItemSortingRequestModel } from './models/ItemSortingRequestModel'; export type { LanguageItemResponseModel } from './models/LanguageItemResponseModel'; @@ -153,13 +158,18 @@ export type { LogMessagePropertyPresentationModel } from './models/LogMessagePro export type { LogMessageResponseModel } from './models/LogMessageResponseModel'; export type { LogTemplateResponseModel } from './models/LogTemplateResponseModel'; export type { MediaItemResponseModel } from './models/MediaItemResponseModel'; +export type { MediaRecycleBinItemResponseModel } from './models/MediaRecycleBinItemResponseModel'; +export type { MediaResponseModel } from './models/MediaResponseModel'; export type { MediaTreeItemResponseModel } from './models/MediaTreeItemResponseModel'; +export type { MediaTypeCompositionModel } from './models/MediaTypeCompositionModel'; export type { MediaTypeCompositionRequestModel } from './models/MediaTypeCompositionRequestModel'; export type { MediaTypeCompositionResponseModel } from './models/MediaTypeCompositionResponseModel'; export type { MediaTypeItemResponseModel } from './models/MediaTypeItemResponseModel'; export type { MediaTypePropertyTypeContainerResponseModel } from './models/MediaTypePropertyTypeContainerResponseModel'; export type { MediaTypePropertyTypeResponseModel } from './models/MediaTypePropertyTypeResponseModel'; +export type { MediaTypeReferenceResponseModel } from './models/MediaTypeReferenceResponseModel'; export type { MediaTypeResponseModel } from './models/MediaTypeResponseModel'; +export type { MediaTypeSortModel } from './models/MediaTypeSortModel'; export type { MediaTypeTreeItemResponseModel } from './models/MediaTypeTreeItemResponseModel'; export type { MediaValueModel } from './models/MediaValueModel'; export type { MediaVariantRequestModel } from './models/MediaVariantRequestModel'; @@ -175,6 +185,8 @@ export type { MoveDocumentRequestModel } from './models/MoveDocumentRequestModel export type { MoveDocumentTypeRequestModel } from './models/MoveDocumentTypeRequestModel'; export type { MoveMediaRequestModel } from './models/MoveMediaRequestModel'; export type { MoveMediaTypeRequestModel } from './models/MoveMediaTypeRequestModel'; +export type { NamedEntityTreeItemResponseModel } from './models/NamedEntityTreeItemResponseModel'; +export type { NamedItemResponseModelBaseModel } from './models/NamedItemResponseModelBaseModel'; export type { ObjectTypeResponseModel } from './models/ObjectTypeResponseModel'; export type { OkResult } from './models/OkResult'; export { OperatorModel } from './models/OperatorModel'; @@ -190,10 +202,10 @@ export type { PagedCultureReponseModel } from './models/PagedCultureReponseModel export type { PagedDataTypeTreeItemResponseModel } from './models/PagedDataTypeTreeItemResponseModel'; export type { PagedDictionaryOverviewResponseModel } from './models/PagedDictionaryOverviewResponseModel'; export type { PagedDocumentBlueprintTreeItemResponseModel } from './models/PagedDocumentBlueprintTreeItemResponseModel'; +export type { PagedDocumentRecycleBinItemResponseModel } from './models/PagedDocumentRecycleBinItemResponseModel'; export type { PagedDocumentTreeItemResponseModel } from './models/PagedDocumentTreeItemResponseModel'; export type { PagedDocumentTypeResponseModel } from './models/PagedDocumentTypeResponseModel'; export type { PagedDocumentTypeTreeItemResponseModel } from './models/PagedDocumentTypeTreeItemResponseModel'; -export type { PagedEntityTreeItemResponseModel } from './models/PagedEntityTreeItemResponseModel'; export type { PagedFileSystemTreeItemPresentationModel } from './models/PagedFileSystemTreeItemPresentationModel'; export type { PagedHealthCheckGroupResponseModel } from './models/PagedHealthCheckGroupResponseModel'; export type { PagedHelpPageResponseModel } from './models/PagedHelpPageResponseModel'; @@ -202,14 +214,15 @@ export type { PagedLanguageResponseModel } from './models/PagedLanguageResponseM export type { PagedLoggerResponseModel } from './models/PagedLoggerResponseModel'; export type { PagedLogMessageResponseModel } from './models/PagedLogMessageResponseModel'; export type { PagedLogTemplateResponseModel } from './models/PagedLogTemplateResponseModel'; +export type { PagedMediaRecycleBinItemResponseModel } from './models/PagedMediaRecycleBinItemResponseModel'; export type { PagedMediaTreeItemResponseModel } from './models/PagedMediaTreeItemResponseModel'; export type { PagedMediaTypeTreeItemResponseModel } from './models/PagedMediaTypeTreeItemResponseModel'; +export type { PagedNamedEntityTreeItemResponseModel } from './models/PagedNamedEntityTreeItemResponseModel'; export type { PagedObjectTypeResponseModel } from './models/PagedObjectTypeResponseModel'; export type { PagedPackageDefinitionResponseModel } from './models/PagedPackageDefinitionResponseModel'; export type { PagedPackageMigrationStatusResponseModel } from './models/PagedPackageMigrationStatusResponseModel'; export type { PagedPartialViewSnippetItemResponseModel } from './models/PagedPartialViewSnippetItemResponseModel'; export type { PagedProblemDetailsModel } from './models/PagedProblemDetailsModel'; -export type { PagedRecycleBinItemResponseModel } from './models/PagedRecycleBinItemResponseModel'; export type { PagedRedirectUrlResponseModel } from './models/PagedRedirectUrlResponseModel'; export type { PagedRelationItemResponseModel } from './models/PagedRelationItemResponseModel'; export type { PagedRelationResponseModel } from './models/PagedRelationResponseModel'; @@ -239,11 +252,11 @@ export type { PublicAccessRequestModel } from './models/PublicAccessRequestModel export type { PublicAccessResponseModel } from './models/PublicAccessResponseModel'; export type { PublishDocumentRequestModel } from './models/PublishDocumentRequestModel'; export type { PublishDocumentWithDescendantsRequestModel } from './models/PublishDocumentWithDescendantsRequestModel'; -export { PublishedStateModel } from './models/PublishedStateModel'; -export type { RecycleBinItemResponseModel } from './models/RecycleBinItemResponseModel'; +export type { RecycleBinItemResponseModelBaseModel } from './models/RecycleBinItemResponseModelBaseModel'; export { RedirectStatusModel } from './models/RedirectStatusModel'; export type { RedirectUrlResponseModel } from './models/RedirectUrlResponseModel'; export type { RedirectUrlStatusResponseModel } from './models/RedirectUrlStatusResponseModel'; +export type { ReferenceByIdModel } from './models/ReferenceByIdModel'; export type { RelationItemResponseModel } from './models/RelationItemResponseModel'; export type { RelationResponseModel } from './models/RelationResponseModel'; export type { RelationTypeBaseModel } from './models/RelationTypeBaseModel'; @@ -346,9 +359,9 @@ export type { UserSettingsModel } from './models/UserSettingsModel'; export { UserStateModel } from './models/UserStateModel'; export type { UserTourStatusesResponseModel } from './models/UserTourStatusesResponseModel'; export type { ValueModelBaseModel } from './models/ValueModelBaseModel'; +export type { VariantItemResponseModel } from './models/VariantItemResponseModel'; export type { VariantModelBaseModel } from './models/VariantModelBaseModel'; export type { VariantResponseModelBaseModel } from './models/VariantResponseModelBaseModel'; -export type { VariantTreeItemModel } from './models/VariantTreeItemModel'; export type { VerifyInviteUserRequestModel } from './models/VerifyInviteUserRequestModel'; export type { VerifyResetPasswordTokenRequestModel } from './models/VerifyResetPasswordTokenRequestModel'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts index 6338db587b..e68127bc22 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogBaseModel.ts @@ -14,3 +14,4 @@ export type AuditLogBaseModel = { comment?: string | null; parameters?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts index c9fed6801b..4ecddd6605 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogResponseModel.ts @@ -6,3 +6,4 @@ import type { AuditLogBaseModel } from './AuditLogBaseModel'; export type AuditLogResponseModel = AuditLogBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts index aa10559144..2ee1c4acc5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AuditLogWithUsernameResponseModel.ts @@ -6,6 +6,7 @@ import type { AuditLogBaseModel } from './AuditLogBaseModel'; export type AuditLogWithUsernameResponseModel = (AuditLogBaseModel & { -userName?: string | null; -userAvatars: Array; + userName?: string | null; + userAvatars: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts index ce2f7c5bab..9a435d14d3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ChangePasswordUserRequestModel.ts @@ -7,3 +7,4 @@ export type ChangePasswordUserRequestModel = { newPassword: string; oldPassword?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CompositionTypeModel.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionTypeModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CompositionTypeModel.ts index 5e0b6b596f..63dfdae1e6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionTypeModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CompositionTypeModel.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export enum ContentTypeCompositionTypeModel { +export enum CompositionTypeModel { COMPOSITION = 'Composition', INHERITANCE = 'Inheritance', } diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts index ae6d68b1d2..1df32f48de 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ConsentLevelPresentationModel.ts @@ -9,3 +9,4 @@ export type ConsentLevelPresentationModel = { level: TelemetryLevelModel; description: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts index 863793e02e..e248810d0d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForDocumentResponseModel.ts @@ -10,5 +10,5 @@ export type ContentForDocumentResponseModel = { values: Array; variants: Array; id: string; - contentTypeId: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts new file mode 100644 index 0000000000..5f4b42be51 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentForMediaResponseModel.ts @@ -0,0 +1,14 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { MediaValueModel } from './MediaValueModel'; +import type { MediaVariantResponseModel } from './MediaVariantResponseModel'; + +export type ContentForMediaResponseModel = { + values: Array; + variants: Array; + id: string; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts index d1347bae1f..c9a0e89dc4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTreeItemResponseModel.ts @@ -6,7 +6,8 @@ import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; export type ContentTreeItemResponseModel = (EntityTreeItemResponseModel & { -noAccess: boolean; -isTrashed: boolean; -id: string; + noAccess: boolean; + isTrashed: boolean; + id: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts index 9e03330e73..ba8199a31c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCleanupModel.ts @@ -8,3 +8,4 @@ export type ContentTypeCleanupModel = { keepAllVersionsNewerThanDays?: number | null; keepLatestVersionPerDayForDays?: number | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts deleted file mode 100644 index 9812ade9ed..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionModel.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { ContentTypeCompositionTypeModel } from './ContentTypeCompositionTypeModel'; - -export type ContentTypeCompositionModel = { - id: string; - compositionType: ContentTypeCompositionTypeModel; -}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts index 48bcb91f60..8de2c0f47e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeCompositionResponseModelBaseModel.ts @@ -8,3 +8,4 @@ export type ContentTypeCompositionResponseModelBaseModel = { name: string; icon: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts index f0f65e483c..f5b3816589 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForDocumentTypeResponseModel.ts @@ -3,8 +3,6 @@ /* tslint:disable */ /* eslint-disable */ -import type { ContentTypeCompositionModel } from './ContentTypeCompositionModel'; -import type { ContentTypeSortModel } from './ContentTypeSortModel'; import type { DocumentTypePropertyTypeContainerResponseModel } from './DocumentTypePropertyTypeContainerResponseModel'; import type { DocumentTypePropertyTypeResponseModel } from './DocumentTypePropertyTypeResponseModel'; @@ -19,7 +17,6 @@ export type ContentTypeForDocumentTypeResponseModel = { isElement: boolean; properties: Array; containers: Array; - allowedContentTypes: Array; - compositions: Array; id: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts index 9d7e5d3f9d..457df240bc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeForMediaTypeResponseModel.ts @@ -3,8 +3,6 @@ /* tslint:disable */ /* eslint-disable */ -import type { ContentTypeCompositionModel } from './ContentTypeCompositionModel'; -import type { ContentTypeSortModel } from './ContentTypeSortModel'; import type { MediaTypePropertyTypeContainerResponseModel } from './MediaTypePropertyTypeContainerResponseModel'; import type { MediaTypePropertyTypeResponseModel } from './MediaTypePropertyTypeResponseModel'; @@ -19,7 +17,6 @@ export type ContentTypeForMediaTypeResponseModel = { isElement: boolean; properties: Array; containers: Array; - allowedContentTypes: Array; - compositions: Array; id: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts similarity index 51% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts index 649ee88473..a6e3ce7d8b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeReferenceResponseModelBaseModel.ts @@ -3,12 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -export type RecycleBinItemResponseModel = { +export type ContentTypeReferenceResponseModelBaseModel = { id: string; - name: string; - type: string; icon: string; - hasChildren: boolean; - isContainer: boolean; - parentId?: string | null; + hasListView: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts index bdd424a485..435ff9dd73 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentUrlInfoModel.ts @@ -7,3 +7,4 @@ export type ContentUrlInfoModel = { culture?: string | null; url: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts index 17a312c5b2..0a4d58fe70 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDataTypeRequestModel.ts @@ -6,3 +6,4 @@ export type CopyDataTypeRequestModel = { targetId?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts index 625a011400..828849c9ac 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentRequestModel.ts @@ -3,8 +3,11 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CopyDocumentRequestModel = { - targetId?: string | null; + target?: ReferenceByIdModel | null; relateToOriginal: boolean; includeDescendants: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts index 54a1580100..346920d256 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyDocumentTypeRequestModel.ts @@ -3,6 +3,9 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CopyDocumentTypeRequestModel = { - targetId?: string | null; + target?: ReferenceByIdModel | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts index 03b5dbcb8e..943722db52 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CopyMediaTypeRequestModel.ts @@ -3,7 +3,9 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type CopyMediaTypeRequestModel = { - targetId?: string | null; + target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts index eccb38a6ea..b8ab5e9b48 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForDocumentRequestModel.ts @@ -5,10 +5,12 @@ import type { DocumentValueModel } from './DocumentValueModel'; import type { DocumentVariantRequestModel } from './DocumentVariantRequestModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateContentForDocumentRequestModel = { values: Array; variants: Array; id?: string | null; - parentId?: string | null; + parent?: ReferenceByIdModel | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts index 028bd92d74..252171141b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentForMediaRequestModel.ts @@ -5,10 +5,12 @@ import type { MediaValueModel } from './MediaValueModel'; import type { MediaVariantRequestModel } from './MediaVariantRequestModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateContentForMediaRequestModel = { values: Array; variants: Array; id?: string | null; - parentId?: string | null; + parent?: ReferenceByIdModel | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts index 9179609311..fa26c2f097 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForDocumentTypeRequestModel.ts @@ -3,10 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ContentTypeCompositionModel } from './ContentTypeCompositionModel'; -import type { ContentTypeSortModel } from './ContentTypeSortModel'; import type { CreateDocumentTypePropertyTypeContainerRequestModel } from './CreateDocumentTypePropertyTypeContainerRequestModel'; import type { CreateDocumentTypePropertyTypeRequestModel } from './CreateDocumentTypePropertyTypeRequestModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateContentTypeForDocumentTypeRequestModel = { alias: string; @@ -19,8 +18,7 @@ export type CreateContentTypeForDocumentTypeRequestModel = { isElement: boolean; properties: Array; containers: Array; - allowedContentTypes: Array; - compositions: Array; id?: string | null; - containerId?: string | null; + folder?: ReferenceByIdModel | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts index 390ce03ac1..16d446f260 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateContentTypeForMediaTypeRequestModel.ts @@ -3,10 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ContentTypeCompositionModel } from './ContentTypeCompositionModel'; -import type { ContentTypeSortModel } from './ContentTypeSortModel'; import type { CreateMediaTypePropertyTypeContainerRequestModel } from './CreateMediaTypePropertyTypeContainerRequestModel'; import type { CreateMediaTypePropertyTypeRequestModel } from './CreateMediaTypePropertyTypeRequestModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateContentTypeForMediaTypeRequestModel = { alias: string; @@ -19,8 +18,7 @@ export type CreateContentTypeForMediaTypeRequestModel = { isElement: boolean; properties: Array; containers: Array; - allowedContentTypes: Array; - compositions: Array; id?: string | null; - containerId?: string | null; + folder?: ReferenceByIdModel | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts index 2c82e8c591..521fae8673 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDataTypeRequestModel.ts @@ -6,6 +6,7 @@ import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; export type CreateDataTypeRequestModel = (DataTypeModelBaseModel & { -id?: string | null; -parentId?: string | null; + id?: string | null; + parentId?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts index 7ee00666fb..ee60863e59 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDictionaryItemRequestModel.ts @@ -6,6 +6,7 @@ import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; export type CreateDictionaryItemRequestModel = (DictionaryItemModelBaseModel & { -id?: string | null; -parentId?: string | null; + id?: string | null; + parentId?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts index 6ce932dbba..72400483f3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentRequestModel.ts @@ -4,8 +4,10 @@ /* eslint-disable */ import type { CreateContentForDocumentRequestModel } from './CreateContentForDocumentRequestModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateDocumentRequestModel = (CreateContentForDocumentRequestModel & { -contentTypeId: string; -templateId?: string | null; + documentType: ReferenceByIdModel; + template?: ReferenceByIdModel | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts index e2b1b8b399..75695a9551 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeContainerRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type CreateDocumentTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts index 18d7d3dc9e..49c3e3cf95 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypePropertyTypeRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type CreateDocumentTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts index 6886b97810..297668404c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateDocumentTypeRequestModel.ts @@ -5,9 +5,15 @@ import type { ContentTypeCleanupModel } from './ContentTypeCleanupModel'; import type { CreateContentTypeForDocumentTypeRequestModel } from './CreateContentTypeForDocumentTypeRequestModel'; +import type { DocumentTypeCompositionModel } from './DocumentTypeCompositionModel'; +import type { DocumentTypeSortModel } from './DocumentTypeSortModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateDocumentTypeRequestModel = (CreateContentTypeForDocumentTypeRequestModel & { -allowedTemplateIds: Array; -defaultTemplateId?: string | null; -cleanup: ContentTypeCleanupModel; + allowedTemplates: Array; + defaultTemplate?: ReferenceByIdModel | null; + cleanup: ContentTypeCleanupModel; + allowedDocumentTypes: Array; + compositions: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts index 02633cecba..2c2084a18d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateFolderRequestModel.ts @@ -6,6 +6,7 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type CreateFolderRequestModel = (FolderModelBaseModel & { -id?: string | null; -parentId?: string | null; + id?: string | null; + parentId?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts index e2c290678f..dbc957ff82 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateInitialPasswordUserRequestModel.ts @@ -6,5 +6,6 @@ import type { VerifyInviteUserRequestModel } from './VerifyInviteUserRequestModel'; export type CreateInitialPasswordUserRequestModel = (VerifyInviteUserRequestModel & { -password: string; + password: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts index 00f1f81c25..456b4e4b83 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateLanguageRequestModel.ts @@ -6,5 +6,6 @@ import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; export type CreateLanguageRequestModel = (LanguageModelBaseModel & { -isoCode: string; + isoCode: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts index d818f11e5a..937dcab69f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaRequestModel.ts @@ -4,7 +4,9 @@ /* eslint-disable */ import type { CreateContentForMediaRequestModel } from './CreateContentForMediaRequestModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type CreateMediaRequestModel = (CreateContentForMediaRequestModel & { -contentTypeId: string; + mediaType: ReferenceByIdModel; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts index b95dddefa7..8fea33fee6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type CreateMediaTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts index f7580ed396..344b1852fb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type CreateMediaTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts index da2c267eaf..e143edb901 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateMediaTypeRequestModel.ts @@ -4,5 +4,11 @@ /* eslint-disable */ import type { CreateContentTypeForMediaTypeRequestModel } from './CreateContentTypeForMediaTypeRequestModel'; +import type { MediaTypeCompositionModel } from './MediaTypeCompositionModel'; +import type { MediaTypeSortModel } from './MediaTypeSortModel'; + +export type CreateMediaTypeRequestModel = (CreateContentTypeForMediaTypeRequestModel & { + allowedMediaTypes: Array; + compositions: Array; +}); -export type CreateMediaTypeRequestModel = CreateContentTypeForMediaTypeRequestModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts index b0c95e7869..73977ee1aa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreatePackageRequestModel.ts @@ -6,3 +6,4 @@ import type { PackageModelBaseModel } from './PackageModelBaseModel'; export type CreatePackageRequestModel = PackageModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts index 4f926f78c8..bc558b9331 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateRelationTypeRequestModel.ts @@ -6,5 +6,6 @@ import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; export type CreateRelationTypeRequestModel = (RelationTypeBaseModel & { -id?: string | null; + id?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts index 6cceedf7c3..1cceb76e9a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserGroupRequestModel.ts @@ -6,3 +6,4 @@ import type { UserGroupBaseModel } from './UserGroupBaseModel'; export type CreateUserGroupRequestModel = UserGroupBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts index 1ec757d5db..5d63724191 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserRequestModel.ts @@ -6,3 +6,4 @@ import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; export type CreateUserRequestModel = UserPresentationBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts index 49afb950df..f2e0290598 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CreateUserResponseModel.ts @@ -7,3 +7,4 @@ export type CreateUserResponseModel = { userId: string; initialPassword?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts index 17052ff1a2..3bb48f8923 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CultureReponseModel.ts @@ -7,3 +7,4 @@ export type CultureReponseModel = { name: string; englishName: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts index 99a514b3db..ac422494ea 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/CurrentUserResponseModel.ts @@ -16,3 +16,4 @@ export type CurrentUserResponseModel = { hasAccessToAllLanguages: boolean; permissions: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts index b0aded60d3..6c4fd4dbb3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeItemResponseModel.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; -export type DataTypeItemResponseModel = (ItemResponseModelBaseModel & { -editorUiAlias?: string | null; +export type DataTypeItemResponseModel = (NamedItemResponseModelBaseModel & { + editorUiAlias?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts index 03fd1d95cd..7c3a1d770a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeModelBaseModel.ts @@ -11,3 +11,4 @@ export type DataTypeModelBaseModel = { editorUiAlias?: string | null; values: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts index dddd95ec38..5c6f1bf9a5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyPresentationModel.ts @@ -7,3 +7,4 @@ export type DataTypePropertyPresentationModel = { alias: string; value?: any; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts index d8e1cddc73..34599f578a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypePropertyReferenceModel.ts @@ -7,3 +7,4 @@ export type DataTypePropertyReferenceModel = { name: string; alias: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts index dbe0455028..60b4ebf070 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeReferenceResponseModel.ts @@ -10,3 +10,4 @@ export type DataTypeReferenceResponseModel = { type: string; properties: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts index 8bf0e63d81..f83939f738 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeResponseModel.ts @@ -6,6 +6,7 @@ import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; export type DataTypeResponseModel = (DataTypeModelBaseModel & { -id: string; -parentId?: string | null; + id: string; + parentId?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts index 6bc4619040..a24567b4f4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeTreeItemResponseModel.ts @@ -6,5 +6,6 @@ import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; export type DataTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { -editorUiAlias?: string | null; + editorUiAlias?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts index 7a32527bf1..23baa81221 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseInstallResponseModel.ts @@ -14,3 +14,4 @@ export type DatabaseInstallResponseModel = { connectionString?: string | null; trustServerCertificate: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts index 54e12c5a4d..219b792647 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatabaseSettingsPresentationModel.ts @@ -16,3 +16,4 @@ export type DatabaseSettingsPresentationModel = { supportsIntegratedAuthentication: boolean; requiresConnectionTest: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts index 79839e50c1..6942407664 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUserGroupsRequestModel.ts @@ -6,3 +6,4 @@ export type DeleteUserGroupsRequestModel = { userGroupIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts index 22c88d0c0e..c6f210a95c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DeleteUsersRequestModel.ts @@ -6,3 +6,4 @@ export type DeleteUsersRequestModel = { userIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts index 7bbbdd7135..38f73f486d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemItemResponseModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + +export type DictionaryItemItemResponseModel = NamedItemResponseModelBaseModel; -export type DictionaryItemItemResponseModel = ItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts index 1862fe594e..3ab80babb0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemModelBaseModel.ts @@ -9,3 +9,4 @@ export type DictionaryItemModelBaseModel = { name: string; translations: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts index 694b5af1d9..54a63654cf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemResponseModel.ts @@ -6,5 +6,6 @@ import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; export type DictionaryItemResponseModel = (DictionaryItemModelBaseModel & { -id: string; + id: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts index 874d6d1e8d..2016bf3674 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryItemTranslationModel.ts @@ -7,3 +7,4 @@ export type DictionaryItemTranslationModel = { isoCode: string; translation: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts index 8f908da360..2a0228cec7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DictionaryOverviewResponseModel.ts @@ -9,3 +9,4 @@ export type DictionaryOverviewResponseModel = { parentId?: string | null; translatedIsoCodes: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts index bb1b7f0d08..d761f29549 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DisableUserRequestModel.ts @@ -6,3 +6,4 @@ export type DisableUserRequestModel = { userIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts index 53df8b333c..e894f9e29f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintResponseModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + +export type DocumentBlueprintResponseModel = NamedItemResponseModelBaseModel; -export type DocumentBlueprintResponseModel = ItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts index d325ee660e..cc1573f33e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentBlueprintTreeItemResponseModel.ts @@ -3,10 +3,11 @@ /* tslint:disable */ /* eslint-disable */ -import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; +import type { NamedEntityTreeItemResponseModel } from './NamedEntityTreeItemResponseModel'; -export type DocumentBlueprintTreeItemResponseModel = (EntityTreeItemResponseModel & { -documentTypeId: string; -documentTypeAlias: string; -documentTypeName?: string | null; +export type DocumentBlueprintTreeItemResponseModel = (NamedEntityTreeItemResponseModel & { + documentTypeId: string; + documentTypeAlias: string; + documentTypeName?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts index bcc5c4f8be..3c9b6e07e2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts @@ -3,10 +3,14 @@ /* tslint:disable */ /* eslint-disable */ +import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { VariantItemResponseModel } from './VariantItemResponseModel'; export type DocumentItemResponseModel = (ItemResponseModelBaseModel & { -icon?: string | null; -contentTypeId: string; -isTrashed: boolean; + isTrashed: boolean; + isProtected: boolean; + documentType: DocumentTypeReferenceResponseModel; + variants: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts index c566759f76..72e7e8629d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentNotificationResponseModel.ts @@ -7,3 +7,4 @@ export type DocumentNotificationResponseModel = { actionId: string; subscribed: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts new file mode 100644 index 0000000000..92fa12db8b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts @@ -0,0 +1,14 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; +import type { RecycleBinItemResponseModelBaseModel } from './RecycleBinItemResponseModelBaseModel'; +import type { VariantItemResponseModel } from './VariantItemResponseModel'; + +export type DocumentRecycleBinItemResponseModel = (RecycleBinItemResponseModelBaseModel & { + documentType: DocumentTypeReferenceResponseModel; + variants: Array; +}); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts index e0cfe042d9..049f9b077a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentResponseModel.ts @@ -5,9 +5,13 @@ import type { ContentForDocumentResponseModel } from './ContentForDocumentResponseModel'; import type { ContentUrlInfoModel } from './ContentUrlInfoModel'; +import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type DocumentResponseModel = (ContentForDocumentResponseModel & { -urls: Array; -templateId?: string | null; -isTrashed: boolean; + urls: Array; + template?: ReferenceByIdModel | null; + isTrashed: boolean; + documentType: DocumentTypeReferenceResponseModel; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts index bb37e8f797..743b7af5ab 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts @@ -4,13 +4,12 @@ /* eslint-disable */ import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; -import type { VariantTreeItemModel } from './VariantTreeItemModel'; +import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; +import type { VariantItemResponseModel } from './VariantItemResponseModel'; export type DocumentTreeItemResponseModel = (ContentTreeItemResponseModel & { -isProtected: boolean; -isPublished: boolean; -isEdited: boolean; -contentTypeId: string; -variants: Array; -icon: string; + isProtected: boolean; + documentType: DocumentTypeReferenceResponseModel; + variants: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts new file mode 100644 index 0000000000..5cb10be1d0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeCompositionModel.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { CompositionTypeModel } from './CompositionTypeModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + +export type DocumentTypeCompositionModel = { + documentType: ReferenceByIdModel; + compositionType: CompositionTypeModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts index aeec0ee93a..1ed148dec1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeItemResponseModel.ts @@ -3,9 +3,10 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; -export type DocumentTypeItemResponseModel = (ItemResponseModelBaseModel & { -isElement: boolean; -icon?: string | null; +export type DocumentTypeItemResponseModel = (NamedItemResponseModelBaseModel & { + isElement: boolean; + icon?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts index 68ddb36d34..f6a57aa6c7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeContainerResponseModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type DocumentTypePropertyTypeContainerResponseModel = PropertyTypeContainerModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts index 9c364f0fd7..14837ade42 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypePropertyTypeResponseModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type DocumentTypePropertyTypeResponseModel = PropertyTypeModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts new file mode 100644 index 0000000000..1ce7ab1db8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeReferenceResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeReferenceResponseModelBaseModel } from './ContentTypeReferenceResponseModelBaseModel'; + +export type DocumentTypeReferenceResponseModel = ContentTypeReferenceResponseModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts index 60ae207871..376ad9d470 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeResponseModel.ts @@ -5,9 +5,15 @@ import type { ContentTypeCleanupModel } from './ContentTypeCleanupModel'; import type { ContentTypeForDocumentTypeResponseModel } from './ContentTypeForDocumentTypeResponseModel'; +import type { DocumentTypeCompositionModel } from './DocumentTypeCompositionModel'; +import type { DocumentTypeSortModel } from './DocumentTypeSortModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type DocumentTypeResponseModel = (ContentTypeForDocumentTypeResponseModel & { -allowedTemplateIds: Array; -defaultTemplateId?: string | null; -cleanup: ContentTypeCleanupModel; + allowedTemplates: Array; + defaultTemplate?: ReferenceByIdModel | null; + cleanup: ContentTypeCleanupModel; + allowedDocumentTypes: Array; + compositions: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts new file mode 100644 index 0000000000..82dfba4614 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeSortModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + +export type DocumentTypeSortModel = { + documentType: ReferenceByIdModel; + sortOrder: number; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts index 93b2e6fc2c..cb9a379165 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeTreeItemResponseModel.ts @@ -6,6 +6,7 @@ import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; export type DocumentTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { -isElement: boolean; -icon: string; + isElement: boolean; + icon: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts index 34f2807fbb..d97801007c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentValueModel.ts @@ -6,3 +6,4 @@ import type { ValueModelBaseModel } from './ValueModelBaseModel'; export type DocumentValueModel = ValueModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts index ba28f18d43..4d79c4109a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantRequestModel.ts @@ -6,3 +6,4 @@ import type { VariantModelBaseModel } from './VariantModelBaseModel'; export type DocumentVariantRequestModel = VariantModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts index 53e68560d2..06775caaf6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantResponseModel.ts @@ -7,6 +7,7 @@ import type { ContentStateModel } from './ContentStateModel'; import type { VariantResponseModelBaseModel } from './VariantResponseModelBaseModel'; export type DocumentVariantResponseModel = (VariantResponseModelBaseModel & { -state: ContentStateModel; -publishDate?: string | null; + state: ContentStateModel; + publishDate?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts index cef67f0c14..497ce2ae8e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainPresentationModel.ts @@ -7,3 +7,4 @@ export type DomainPresentationModel = { domainName: string; isoCode: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts index d8588d7c51..193e811957 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsPresentationModelBaseModel.ts @@ -9,3 +9,4 @@ export type DomainsPresentationModelBaseModel = { defaultIsoCode?: string | null; domains: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts index 4bbe922b91..f8d8a1ff18 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DomainsResponseModel.ts @@ -6,3 +6,4 @@ import type { DomainsPresentationModelBaseModel } from './DomainsPresentationModelBaseModel'; export type DomainsResponseModel = DomainsPresentationModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts index 4754ad448d..916d280a5e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootQueryOriginRequestModel.ts @@ -7,3 +7,4 @@ export type DynamicRootQueryOriginRequestModel = { alias: string; key?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts index b048cbf692..da6a956c7b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DynamicRootResponseModel.ts @@ -6,3 +6,4 @@ export type DynamicRootResponseModel = { roots: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts index cb57f8b665..149c8cb3b7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableUserRequestModel.ts @@ -6,3 +6,4 @@ export type EnableUserRequestModel = { userIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts index 5daf0cbbb8..d14eb5cc31 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EntityTreeItemResponseModel.ts @@ -3,10 +3,11 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { TreeItemPresentationModel } from './TreeItemPresentationModel'; export type EntityTreeItemResponseModel = (TreeItemPresentationModel & { -id: string; -isContainer: boolean; -parentId?: string | null; + id: string; + parent?: ReferenceByIdModel | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts index 4ed1ba0696..5a39dbab7c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FieldPresentationModel.ts @@ -7,3 +7,4 @@ export type FieldPresentationModel = { name: string; values: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts index 2084c0fb23..5b9eb3d4cf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileCreateRequestModelBaseModel.ts @@ -10,3 +10,4 @@ export type FileSystemFileCreateRequestModelBaseModel = { parent?: FileSystemFolderModel | null; content: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts index 93afbb1b14..44ec79a002 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemFileUpdateRequestModelBaseModel.ts @@ -6,3 +6,4 @@ export type FileSystemFileUpdateRequestModelBaseModel = { content: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts index 58d84613ee..d0153d4763 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemItemViewModelBaseModel.ts @@ -6,3 +6,4 @@ export type FileSystemItemViewModelBaseModel = { path: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts index 41e1c4965b..bc4534ef58 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemRenameRequestModelBaseModel.ts @@ -6,3 +6,4 @@ export type FileSystemRenameRequestModelBaseModel = { name: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts index c1353be637..00ca2f7dc8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FileSystemTreeItemPresentationModel.ts @@ -7,6 +7,7 @@ import type { FileSystemFolderModel } from './FileSystemFolderModel'; import type { TreeItemPresentationModel } from './TreeItemPresentationModel'; export type FileSystemTreeItemPresentationModel = (TreeItemPresentationModel & { + name: string; path: string; parent?: FileSystemFolderModel | null; isFolder: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts index cebc70b066..3d9275f495 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderModelBaseModel.ts @@ -6,3 +6,4 @@ export type FolderModelBaseModel = { name: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts index d85e8685d7..f06d96bc37 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderResponseModel.ts @@ -6,6 +6,7 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type FolderResponseModel = (FolderModelBaseModel & { -id: string; -parentId?: string | null; + id: string; + parentId?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts index ce7dcb244f..0d2e87e29c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/FolderTreeItemResponseModel.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; +import type { NamedEntityTreeItemResponseModel } from './NamedEntityTreeItemResponseModel'; -export type FolderTreeItemResponseModel = (EntityTreeItemResponseModel & { -isFolder: boolean; +export type FolderTreeItemResponseModel = (NamedEntityTreeItemResponseModel & { + isFolder: boolean; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts index 0ab9dde605..01fe6d187a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckActionRequestModel.ts @@ -13,3 +13,4 @@ export type HealthCheckActionRequestModel = { providedValueValidation?: string | null; providedValueValidationRegex?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts index 1ec78887e6..0fbcac06b9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationBaseModel.ts @@ -6,3 +6,4 @@ export type HealthCheckGroupPresentationBaseModel = { name: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts index e621053980..cdeff24d9a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupPresentationModel.ts @@ -7,5 +7,6 @@ import type { HealthCheckGroupPresentationBaseModel } from './HealthCheckGroupPr import type { HealthCheckModel } from './HealthCheckModel'; export type HealthCheckGroupPresentationModel = (HealthCheckGroupPresentationBaseModel & { -checks: Array; + checks: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts index db458845ae..4754ba19da 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupResponseModel.ts @@ -6,3 +6,4 @@ import type { HealthCheckGroupPresentationBaseModel } from './HealthCheckGroupPresentationBaseModel'; export type HealthCheckGroupResponseModel = HealthCheckGroupPresentationBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts index 64ac7ef25d..f2822cccbe 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckGroupWithResultResponseModel.ts @@ -8,3 +8,4 @@ import type { HealthCheckWithResultPresentationModel } from './HealthCheckWithRe export type HealthCheckGroupWithResultResponseModel = { checks: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts index d97cef49e0..420710c538 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModel.ts @@ -6,6 +6,7 @@ import type { HealthCheckModelBaseModel } from './HealthCheckModelBaseModel'; export type HealthCheckModel = (HealthCheckModelBaseModel & { -name: string; -description?: string | null; + name: string; + description?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts index 54522c05d1..0721373257 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckModelBaseModel.ts @@ -6,3 +6,4 @@ export type HealthCheckModelBaseModel = { id: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts index 7aa91d8415..036976ee4e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckResultResponseModel.ts @@ -12,3 +12,4 @@ export type HealthCheckResultResponseModel = { actions?: Array | null; readMoreLink?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts index f83989db5b..c9e64a9b6c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HealthCheckWithResultPresentationModel.ts @@ -7,5 +7,6 @@ import type { HealthCheckModelBaseModel } from './HealthCheckModelBaseModel'; import type { HealthCheckResultResponseModel } from './HealthCheckResultResponseModel'; export type HealthCheckWithResultPresentationModel = (HealthCheckModelBaseModel & { -results?: Array | null; + results?: Array | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts index d469cebaa1..d5d81e8935 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/HelpPageResponseModel.ts @@ -9,3 +9,4 @@ export type HelpPageResponseModel = { url?: string | null; type?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts index cecb204709..b848a6ea07 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ImportDictionaryRequestModel.ts @@ -7,3 +7,4 @@ export type ImportDictionaryRequestModel = { temporaryFileId: string; parentId?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts index cc64b67dd6..8c957644e5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/IndexResponseModel.ts @@ -14,3 +14,4 @@ export type IndexResponseModel = { fieldCount: number; providerProperties?: Record | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts index 05266c351d..812abfbd8f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallSettingsResponseModel.ts @@ -10,3 +10,4 @@ export type InstallSettingsResponseModel = { user: UserSettingsModel; databases: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts index 92d9815dae..2208a896b3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InstallVResponseModel.ts @@ -12,3 +12,4 @@ export type InstallVResponseModel = { database: DatabaseInstallResponseModel; telemetryLevel: TelemetryLevelModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts index 3f7b3c62c1..2d27ef9b07 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/InviteUserRequestModel.ts @@ -6,5 +6,6 @@ import type { CreateUserRequestModel } from './CreateUserRequestModel'; export type InviteUserRequestModel = (CreateUserRequestModel & { -message?: string | null; + message?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemReferenceByIdResponseModel.ts similarity index 71% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemReferenceByIdResponseModel.ts index 83239e1e12..94a2eb42bc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ContentTypeSortModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemReferenceByIdResponseModel.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type ContentTypeSortModel = { +export type ItemReferenceByIdResponseModel = { id: string; - sortOrder: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts index b30b979409..28b7c0e199 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemResponseModelBaseModel.ts @@ -4,6 +4,6 @@ /* eslint-disable */ export type ItemResponseModelBaseModel = { - name: string; id: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts index 680489338b..e5ef68e040 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ItemSortingRequestModel.ts @@ -7,3 +7,4 @@ export type ItemSortingRequestModel = { id: string; sortOrder: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts index dbf066be1d..f503073ca4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageItemResponseModel.ts @@ -7,3 +7,4 @@ export type LanguageItemResponseModel = { name: string; isoCode: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts index 8c83751024..f05063ce04 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageModelBaseModel.ts @@ -9,3 +9,4 @@ export type LanguageModelBaseModel = { isMandatory: boolean; fallbackIsoCode?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts index 0d8878ef35..26700efd0d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LanguageResponseModel.ts @@ -6,5 +6,6 @@ import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; export type LanguageResponseModel = (LanguageModelBaseModel & { -isoCode: string; + isoCode: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts index 9967bf6b82..ed7be18fd3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginModel.ts @@ -7,3 +7,4 @@ export type LinkedLoginModel = { providerName: string; providerKey: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts index 682d769b66..49f3947868 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LinkedLoginsRequestModel.ts @@ -8,3 +8,4 @@ import type { LinkedLoginModel } from './LinkedLoginModel'; export type LinkedLoginsRequestModel = { linkedLogins: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts index 5a4ad42345..d1d988ec8f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogLevelCountsReponseModel.ts @@ -10,3 +10,4 @@ export type LogLevelCountsReponseModel = { error: number; fatal: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts index 043445e581..de18608397 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessagePropertyPresentationModel.ts @@ -7,3 +7,4 @@ export type LogMessagePropertyPresentationModel = { name: string; value?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts index 940fad309a..9a219c4245 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogMessageResponseModel.ts @@ -14,3 +14,4 @@ export type LogMessageResponseModel = { properties: Array; exception?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts index 78682e668d..90ef6d4318 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LogTemplateResponseModel.ts @@ -7,3 +7,4 @@ export type LogTemplateResponseModel = { messageTemplate?: string | null; count: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts index dd5076b8c6..3c1f88ffd2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/LoggerResponseModel.ts @@ -9,3 +9,4 @@ export type LoggerResponseModel = { name: string; level: LogLevelModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts index 55fa08258c..ec38113736 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaItemResponseModel.ts @@ -4,8 +4,12 @@ /* eslint-disable */ import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; +import type { VariantItemResponseModel } from './VariantItemResponseModel'; export type MediaItemResponseModel = (ItemResponseModelBaseModel & { -icon?: string | null; -isTrashed: boolean; + isTrashed: boolean; + mediaType: MediaTypeReferenceResponseModel; + variants: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts new file mode 100644 index 0000000000..56467ffbc9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaRecycleBinItemResponseModel.ts @@ -0,0 +1,14 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; +import type { RecycleBinItemResponseModelBaseModel } from './RecycleBinItemResponseModelBaseModel'; +import type { VariantItemResponseModel } from './VariantItemResponseModel'; + +export type MediaRecycleBinItemResponseModel = (RecycleBinItemResponseModelBaseModel & { + mediaType: MediaTypeReferenceResponseModel; + variants: Array; +}); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts new file mode 100644 index 0000000000..8943019dd2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaResponseModel.ts @@ -0,0 +1,15 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentForMediaResponseModel } from './ContentForMediaResponseModel'; +import type { ContentUrlInfoModel } from './ContentUrlInfoModel'; +import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; + +export type MediaResponseModel = (ContentForMediaResponseModel & { + urls: Array; + isTrashed: boolean; + mediaType: MediaTypeReferenceResponseModel; +}); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts index 293cc652dc..24c7fad8f2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTreeItemResponseModel.ts @@ -4,7 +4,11 @@ /* eslint-disable */ import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; +import type { MediaTypeReferenceResponseModel } from './MediaTypeReferenceResponseModel'; +import type { VariantItemResponseModel } from './VariantItemResponseModel'; export type MediaTreeItemResponseModel = (ContentTreeItemResponseModel & { -icon: string; + mediaType: MediaTypeReferenceResponseModel; + variants: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts new file mode 100644 index 0000000000..26f74e7068 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeCompositionModel.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { CompositionTypeModel } from './CompositionTypeModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + +export type MediaTypeCompositionModel = { + mediaType: ReferenceByIdModel; + compositionType: CompositionTypeModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts index ecf94a0e22..782e59631a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeItemResponseModel.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; -export type MediaTypeItemResponseModel = (ItemResponseModelBaseModel & { -icon?: string | null; +export type MediaTypeItemResponseModel = (NamedItemResponseModelBaseModel & { + icon?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts index c1c13c2eed..8529996e90 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeContainerResponseModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type MediaTypePropertyTypeContainerResponseModel = PropertyTypeContainerModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts index 256cf33f83..20a8e3efd5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypePropertyTypeResponseModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type MediaTypePropertyTypeResponseModel = PropertyTypeModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts new file mode 100644 index 0000000000..5aad862b1b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeReferenceResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentTypeReferenceResponseModelBaseModel } from './ContentTypeReferenceResponseModelBaseModel'; + +export type MediaTypeReferenceResponseModel = ContentTypeReferenceResponseModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts index 548bb4a336..a4e5cd2e89 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeResponseModel.ts @@ -4,5 +4,11 @@ /* eslint-disable */ import type { ContentTypeForMediaTypeResponseModel } from './ContentTypeForMediaTypeResponseModel'; +import type { MediaTypeCompositionModel } from './MediaTypeCompositionModel'; +import type { MediaTypeSortModel } from './MediaTypeSortModel'; + +export type MediaTypeResponseModel = (ContentTypeForMediaTypeResponseModel & { + allowedMediaTypes: Array; + compositions: Array; +}); -export type MediaTypeResponseModel = ContentTypeForMediaTypeResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts new file mode 100644 index 0000000000..a6305256c5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeSortModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + +export type MediaTypeSortModel = { + mediaType: ReferenceByIdModel; + sortOrder: number; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts index 45aefb57cb..8455663b94 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaTypeTreeItemResponseModel.ts @@ -6,5 +6,6 @@ import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; export type MediaTypeTreeItemResponseModel = (FolderTreeItemResponseModel & { -icon: string; + icon: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts index 9f55e16553..c65ef62bb0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaValueModel.ts @@ -6,3 +6,4 @@ import type { ValueModelBaseModel } from './ValueModelBaseModel'; export type MediaValueModel = ValueModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts index 74ab9ac92d..8b6bc1f2e4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantRequestModel.ts @@ -6,3 +6,4 @@ import type { VariantModelBaseModel } from './VariantModelBaseModel'; export type MediaVariantRequestModel = VariantModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts index a00851d22c..5934131d3e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaVariantResponseModel.ts @@ -6,3 +6,4 @@ import type { VariantResponseModelBaseModel } from './VariantResponseModelBaseModel'; export type MediaVariantResponseModel = VariantResponseModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts index 81fa25eb8b..690f274951 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberGroupItemResponseModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + +export type MemberGroupItemResponseModel = NamedItemResponseModelBaseModel; -export type MemberGroupItemResponseModel = ItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts index 0643b30939..15607126e2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberItemResponseModel.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; -export type MemberItemResponseModel = (ItemResponseModelBaseModel & { -icon?: string | null; +export type MemberItemResponseModel = (NamedItemResponseModelBaseModel & { + icon?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts index 7f0d414a5b..846b1d2159 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MemberTypeItemResponseModel.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; -export type MemberTypeItemResponseModel = (ItemResponseModelBaseModel & { -icon?: string | null; +export type MemberTypeItemResponseModel = (NamedItemResponseModelBaseModel & { + icon?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts index 492bf6420f..d5e29920fa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ModelsBuilderResponseModel.ts @@ -14,3 +14,4 @@ export type ModelsBuilderResponseModel = { modelsNamespace?: string | null; trackingOutOfDateModels: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts index be2bcd9a8b..9d63dde08c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDataTypeRequestModel.ts @@ -6,3 +6,4 @@ export type MoveDataTypeRequestModel = { targetId?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts index 0787659d09..a55c6877a2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDictionaryRequestModel.ts @@ -6,3 +6,4 @@ export type MoveDictionaryRequestModel = { targetId?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts index 36630780f9..0dd9fe3ca0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentRequestModel.ts @@ -3,6 +3,9 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveDocumentRequestModel = { - targetId?: string | null; + target?: ReferenceByIdModel | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts index ac8f344a4f..b61b053f9d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveDocumentTypeRequestModel.ts @@ -3,7 +3,9 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveDocumentTypeRequestModel = { - targetId?: string | null; + target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts index 487a8e6911..caea949b55 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaRequestModel.ts @@ -3,6 +3,9 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveMediaRequestModel = { - targetId?: string | null; + target?: ReferenceByIdModel | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts index ea0f0e56ed..d3b5a7c349 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MoveMediaTypeRequestModel.ts @@ -3,7 +3,9 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type MoveMediaTypeRequestModel = { - targetId?: string | null; + target?: ReferenceByIdModel | null; }; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts new file mode 100644 index 0000000000..b46ea3126a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedEntityTreeItemResponseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; + +export type NamedEntityTreeItemResponseModel = (EntityTreeItemResponseModel & { + name: string; +}); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts new file mode 100644 index 0000000000..d7a2882b2c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NamedItemResponseModelBaseModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type NamedItemResponseModelBaseModel = { + id: string; + name: string; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts index cb92a099d4..c40acbeaf2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ObjectTypeResponseModel.ts @@ -7,3 +7,4 @@ export type ObjectTypeResponseModel = { name?: string | null; id: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts index 4f2455f202..a199ea6e61 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OkResult.ts @@ -6,3 +6,4 @@ export type OkResult = { statusCode: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts index b213d4c4ef..59c7d9adab 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/OutOfDateStatusResponseModel.ts @@ -8,3 +8,4 @@ import type { OutOfDateTypeModel } from './OutOfDateTypeModel'; export type OutOfDateStatusResponseModel = { status: OutOfDateTypeModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts index f023f9d6eb..f5248ab237 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageDefinitionResponseModel.ts @@ -6,6 +6,7 @@ import type { PackageModelBaseModel } from './PackageModelBaseModel'; export type PackageDefinitionResponseModel = (PackageModelBaseModel & { -id: string; -packagePath: string; + id: string; + packagePath: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts index 92a4b66230..c247a475af 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts @@ -8,3 +8,4 @@ export type PackageManifestResponseModel = { version?: string | null; extensions: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts index c5f667f4b2..fa38491d4b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageMigrationStatusResponseModel.ts @@ -7,3 +7,4 @@ export type PackageMigrationStatusResponseModel = { packageName: string; hasPendingMigrations: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts index 3c3ff2db0f..71ee36a68b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageModelBaseModel.ts @@ -19,3 +19,4 @@ export type PackageModelBaseModel = { languages: Array; dictionaryItems: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts index 6a066f18fd..9dcaf0c733 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogResponseModel.ts @@ -9,3 +9,4 @@ export type PagedAuditLogResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts index 42efe9e7e1..5ff9186405 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAuditLogWithUsernameResponseModel.ts @@ -9,3 +9,4 @@ export type PagedAuditLogWithUsernameResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts index 03f9ee5c18..437ec404fa 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedCultureReponseModel.ts @@ -9,3 +9,4 @@ export type PagedCultureReponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts index b8cb650392..fd81a53b86 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDataTypeTreeItemResponseModel.ts @@ -9,3 +9,4 @@ export type PagedDataTypeTreeItemResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts index 519036636d..7ce857aa31 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDictionaryOverviewResponseModel.ts @@ -9,3 +9,4 @@ export type PagedDictionaryOverviewResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts index a29f7755d0..9bf8a5c863 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentBlueprintTreeItemResponseModel.ts @@ -9,3 +9,4 @@ export type PagedDocumentBlueprintTreeItemResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts new file mode 100644 index 0000000000..1a6958d31f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentRecycleBinItemResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DocumentRecycleBinItemResponseModel } from './DocumentRecycleBinItemResponseModel'; + +export type PagedDocumentRecycleBinItemResponseModel = { + total: number; + items: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts index 3e8adf405e..2399cfc00c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTreeItemResponseModel.ts @@ -9,3 +9,4 @@ export type PagedDocumentTreeItemResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts index 062633b222..ca9a43dd71 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts @@ -9,3 +9,4 @@ export type PagedDocumentTypeResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts index d7dd2018d4..4f40e9efe9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeTreeItemResponseModel.ts @@ -9,3 +9,4 @@ export type PagedDocumentTypeTreeItemResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts deleted file mode 100644 index d6bef5d912..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedEntityTreeItemResponseModel.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; -import type { DataTypeTreeItemResponseModel } from './DataTypeTreeItemResponseModel'; -import type { DocumentBlueprintTreeItemResponseModel } from './DocumentBlueprintTreeItemResponseModel'; -import type { DocumentTreeItemResponseModel } from './DocumentTreeItemResponseModel'; -import type { DocumentTypeTreeItemResponseModel } from './DocumentTypeTreeItemResponseModel'; -import type { EntityTreeItemResponseModel } from './EntityTreeItemResponseModel'; -import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; -import type { MediaTreeItemResponseModel } from './MediaTreeItemResponseModel'; -import type { MediaTypeTreeItemResponseModel } from './MediaTypeTreeItemResponseModel'; - -export type PagedEntityTreeItemResponseModel = { - total: number; - items: Array<(EntityTreeItemResponseModel | ContentTreeItemResponseModel | DataTypeTreeItemResponseModel | DocumentBlueprintTreeItemResponseModel | DocumentTreeItemResponseModel | DocumentTypeTreeItemResponseModel | FolderTreeItemResponseModel | MediaTreeItemResponseModel | MediaTypeTreeItemResponseModel)>; -}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts index 894c7f5407..443c23df29 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedFileSystemTreeItemPresentationModel.ts @@ -9,3 +9,4 @@ export type PagedFileSystemTreeItemPresentationModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts index 2d837be56f..d93685d9d4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHealthCheckGroupResponseModel.ts @@ -9,3 +9,4 @@ export type PagedHealthCheckGroupResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts index 4fbc3ba672..04c50d6e85 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedHelpPageResponseModel.ts @@ -9,3 +9,4 @@ export type PagedHelpPageResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts index eeadb6fd50..7c0c4638c3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedIndexResponseModel.ts @@ -9,3 +9,4 @@ export type PagedIndexResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts index 11ebfa641b..37fe3d3913 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLanguageResponseModel.ts @@ -9,3 +9,4 @@ export type PagedLanguageResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts index 42537c99ff..cf4fc66449 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogMessageResponseModel.ts @@ -9,3 +9,4 @@ export type PagedLogMessageResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts index 3d38f359b8..291011a872 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLogTemplateResponseModel.ts @@ -9,3 +9,4 @@ export type PagedLogTemplateResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts index ca927c7b3e..77083fc931 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedLoggerResponseModel.ts @@ -9,3 +9,4 @@ export type PagedLoggerResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts new file mode 100644 index 0000000000..1918188011 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaRecycleBinItemResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { MediaRecycleBinItemResponseModel } from './MediaRecycleBinItemResponseModel'; + +export type PagedMediaRecycleBinItemResponseModel = { + total: number; + items: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts index 148e0ef107..864dce738f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTreeItemResponseModel.ts @@ -9,3 +9,4 @@ export type PagedMediaTreeItemResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts index 9c79ecc991..d22af1c59c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedMediaTypeTreeItemResponseModel.ts @@ -9,3 +9,4 @@ export type PagedMediaTypeTreeItemResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts new file mode 100644 index 0000000000..8af4c598e0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedNamedEntityTreeItemResponseModel.ts @@ -0,0 +1,17 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DataTypeTreeItemResponseModel } from './DataTypeTreeItemResponseModel'; +import type { DocumentBlueprintTreeItemResponseModel } from './DocumentBlueprintTreeItemResponseModel'; +import type { DocumentTypeTreeItemResponseModel } from './DocumentTypeTreeItemResponseModel'; +import type { FolderTreeItemResponseModel } from './FolderTreeItemResponseModel'; +import type { MediaTypeTreeItemResponseModel } from './MediaTypeTreeItemResponseModel'; +import type { NamedEntityTreeItemResponseModel } from './NamedEntityTreeItemResponseModel'; + +export type PagedNamedEntityTreeItemResponseModel = { + total: number; + items: Array<(NamedEntityTreeItemResponseModel | DataTypeTreeItemResponseModel | DocumentBlueprintTreeItemResponseModel | DocumentTypeTreeItemResponseModel | FolderTreeItemResponseModel | MediaTypeTreeItemResponseModel)>; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts index fca658db05..77d8106b39 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedObjectTypeResponseModel.ts @@ -9,3 +9,4 @@ export type PagedObjectTypeResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts index f972bb31ad..e42eb299ee 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageDefinitionResponseModel.ts @@ -9,3 +9,4 @@ export type PagedPackageDefinitionResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts index 96b1150422..aa3f4f4ced 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedPackageMigrationStatusResponseModel.ts @@ -9,3 +9,4 @@ export type PagedPackageMigrationStatusResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts index 21dfd92bd2..5291741485 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedProblemDetailsModel.ts @@ -9,3 +9,4 @@ export type PagedProblemDetailsModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts deleted file mode 100644 index c8a37e4108..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRecycleBinItemResponseModel.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { RecycleBinItemResponseModel } from './RecycleBinItemResponseModel'; - -export type PagedRecycleBinItemResponseModel = { - total: number; - items: Array; -}; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts index 7aaabed52d..e749134ad3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRedirectUrlResponseModel.ts @@ -9,3 +9,4 @@ export type PagedRedirectUrlResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts index 21c2842c64..47e1960065 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationItemResponseModel.ts @@ -9,3 +9,4 @@ export type PagedRelationItemResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts index f88c351073..377517e398 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedRelationResponseModel.ts @@ -9,3 +9,4 @@ export type PagedRelationResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts index ab79aa441c..8eebf10ebc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSavedLogSearchResponseModel.ts @@ -9,3 +9,4 @@ export type PagedSavedLogSearchResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts index d3750e2f0a..233891717d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearchResultResponseModel.ts @@ -9,3 +9,4 @@ export type PagedSearchResultResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts index bf9894dada..c39bc2751e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedSearcherResponseModel.ts @@ -9,3 +9,4 @@ export type PagedSearcherResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts index 85eefdb74c..3134a3ee4f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTagResponseModel.ts @@ -9,3 +9,4 @@ export type PagedTagResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts index c47f7fe12f..0bcd9b1d9a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedTelemetryResponseModel.ts @@ -9,3 +9,4 @@ export type PagedTelemetryResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts index 533352e2f3..a1bf825127 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserGroupResponseModel.ts @@ -9,3 +9,4 @@ export type PagedUserGroupResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts index d365e899ae..06fbaf0d50 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedUserResponseModel.ts @@ -9,3 +9,4 @@ export type PagedUserResponseModel = { total: number; items: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts index 30611f68df..0e4707e702 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PartialViewSnippetItemResponseModel.ts @@ -7,3 +7,4 @@ export type PartialViewSnippetItemResponseModel = { id: string; name: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts index 0b74508810..5c48e0da66 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusRequestModel.ts @@ -6,3 +6,4 @@ export type ProfilingStatusRequestModel = { enabled: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts index 52924fa000..8717638558 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ProfilingStatusResponseModel.ts @@ -6,3 +6,4 @@ export type ProfilingStatusResponseModel = { enabled: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts index 6762244b28..f690a3f46c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeAppearanceModel.ts @@ -6,3 +6,4 @@ export type PropertyTypeAppearanceModel = { labelOnTop: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts index ec8efe30de..6009b9eefb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeContainerModelBaseModel.ts @@ -3,10 +3,13 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; + export type PropertyTypeContainerModelBaseModel = { id: string; - parentId?: string | null; + parent?: ReferenceByIdModel | null; name?: string | null; type: string; sortOrder: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts index 0f4e010b14..46d414389d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeModelBaseModel.ts @@ -5,17 +5,19 @@ import type { PropertyTypeAppearanceModel } from './PropertyTypeAppearanceModel'; import type { PropertyTypeValidationModel } from './PropertyTypeValidationModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; export type PropertyTypeModelBaseModel = { id: string; - containerId?: string | null; + container?: ReferenceByIdModel | null; sortOrder: number; alias: string; name: string; description?: string | null; - dataTypeId: string; + dataType: ReferenceByIdModel; variesByCulture: boolean; variesBySegment: boolean; validation: PropertyTypeValidationModel; appearance: PropertyTypeAppearanceModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts index cf34459c15..fda613e272 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PropertyTypeValidationModel.ts @@ -9,3 +9,4 @@ export type PropertyTypeValidationModel = { regEx?: string | null; regExMessage?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts index bbae480c80..95c376a9b8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessBaseModel.ts @@ -7,3 +7,4 @@ export type PublicAccessBaseModel = { loginPageId: string; errorPageId: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts index 31fc5d5e4a..60f518c835 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessRequestModel.ts @@ -6,6 +6,7 @@ import type { PublicAccessBaseModel } from './PublicAccessBaseModel'; export type PublicAccessRequestModel = (PublicAccessBaseModel & { -memberUserNames: Array; -memberGroupNames: Array; + memberUserNames: Array; + memberGroupNames: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts index 5504449d82..f6b2145385 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublicAccessResponseModel.ts @@ -8,6 +8,7 @@ import type { MemberItemResponseModel } from './MemberItemResponseModel'; import type { PublicAccessBaseModel } from './PublicAccessBaseModel'; export type PublicAccessResponseModel = (PublicAccessBaseModel & { -members: Array; -groups: Array; + members: Array; + groups: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts index 3057b14eb9..18355d089b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentRequestModel.ts @@ -6,3 +6,4 @@ export type PublishDocumentRequestModel = { cultures: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts index 141737e557..270f4d9c43 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishDocumentWithDescendantsRequestModel.ts @@ -6,5 +6,6 @@ import type { PublishDocumentRequestModel } from './PublishDocumentRequestModel'; export type PublishDocumentWithDescendantsRequestModel = (PublishDocumentRequestModel & { -includeUnpublishedDescendants: boolean; + includeUnpublishedDescendants: boolean; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishedStateModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishedStateModel.ts deleted file mode 100644 index 30b0c07b45..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PublishedStateModel.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -export enum PublishedStateModel { - PUBLISHED = 'Published', - UNPUBLISHED = 'Unpublished', - PUBLISHING = 'Publishing', - UNPUBLISHING = 'Unpublishing', -} diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts new file mode 100644 index 0000000000..2666184305 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RecycleBinItemResponseModelBaseModel.ts @@ -0,0 +1,14 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ItemReferenceByIdResponseModel } from './ItemReferenceByIdResponseModel'; + +export type RecycleBinItemResponseModelBaseModel = { + id: string; + type: string; + hasChildren: boolean; + parent?: ItemReferenceByIdResponseModel | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts index 59247cb71f..22d2ff41b8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlResponseModel.ts @@ -11,3 +11,4 @@ export type RedirectUrlResponseModel = { contentId: string; culture?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts index b508ad3c69..ee5065a2a0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RedirectUrlStatusResponseModel.ts @@ -9,3 +9,4 @@ export type RedirectUrlStatusResponseModel = { status: RedirectStatusModel; userIsAdmin: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts new file mode 100644 index 0000000000..5085db2e12 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ReferenceByIdModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ReferenceByIdModel = { + id: string; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts index d416deaada..48a8302000 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationItemResponseModel.ts @@ -15,3 +15,4 @@ export type RelationItemResponseModel = { relationTypeIsBidirectional: boolean; relationTypeIsDependency: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts index 7aadac76cd..af7f600b3c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationResponseModel.ts @@ -11,3 +11,4 @@ export type RelationResponseModel = { createDate: string; comment?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts index 4bc295f8e7..93275aa12f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeBaseModel.ts @@ -10,3 +10,4 @@ export type RelationTypeBaseModel = { childObjectType?: string | null; isDependency: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts index a24ffdf31d..f156f0987d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeItemResponseModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + +export type RelationTypeItemResponseModel = NamedItemResponseModelBaseModel; -export type RelationTypeItemResponseModel = ItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts index 631cd5bc22..990febe8b7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/RelationTypeResponseModel.ts @@ -6,10 +6,11 @@ import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; export type RelationTypeResponseModel = (RelationTypeBaseModel & { -id: string; -alias?: string | null; -path: string; -isSystemRelationType: boolean; -parentObjectTypeName?: string | null; -childObjectTypeName?: string | null; + id: string; + alias?: string | null; + path: string; + isSystemRelationType: boolean; + parentObjectTypeName?: string | null; + childObjectTypeName?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts index be55852f21..08258d5a05 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResendInviteUserRequestModel.ts @@ -7,3 +7,4 @@ export type ResendInviteUserRequestModel = { userId: string; message?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts index 39cb212ef6..efe0818403 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordRequestModel.ts @@ -6,3 +6,4 @@ export type ResetPasswordRequestModel = { email: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts index e0f4c93d93..513669862d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ResetPasswordTokenRequestModel.ts @@ -6,5 +6,6 @@ import type { VerifyResetPasswordTokenRequestModel } from './VerifyResetPasswordTokenRequestModel'; export type ResetPasswordTokenRequestModel = (VerifyResetPasswordTokenRequestModel & { -password: string; + password: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts index 7621584428..8e8e032cf0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchPresenationBaseModel.ts @@ -7,3 +7,4 @@ export type SavedLogSearchPresenationBaseModel = { name: string; query: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts index 82c8b8cc7d..c73ea6edcf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchRequestModel.ts @@ -6,3 +6,4 @@ import type { SavedLogSearchPresenationBaseModel } from './SavedLogSearchPresenationBaseModel'; export type SavedLogSearchRequestModel = SavedLogSearchPresenationBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts index a50bec2f5b..764e26b616 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SavedLogSearchResponseModel.ts @@ -6,3 +6,4 @@ import type { SavedLogSearchPresenationBaseModel } from './SavedLogSearchPresenationBaseModel'; export type SavedLogSearchResponseModel = SavedLogSearchPresenationBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts index 4754293aa4..4e44168a7a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearchResultResponseModel.ts @@ -11,3 +11,4 @@ export type SearchResultResponseModel = { readonly fieldCount: number; fields: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts index 503de69d84..0515d91ea8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SearcherResponseModel.ts @@ -6,3 +6,4 @@ export type SearcherResponseModel = { name: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts index d7d0f128a2..4e97e60583 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerConfigurationItemResponseModel.ts @@ -7,3 +7,4 @@ export type ServerConfigurationItemResponseModel = { name: string; data: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts index 443adf3c64..3625d63958 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerInformationResponseModel.ts @@ -11,3 +11,4 @@ export type ServerInformationResponseModel = { baseUtcOffset: string; runtimeMode: RuntimeModeModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts index 2927fb1143..2c92b763bf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ServerStatusResponseModel.ts @@ -8,3 +8,4 @@ import type { RuntimeLevelModel } from './RuntimeLevelModel'; export type ServerStatusResponseModel = { serverStatus: RuntimeLevelModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts index f6f631ba60..767ffe2809 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetAvatarRequestModel.ts @@ -6,3 +6,4 @@ export type SetAvatarRequestModel = { fileId: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts index d9dd413b92..b92400222f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SetTourStatusRequestModel.ts @@ -6,3 +6,4 @@ import type { TourStatusModel } from './TourStatusModel'; export type SetTourStatusRequestModel = TourStatusModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts index 1b54b780a7..794198a0d3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/SortingRequestModel.ts @@ -9,3 +9,4 @@ export type SortingRequestModel = { parentId?: string | null; sorting: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts index 0b577c8dd1..4b2b6a2bcc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TagResponseModel.ts @@ -9,3 +9,4 @@ export type TagResponseModel = { group?: string | null; nodeCount: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts index 2283988342..fb7b6286a9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRepresentationBaseModel.ts @@ -8,3 +8,4 @@ import type { TelemetryLevelModel } from './TelemetryLevelModel'; export type TelemetryRepresentationBaseModel = { telemetryLevel: TelemetryLevelModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts index 3a745afcd8..4038ab5922 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryRequestModel.ts @@ -6,3 +6,4 @@ import type { TelemetryRepresentationBaseModel } from './TelemetryRepresentationBaseModel'; export type TelemetryRequestModel = TelemetryRepresentationBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts index 57aef89262..6845564be7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TelemetryResponseModel.ts @@ -6,3 +6,4 @@ import type { TelemetryRepresentationBaseModel } from './TelemetryRepresentationBaseModel'; export type TelemetryResponseModel = TelemetryRepresentationBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts index 3efc90c12f..dc6a62ed51 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateItemResponseModel.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; -export type TemplateItemResponseModel = (ItemResponseModelBaseModel & { -alias: string; +export type TemplateItemResponseModel = (NamedItemResponseModelBaseModel & { + alias: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts index ad404247f4..788f0cfcd9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateModelBaseModel.ts @@ -8,3 +8,4 @@ export type TemplateModelBaseModel = { alias: string; content?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts index 25b146a205..fa39f4da74 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteFilterPresentationModel.ts @@ -10,3 +10,4 @@ export type TemplateQueryExecuteFilterPresentationModel = { constraintValue: string; operator: OperatorModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts index ade50a2bc6..f241c088f5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteModel.ts @@ -13,3 +13,4 @@ export type TemplateQueryExecuteModel = { sort?: TemplateQueryExecuteSortModel | null; take: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts index 5f7404651e..7632a9c9a9 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryExecuteSortModel.ts @@ -7,3 +7,4 @@ export type TemplateQueryExecuteSortModel = { propertyAlias: string; direction?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts index 1ee2791623..1b5dbb4fbd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryOperatorModel.ts @@ -10,3 +10,4 @@ export type TemplateQueryOperatorModel = { operator: OperatorModel; applicableTypes: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts index 25ce716c8e..7d5c5c3d80 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryPropertyPresentationModel.ts @@ -9,3 +9,4 @@ export type TemplateQueryPropertyPresentationModel = { alias: string; type: TemplateQueryPropertyTypeModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts index 5e2f20d647..428789e6e3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultItemPresentationModel.ts @@ -7,3 +7,4 @@ export type TemplateQueryResultItemPresentationModel = { icon: string; name: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts index d4b8842068..6031658215 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQueryResultResponseModel.ts @@ -11,3 +11,4 @@ export type TemplateQueryResultResponseModel = { resultCount: number; executionTime: number; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts index b95e719a09..bd203fffaf 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateQuerySettingsResponseModel.ts @@ -11,3 +11,4 @@ export type TemplateQuerySettingsResponseModel = { properties: Array; operators: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts index fdedddabc2..8bb31d576a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateResponseModel.ts @@ -6,6 +6,7 @@ import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; export type TemplateResponseModel = (TemplateModelBaseModel & { -id: string; -masterTemplateId?: string | null; + id: string; + masterTemplateId?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts index 5c469e0c80..ca6dd8badb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateScaffoldResponseModel.ts @@ -6,3 +6,4 @@ export type TemplateScaffoldResponseModel = { content: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts index d9b46f7b5b..81b830ed48 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemporaryFileResponseModel.ts @@ -8,3 +8,4 @@ export type TemporaryFileResponseModel = { availableUntil?: string | null; fileName: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts index 9f3b56bf68..cc941f5b6e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TourStatusModel.ts @@ -8,3 +8,4 @@ export type TourStatusModel = { completed: boolean; disabled: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts index f10812b402..b6e40540ce 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TreeItemPresentationModel.ts @@ -4,7 +4,7 @@ /* eslint-disable */ export type TreeItemPresentationModel = { - name: string; type: string; hasChildren: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts index c2a505eb89..b3b7422b4d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnlockUsersRequestModel.ts @@ -6,3 +6,4 @@ export type UnlockUsersRequestModel = { userIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts index 60b14d8e2a..9d603f6694 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UnpublishDocumentRequestModel.ts @@ -6,3 +6,4 @@ export type UnpublishDocumentRequestModel = { culture?: string | null; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts index db20ebd0cf..914404a689 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForDocumentRequestModel.ts @@ -10,3 +10,4 @@ export type UpdateContentForDocumentRequestModel = { values: Array; variants: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts index afe323d4ea..9abbcea7e2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentForMediaRequestModel.ts @@ -10,3 +10,4 @@ export type UpdateContentForMediaRequestModel = { values: Array; variants: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts index a129a8ada5..752409e225 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForDocumentTypeRequestModel.ts @@ -3,8 +3,6 @@ /* tslint:disable */ /* eslint-disable */ -import type { ContentTypeCompositionModel } from './ContentTypeCompositionModel'; -import type { ContentTypeSortModel } from './ContentTypeSortModel'; import type { UpdateDocumentTypePropertyTypeContainerRequestModel } from './UpdateDocumentTypePropertyTypeContainerRequestModel'; import type { UpdateDocumentTypePropertyTypeRequestModel } from './UpdateDocumentTypePropertyTypeRequestModel'; @@ -19,6 +17,5 @@ export type UpdateContentTypeForDocumentTypeRequestModel = { isElement: boolean; properties: Array; containers: Array; - allowedContentTypes: Array; - compositions: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts index 22c061ac82..40e766fdcc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateContentTypeForMediaTypeRequestModel.ts @@ -3,8 +3,6 @@ /* tslint:disable */ /* eslint-disable */ -import type { ContentTypeCompositionModel } from './ContentTypeCompositionModel'; -import type { ContentTypeSortModel } from './ContentTypeSortModel'; import type { UpdateMediaTypePropertyTypeContainerRequestModel } from './UpdateMediaTypePropertyTypeContainerRequestModel'; import type { UpdateMediaTypePropertyTypeRequestModel } from './UpdateMediaTypePropertyTypeRequestModel'; @@ -19,6 +17,5 @@ export type UpdateContentTypeForMediaTypeRequestModel = { isElement: boolean; properties: Array; containers: Array; - allowedContentTypes: Array; - compositions: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts index 9978aba3e3..635cf63785 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDataTypeRequestModel.ts @@ -6,3 +6,4 @@ import type { DataTypeModelBaseModel } from './DataTypeModelBaseModel'; export type UpdateDataTypeRequestModel = DataTypeModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts index c40356ac92..1348c0ca10 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDictionaryItemRequestModel.ts @@ -6,3 +6,4 @@ import type { DictionaryItemModelBaseModel } from './DictionaryItemModelBaseModel'; export type UpdateDictionaryItemRequestModel = DictionaryItemModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts index 87870af9b6..d8f77ed0ec 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentNotificationsRequestModel.ts @@ -6,3 +6,4 @@ export type UpdateDocumentNotificationsRequestModel = { subscribedActionIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts index 610cc928b7..75b04656c5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentRequestModel.ts @@ -3,8 +3,10 @@ /* tslint:disable */ /* eslint-disable */ +import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateContentForDocumentRequestModel } from './UpdateContentForDocumentRequestModel'; export type UpdateDocumentRequestModel = (UpdateContentForDocumentRequestModel & { -templateId?: string | null; + template?: ReferenceByIdModel | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts index 7e7ff1927e..a5b9b39f26 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeContainerRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type UpdateDocumentTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts index 0b2283049e..ef34f46fe6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypePropertyTypeRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type UpdateDocumentTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts index 3cf434f50d..100ddcc421 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDocumentTypeRequestModel.ts @@ -4,10 +4,16 @@ /* eslint-disable */ import type { ContentTypeCleanupModel } from './ContentTypeCleanupModel'; +import type { DocumentTypeCompositionModel } from './DocumentTypeCompositionModel'; +import type { DocumentTypeSortModel } from './DocumentTypeSortModel'; +import type { ReferenceByIdModel } from './ReferenceByIdModel'; import type { UpdateContentTypeForDocumentTypeRequestModel } from './UpdateContentTypeForDocumentTypeRequestModel'; export type UpdateDocumentTypeRequestModel = (UpdateContentTypeForDocumentTypeRequestModel & { -allowedTemplateIds: Array; -defaultTemplateId?: string | null; -cleanup: ContentTypeCleanupModel; + allowedTemplates: Array; + defaultTemplate?: ReferenceByIdModel | null; + cleanup: ContentTypeCleanupModel; + allowedDocumentTypes: Array; + compositions: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts index 3d3c549ae7..2b35548f52 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateDomainsRequestModel.ts @@ -6,3 +6,4 @@ import type { DomainsPresentationModelBaseModel } from './DomainsPresentationModelBaseModel'; export type UpdateDomainsRequestModel = DomainsPresentationModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts index edc45ec4b7..d5efa20832 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateFolderResponseModel.ts @@ -6,3 +6,4 @@ import type { FolderModelBaseModel } from './FolderModelBaseModel'; export type UpdateFolderResponseModel = FolderModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts index d615a63913..9b4c7f6c2a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateLanguageRequestModel.ts @@ -6,3 +6,4 @@ import type { LanguageModelBaseModel } from './LanguageModelBaseModel'; export type UpdateLanguageRequestModel = LanguageModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts index 83d3b927f1..66f8fcd3ca 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaRequestModel.ts @@ -6,3 +6,4 @@ import type { UpdateContentForMediaRequestModel } from './UpdateContentForMediaRequestModel'; export type UpdateMediaRequestModel = UpdateContentForMediaRequestModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts index 72a97d0889..784c0540ad 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeContainerModelBaseModel } from './PropertyTypeContainerModelBaseModel'; export type UpdateMediaTypePropertyTypeContainerRequestModel = PropertyTypeContainerModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts index e4c5ceba6c..01c5dca483 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.ts @@ -6,3 +6,4 @@ import type { PropertyTypeModelBaseModel } from './PropertyTypeModelBaseModel'; export type UpdateMediaTypePropertyTypeRequestModel = PropertyTypeModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts index f6c10d3ed6..25341fe97d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateMediaTypeRequestModel.ts @@ -3,6 +3,12 @@ /* tslint:disable */ /* eslint-disable */ +import type { MediaTypeCompositionModel } from './MediaTypeCompositionModel'; +import type { MediaTypeSortModel } from './MediaTypeSortModel'; import type { UpdateContentTypeForMediaTypeRequestModel } from './UpdateContentTypeForMediaTypeRequestModel'; -export type UpdateMediaTypeRequestModel = UpdateContentTypeForMediaTypeRequestModel; +export type UpdateMediaTypeRequestModel = (UpdateContentTypeForMediaTypeRequestModel & { + allowedMediaTypes: Array; + compositions: Array; +}); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts index 7e2707f1ab..c77502d8d6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdatePackageRequestModel.ts @@ -6,5 +6,6 @@ import type { PackageModelBaseModel } from './PackageModelBaseModel'; export type UpdatePackageRequestModel = (PackageModelBaseModel & { -packagePath: string; + packagePath: string; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts index 736db188a2..9311e54c4c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateRelationTypeRequestModel.ts @@ -6,3 +6,4 @@ import type { RelationTypeBaseModel } from './RelationTypeBaseModel'; export type UpdateRelationTypeRequestModel = RelationTypeBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts index 70dd58fe7f..a4a734154c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateTemplateRequestModel.ts @@ -6,3 +6,4 @@ import type { TemplateModelBaseModel } from './TemplateModelBaseModel'; export type UpdateTemplateRequestModel = TemplateModelBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts index 64311e6d95..f6f7cecb2d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupRequestModel.ts @@ -6,3 +6,4 @@ import type { UserGroupBaseModel } from './UserGroupBaseModel'; export type UpdateUserGroupRequestModel = UserGroupBaseModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts index cec0d70470..181ce870fe 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserGroupsOnUserRequestModel.ts @@ -7,3 +7,4 @@ export type UpdateUserGroupsOnUserRequestModel = { userIds: Array; userGroupIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts index 2550ddccb0..7be15f116c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpdateUserRequestModel.ts @@ -6,7 +6,8 @@ import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; export type UpdateUserRequestModel = (UserPresentationBaseModel & { -languageIsoCode: string; -contentStartNodeIds: Array; -mediaStartNodeIds: Array; + languageIsoCode: string; + contentStartNodeIds: Array; + mediaStartNodeIds: Array; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts index df5d70e8a8..8c003c6cc2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UpgradeSettingsResponseModel.ts @@ -10,3 +10,4 @@ export type UpgradeSettingsResponseModel = { oldVersion: string; readonly reportUrl: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts index 3c96586b12..571c24d641 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupBaseModel.ts @@ -15,3 +15,4 @@ export type UserGroupBaseModel = { mediaRootAccess: boolean; permissions: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts index b0670f6efa..8ded3fdf6e 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupItemResponseModel.ts @@ -3,8 +3,9 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; -export type UserGroupItemResponseModel = (ItemResponseModelBaseModel & { -icon?: string | null; +export type UserGroupItemResponseModel = (NamedItemResponseModelBaseModel & { + icon?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts index a82a10312a..04526f66a1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserGroupResponseModel.ts @@ -6,6 +6,7 @@ import type { UserGroupBaseModel } from './UserGroupBaseModel'; export type UserGroupResponseModel = (UserGroupBaseModel & { -id: string; -isSystemGroup: boolean; + id: string; + isSystemGroup: boolean; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts index 7849e52242..b43964ffd1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserInstallResponseModel.ts @@ -9,3 +9,4 @@ export type UserInstallResponseModel = { password: string; readonly subscribeToNewsletter: boolean; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts index 9333611789..fbe9a652d8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserItemResponseModel.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; +import type { NamedItemResponseModelBaseModel } from './NamedItemResponseModelBaseModel'; + +export type UserItemResponseModel = NamedItemResponseModelBaseModel; -export type UserItemResponseModel = ItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts index 5333844056..d154d2e05d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionModel.ts @@ -7,3 +7,4 @@ export type UserPermissionModel = { nodeKey: string; permissions: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts index 3e63759f0f..7dfc2edb5a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPermissionsResponseModel.ts @@ -8,3 +8,4 @@ import type { UserPermissionModel } from './UserPermissionModel'; export type UserPermissionsResponseModel = { permissions: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts index 7e559d5e69..13a3b9e8a7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserPresentationBaseModel.ts @@ -9,3 +9,4 @@ export type UserPresentationBaseModel = { name: string; userGroupIds: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts index eaf45f25dc..476b3a92b1 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserResponseModel.ts @@ -7,16 +7,17 @@ import type { UserPresentationBaseModel } from './UserPresentationBaseModel'; import type { UserStateModel } from './UserStateModel'; export type UserResponseModel = (UserPresentationBaseModel & { -id: string; -languageIsoCode?: string | null; -contentStartNodeIds: Array; -mediaStartNodeIds: Array; -avatarUrls: Array; -state: UserStateModel; -failedLoginAttempts: number; -createDate: string; -updateDate: string; -lastLoginDate?: string | null; -lastLockoutDate?: string | null; -lastPasswordChangeDate?: string | null; + id: string; + languageIsoCode?: string | null; + contentStartNodeIds: Array; + mediaStartNodeIds: Array; + avatarUrls: Array; + state: UserStateModel; + failedLoginAttempts: number; + createDate: string; + updateDate: string; + lastLoginDate?: string | null; + lastLockoutDate?: string | null; + lastPasswordChangeDate?: string | null; }); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts index 470aa4c5b9..b09ce82075 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserSettingsModel.ts @@ -10,3 +10,4 @@ export type UserSettingsModel = { minNonAlphaNumericLength: number; consentLevels: Array; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts index 3d3aefe868..be820dec20 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTourStatusesResponseModel.ts @@ -9,3 +9,4 @@ import type { TourStatusModel } from './TourStatusModel'; export type UserTourStatusesResponseModel = { tourStatuses: Array<(TourStatusModel | SetTourStatusRequestModel)>; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts index a54ec8de85..6fef1698f5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ValueModelBaseModel.ts @@ -9,3 +9,4 @@ export type ValueModelBaseModel = { alias: string; value?: any; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts similarity index 57% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts index 51552fb5f9..69cedc9460 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantTreeItemModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts @@ -3,10 +3,11 @@ /* tslint:disable */ /* eslint-disable */ -import type { PublishedStateModel } from './PublishedStateModel'; +import type { ContentStateModel } from './ContentStateModel'; -export type VariantTreeItemModel = { +export type VariantItemResponseModel = { name: string; culture?: string | null; - state: PublishedStateModel; + state: ContentStateModel; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts index 9ef0deddd0..fc747713b2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantModelBaseModel.ts @@ -8,3 +8,4 @@ export type VariantModelBaseModel = { segment?: string | null; name: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts index 812dfa9056..62e1eea854 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantResponseModelBaseModel.ts @@ -10,3 +10,4 @@ export type VariantResponseModelBaseModel = { createDate: string; updateDate: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts index c5f8063e84..591a6e44ef 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserRequestModel.ts @@ -7,3 +7,4 @@ export type VerifyInviteUserRequestModel = { userId: string; token: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts index 3450fd521c..f0c283b399 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.ts @@ -7,3 +7,4 @@ export type VerifyResetPasswordTokenRequestModel = { userId: string; resetCode: string; }; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts index 115a88e983..b83d457350 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/AuditLogResource.ts @@ -18,16 +18,16 @@ export class AuditLogResource { * @throws ApiError */ public static getAuditLog({ -orderDirection, -sinceDate, -skip, -take = 100, -}: { -orderDirection?: DirectionModel, -sinceDate?: string, -skip?: number, -take?: number, -}): CancelablePromise { + orderDirection, + sinceDate, + skip, + take = 100, + }: { + orderDirection?: DirectionModel, + sinceDate?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/audit-log', @@ -48,18 +48,18 @@ take?: number, * @throws ApiError */ public static getAuditLogById({ -id, -orderDirection, -sinceDate, -skip, -take = 100, -}: { -id: string, -orderDirection?: DirectionModel, -sinceDate?: string, -skip?: number, -take?: number, -}): CancelablePromise { + id, + orderDirection, + sinceDate, + skip, + take = 100, + }: { + id: string, + orderDirection?: DirectionModel, + sinceDate?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/audit-log/{id}', @@ -83,16 +83,16 @@ take?: number, * @throws ApiError */ public static getAuditLogTypeByLogType({ -logType, -sinceDate, -skip, -take = 100, -}: { -logType: AuditTypeModel, -sinceDate?: string, -skip?: number, -take?: number, -}): CancelablePromise { + logType, + sinceDate, + skip, + take = 100, + }: { + logType: AuditTypeModel, + sinceDate?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/audit-log/type/{logType}', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts index 7f4634a035..9147291447 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/CultureResource.ts @@ -15,12 +15,12 @@ export class CultureResource { * @throws ApiError */ public static getCulture({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/culture', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts index 6e230f7b52..12caed8780 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts @@ -8,7 +8,7 @@ import type { DictionaryItemResponseModel } from '../models/DictionaryItemRespon import type { ImportDictionaryRequestModel } from '../models/ImportDictionaryRequestModel'; import type { MoveDictionaryRequestModel } from '../models/MoveDictionaryRequestModel'; import type { PagedDictionaryOverviewResponseModel } from '../models/PagedDictionaryOverviewResponseModel'; -import type { PagedEntityTreeItemResponseModel } from '../models/PagedEntityTreeItemResponseModel'; +import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { UpdateDictionaryItemRequestModel } from '../models/UpdateDictionaryItemRequestModel'; import type { CancelablePromise } from '../core/CancelablePromise'; @@ -236,7 +236,7 @@ export class DictionaryResource { } /** - * @returns PagedEntityTreeItemResponseModel Success + * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError */ public static getTreeDictionaryChildren({ @@ -247,7 +247,7 @@ export class DictionaryResource { parentId?: string, skip?: number, take?: number, - }): CancelablePromise { + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/dictionary/children', @@ -263,7 +263,7 @@ export class DictionaryResource { } /** - * @returns PagedEntityTreeItemResponseModel Success + * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError */ public static getTreeDictionaryRoot({ @@ -272,7 +272,7 @@ export class DictionaryResource { }: { skip?: number, take?: number, - }): CancelablePromise { + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/dictionary/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts index 0b4be9a492..d9db2af0ed 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentBlueprintResource.ts @@ -16,10 +16,10 @@ export class DocumentBlueprintResource { * @throws ApiError */ public static getDocumentBlueprintItem({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document-blueprint/item', @@ -37,12 +37,12 @@ id?: Array, * @throws ApiError */ public static getTreeDocumentBlueprintRoot({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document-blueprint/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index 4f29ffa5b1..069064cb14 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -9,9 +9,9 @@ import type { DocumentNotificationResponseModel } from '../models/DocumentNotifi import type { DocumentResponseModel } from '../models/DocumentResponseModel'; import type { DomainsResponseModel } from '../models/DomainsResponseModel'; import type { MoveDocumentRequestModel } from '../models/MoveDocumentRequestModel'; +import type { PagedDocumentRecycleBinItemResponseModel } from '../models/PagedDocumentRecycleBinItemResponseModel'; import type { PagedDocumentTreeItemResponseModel } from '../models/PagedDocumentTreeItemResponseModel'; import type { PagedDocumentTypeResponseModel } from '../models/PagedDocumentTypeResponseModel'; -import type { PagedRecycleBinItemResponseModel } from '../models/PagedRecycleBinItemResponseModel'; import type { PublicAccessRequestModel } from '../models/PublicAccessRequestModel'; import type { PublishDocumentRequestModel } from '../models/PublishDocumentRequestModel'; import type { PublishDocumentWithDescendantsRequestModel } from '../models/PublishDocumentWithDescendantsRequestModel'; @@ -32,10 +32,10 @@ export class DocumentResource { * @throws ApiError */ public static postDocument({ -requestBody, -}: { -requestBody?: CreateDocumentRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: CreateDocumentRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document', @@ -55,10 +55,10 @@ requestBody?: CreateDocumentRequestModel, * @throws ApiError */ public static getDocumentById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}', @@ -78,12 +78,12 @@ id: string, * @throws ApiError */ public static putDocumentById({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdateDocumentRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdateDocumentRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}', @@ -105,12 +105,12 @@ requestBody?: UpdateDocumentRequestModel, * @throws ApiError */ public static postDocumentByIdCopy({ -id, -requestBody, -}: { -id: string, -requestBody?: CopyDocumentRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: CopyDocumentRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document/{id}/copy', @@ -133,10 +133,10 @@ requestBody?: CopyDocumentRequestModel, * @throws ApiError */ public static getDocumentByIdDomains({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}/domains', @@ -155,12 +155,12 @@ id: string, * @throws ApiError */ public static putDocumentByIdDomains({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdateDomainsRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdateDomainsRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/domains', @@ -180,12 +180,12 @@ requestBody?: UpdateDomainsRequestModel, * @throws ApiError */ public static putDocumentByIdMove({ -id, -requestBody, -}: { -id: string, -requestBody?: MoveDocumentRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: MoveDocumentRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/move', @@ -207,10 +207,10 @@ requestBody?: MoveDocumentRequestModel, * @throws ApiError */ public static putDocumentByIdMoveToRecycleBin({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/move-to-recycle-bin', @@ -231,10 +231,10 @@ id: string, * @throws ApiError */ public static getDocumentByIdNotifications({ -id, -}: { -id: string, -}): CancelablePromise> { + id, + }: { + id: string, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}/notifications', @@ -254,12 +254,12 @@ id: string, * @throws ApiError */ public static putDocumentByIdNotifications({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdateDocumentNotificationsRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdateDocumentNotificationsRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/notifications', @@ -280,12 +280,12 @@ requestBody?: UpdateDocumentNotificationsRequestModel, * @throws ApiError */ public static postDocumentByIdPublicAccess({ -id, -requestBody, -}: { -id: string, -requestBody?: PublicAccessRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: PublicAccessRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -308,10 +308,10 @@ requestBody?: PublicAccessRequestModel, * @throws ApiError */ public static deleteDocumentByIdPublicAccess({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -327,14 +327,14 @@ id: string, } /** - * @returns void + * @returns void * @throws ApiError */ public static getDocumentByIdPublicAccess({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -354,12 +354,12 @@ id: string, * @throws ApiError */ public static putDocumentByIdPublicAccess({ -id, -requestBody, -}: { -id: string, -requestBody?: PublicAccessRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: PublicAccessRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/public-access', @@ -381,12 +381,12 @@ requestBody?: PublicAccessRequestModel, * @throws ApiError */ public static putDocumentByIdPublish({ -id, -requestBody, -}: { -id: string, -requestBody?: (PublishDocumentRequestModel | PublishDocumentWithDescendantsRequestModel), -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: (PublishDocumentRequestModel | PublishDocumentWithDescendantsRequestModel), + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/publish', @@ -409,12 +409,12 @@ requestBody?: (PublishDocumentRequestModel | PublishDocumentWithDescendantsReque * @throws ApiError */ public static putDocumentByIdPublishWithDescendants({ -id, -requestBody, -}: { -id: string, -requestBody?: PublishDocumentWithDescendantsRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: PublishDocumentWithDescendantsRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/publish-with-descendants', @@ -437,12 +437,12 @@ requestBody?: PublishDocumentWithDescendantsRequestModel, * @throws ApiError */ public static putDocumentByIdUnpublish({ -id, -requestBody, -}: { -id: string, -requestBody?: UnpublishDocumentRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UnpublishDocumentRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/{id}/unpublish', @@ -465,14 +465,14 @@ requestBody?: UnpublishDocumentRequestModel, * @throws ApiError */ public static getDocumentAllowedDocumentTypes({ -parentId, -skip, -take = 100, -}: { -parentId?: string, -skip?: number, -take?: number, -}): CancelablePromise { + parentId, + skip, + take = 100, + }: { + parentId?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/allowed-document-types', @@ -493,21 +493,15 @@ take?: number, * @throws ApiError */ public static getDocumentItem({ -id, -dataTypeId, -culture, -}: { -id?: Array, -dataTypeId?: string, -culture?: string, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/document/item', query: { 'id': id, - 'dataTypeId': dataTypeId, - 'culture': culture, }, errors: { 401: `The resource is protected and requires an authentication token`, @@ -520,10 +514,10 @@ culture?: string, * @throws ApiError */ public static putDocumentSort({ -requestBody, -}: { -requestBody?: SortingRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: SortingRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/document/sort', @@ -539,18 +533,34 @@ requestBody?: SortingRequestModel, } /** - * @returns PagedRecycleBinItemResponseModel Success + * @returns any Success + * @throws ApiError + */ + public static deleteRecycleBinDocument(): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/recycle-bin/document', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + }, + }); + } + + /** + * @returns PagedDocumentRecycleBinItemResponseModel Success * @throws ApiError */ public static getRecycleBinDocumentChildren({ -parentId, -skip, -take = 100, -}: { -parentId?: string, -skip?: number, -take?: number, -}): CancelablePromise { + parentId, + skip, + take = 100, + }: { + parentId?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/document/children', @@ -566,16 +576,16 @@ take?: number, } /** - * @returns PagedRecycleBinItemResponseModel Success + * @returns PagedDocumentRecycleBinItemResponseModel Success * @throws ApiError */ public static getRecycleBinDocumentRoot({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/document/root', @@ -594,18 +604,16 @@ take?: number, * @throws ApiError */ public static getTreeDocumentChildren({ -parentId, -skip, -take = 100, -dataTypeId, -culture, -}: { -parentId?: string, -skip?: number, -take?: number, -dataTypeId?: string, -culture?: string, -}): CancelablePromise { + parentId, + skip, + take = 100, + dataTypeId, + }: { + parentId?: string, + skip?: number, + take?: number, + dataTypeId?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document/children', @@ -614,7 +622,6 @@ culture?: string, 'skip': skip, 'take': take, 'dataTypeId': dataTypeId, - 'culture': culture, }, errors: { 401: `The resource is protected and requires an authentication token`, @@ -627,16 +634,14 @@ culture?: string, * @throws ApiError */ public static getTreeDocumentRoot({ -skip, -take = 100, -dataTypeId, -culture, -}: { -skip?: number, -take?: number, -dataTypeId?: string, -culture?: string, -}): CancelablePromise { + skip, + take = 100, + dataTypeId, + }: { + skip?: number, + take?: number, + dataTypeId?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/document/root', @@ -644,7 +649,6 @@ culture?: string, 'skip': skip, 'take': take, 'dataTypeId': dataTypeId, - 'culture': culture, }, errors: { 401: `The resource is protected and requires an authentication token`, diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts index 50cb70b19b..a7ba30030a 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HealthCheckResource.ts @@ -19,12 +19,12 @@ export class HealthCheckResource { * @throws ApiError */ public static getHealthCheckGroup({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/health-check-group', @@ -43,10 +43,10 @@ take?: number, * @throws ApiError */ public static getHealthCheckGroupByName({ -name, -}: { -name: string, -}): CancelablePromise { + name, + }: { + name: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/health-check-group/{name}', @@ -65,10 +65,10 @@ name: string, * @throws ApiError */ public static postHealthCheckGroupByNameCheck({ -name, -}: { -name: string, -}): CancelablePromise { + name, + }: { + name: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/health-check-group/{name}/check', @@ -87,10 +87,10 @@ name: string, * @throws ApiError */ public static postHealthCheckExecuteAction({ -requestBody, -}: { -requestBody?: HealthCheckActionRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: HealthCheckActionRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/health-check/execute-action', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts index 5401131d77..5a8f103da5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/HelpResource.ts @@ -15,18 +15,18 @@ export class HelpResource { * @throws ApiError */ public static getHelp({ -section, -tree, -skip, -take = 100, -baseUrl = 'https://our.umbraco.com', -}: { -section?: string, -tree?: string, -skip?: number, -take?: number, -baseUrl?: string, -}): CancelablePromise { + section, + tree, + skip, + take = 100, + baseUrl = 'https://our.umbraco.com', + }: { + section?: string, + tree?: string, + skip?: number, + take?: number, + baseUrl?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/help', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts index 74b8ef2abd..edd9f9661c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/IndexerResource.ts @@ -17,12 +17,12 @@ export class IndexerResource { * @throws ApiError */ public static getIndexer({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/indexer', @@ -41,10 +41,10 @@ take?: number, * @throws ApiError */ public static getIndexerByIndexName({ -indexName, -}: { -indexName: string, -}): CancelablePromise { + indexName, + }: { + indexName: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/indexer/{indexName}', @@ -63,10 +63,10 @@ indexName: string, * @throws ApiError */ public static postIndexerByIndexNameRebuild({ -indexName, -}: { -indexName: string, -}): CancelablePromise { + indexName, + }: { + indexName: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/indexer/{indexName}/rebuild', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts index 325dd1bf2a..822d97c535 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/InstallResource.ts @@ -32,10 +32,10 @@ export class InstallResource { * @throws ApiError */ public static postInstallSetup({ -requestBody, -}: { -requestBody?: InstallVResponseModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: InstallVResponseModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/install/setup', @@ -53,10 +53,10 @@ requestBody?: InstallVResponseModel, * @throws ApiError */ public static postInstallValidateDatabase({ -requestBody, -}: { -requestBody?: DatabaseInstallResponseModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: DatabaseInstallResponseModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/install/validate-database', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts index f4c5729553..5125a1feba 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LanguageResource.ts @@ -19,12 +19,12 @@ export class LanguageResource { * @throws ApiError */ public static getLanguage({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/language', @@ -43,10 +43,10 @@ take?: number, * @throws ApiError */ public static postLanguage({ -requestBody, -}: { -requestBody?: CreateLanguageRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: CreateLanguageRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/language', @@ -66,10 +66,10 @@ requestBody?: CreateLanguageRequestModel, * @throws ApiError */ public static getLanguageByIsoCode({ -isoCode, -}: { -isoCode: string, -}): CancelablePromise { + isoCode, + }: { + isoCode: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/language/{isoCode}', @@ -88,10 +88,10 @@ isoCode: string, * @throws ApiError */ public static deleteLanguageByIsoCode({ -isoCode, -}: { -isoCode: string, -}): CancelablePromise { + isoCode, + }: { + isoCode: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/language/{isoCode}', @@ -111,12 +111,12 @@ isoCode: string, * @throws ApiError */ public static putLanguageByIsoCode({ -isoCode, -requestBody, -}: { -isoCode: string, -requestBody?: UpdateLanguageRequestModel, -}): CancelablePromise { + isoCode, + requestBody, + }: { + isoCode: string, + requestBody?: UpdateLanguageRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/language/{isoCode}', @@ -138,10 +138,10 @@ requestBody?: UpdateLanguageRequestModel, * @throws ApiError */ public static getLanguageItem({ -isoCode, -}: { -isoCode?: Array, -}): CancelablePromise> { + isoCode, + }: { + isoCode?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/language/item', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts index 5a4cacd57a..136e84a465 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/LogViewerResource.ts @@ -23,12 +23,12 @@ export class LogViewerResource { * @throws ApiError */ public static getLogViewerLevel({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/level', @@ -47,12 +47,12 @@ take?: number, * @throws ApiError */ public static getLogViewerLevelCount({ -startDate, -endDate, -}: { -startDate?: string, -endDate?: string, -}): CancelablePromise { + startDate, + endDate, + }: { + startDate?: string, + endDate?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/level-count', @@ -72,22 +72,22 @@ endDate?: string, * @throws ApiError */ public static getLogViewerLog({ -skip, -take = 100, -orderDirection, -filterExpression, -logLevel, -startDate, -endDate, -}: { -skip?: number, -take?: number, -orderDirection?: DirectionModel, -filterExpression?: string, -logLevel?: Array, -startDate?: string, -endDate?: string, -}): CancelablePromise { + skip, + take = 100, + orderDirection, + filterExpression, + logLevel, + startDate, + endDate, + }: { + skip?: number, + take?: number, + orderDirection?: DirectionModel, + filterExpression?: string, + logLevel?: Array, + startDate?: string, + endDate?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/log', @@ -111,16 +111,16 @@ endDate?: string, * @throws ApiError */ public static getLogViewerMessageTemplate({ -skip, -take = 100, -startDate, -endDate, -}: { -skip?: number, -take?: number, -startDate?: string, -endDate?: string, -}): CancelablePromise { + skip, + take = 100, + startDate, + endDate, + }: { + skip?: number, + take?: number, + startDate?: string, + endDate?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/message-template', @@ -142,12 +142,12 @@ endDate?: string, * @throws ApiError */ public static getLogViewerSavedSearch({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/saved-search', @@ -166,10 +166,10 @@ take?: number, * @throws ApiError */ public static postLogViewerSavedSearch({ -requestBody, -}: { -requestBody?: SavedLogSearchRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: SavedLogSearchRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/log-viewer/saved-search', @@ -188,10 +188,10 @@ requestBody?: SavedLogSearchRequestModel, * @throws ApiError */ public static getLogViewerSavedSearchByName({ -name, -}: { -name: string, -}): CancelablePromise { + name, + }: { + name: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/saved-search/{name}', @@ -210,10 +210,10 @@ name: string, * @throws ApiError */ public static deleteLogViewerSavedSearchByName({ -name, -}: { -name: string, -}): CancelablePromise { + name, + }: { + name: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/log-viewer/saved-search/{name}', @@ -232,12 +232,12 @@ name: string, * @throws ApiError */ public static getLogViewerValidateLogsSize({ -startDate, -endDate, -}: { -startDate?: string, -endDate?: string, -}): CancelablePromise { + startDate, + endDate, + }: { + startDate?: string, + endDate?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/log-viewer/validate-logs-size', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts index 3924f325bf..e6413995a6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts @@ -3,12 +3,11 @@ /* tslint:disable */ /* eslint-disable */ import type { CreateMediaRequestModel } from '../models/CreateMediaRequestModel'; -import type { DocumentResponseModel } from '../models/DocumentResponseModel'; import type { MediaItemResponseModel } from '../models/MediaItemResponseModel'; -import type { MediaTreeItemResponseModel } from '../models/MediaTreeItemResponseModel'; +import type { MediaResponseModel } from '../models/MediaResponseModel'; import type { MoveMediaRequestModel } from '../models/MoveMediaRequestModel'; +import type { PagedMediaRecycleBinItemResponseModel } from '../models/PagedMediaRecycleBinItemResponseModel'; import type { PagedMediaTreeItemResponseModel } from '../models/PagedMediaTreeItemResponseModel'; -import type { PagedRecycleBinItemResponseModel } from '../models/PagedRecycleBinItemResponseModel'; import type { SortingRequestModel } from '../models/SortingRequestModel'; import type { UpdateMediaRequestModel } from '../models/UpdateMediaRequestModel'; @@ -23,10 +22,10 @@ export class MediaResource { * @throws ApiError */ public static postMedia({ -requestBody, -}: { -requestBody?: CreateMediaRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: CreateMediaRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/media', @@ -46,10 +45,10 @@ requestBody?: CreateMediaRequestModel, * @throws ApiError */ public static getMediaById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/media/{id}', @@ -69,12 +68,12 @@ id: string, * @throws ApiError */ public static putMediaById({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdateMediaRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdateMediaRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/{id}', @@ -96,12 +95,12 @@ requestBody?: UpdateMediaRequestModel, * @throws ApiError */ public static putMediaByIdMove({ -id, -requestBody, -}: { -id: string, -requestBody?: MoveMediaRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: MoveMediaRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/{id}/move', @@ -123,10 +122,10 @@ requestBody?: MoveMediaRequestModel, * @throws ApiError */ public static putMediaByIdMoveToRecycleBin({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/{id}/move-to-recycle-bin', @@ -147,18 +146,15 @@ id: string, * @throws ApiError */ public static getMediaItem({ -id, -dataTypeId, -}: { -id?: Array, -dataTypeId?: string, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/media/item', query: { 'id': id, - 'dataTypeId': dataTypeId, }, errors: { 401: `The resource is protected and requires an authentication token`, @@ -171,10 +167,10 @@ dataTypeId?: string, * @throws ApiError */ public static putMediaSort({ -requestBody, -}: { -requestBody?: SortingRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: SortingRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/media/sort', @@ -190,18 +186,34 @@ requestBody?: SortingRequestModel, } /** - * @returns PagedRecycleBinItemResponseModel Success + * @returns any Success + * @throws ApiError + */ + public static deleteRecycleBinMedia(): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/recycle-bin/media', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + }, + }); + } + + /** + * @returns PagedMediaRecycleBinItemResponseModel Success * @throws ApiError */ public static getRecycleBinMediaChildren({ -parentId, -skip, -take = 100, -}: { -parentId?: string, -skip?: number, -take?: number, -}): CancelablePromise { + parentId, + skip, + take = 100, + }: { + parentId?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/media/children', @@ -217,16 +229,16 @@ take?: number, } /** - * @returns PagedRecycleBinItemResponseModel Success + * @returns PagedMediaRecycleBinItemResponseModel Success * @throws ApiError */ public static getRecycleBinMediaRoot({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/recycle-bin/media/root', @@ -245,16 +257,16 @@ take?: number, * @throws ApiError */ public static getTreeMediaChildren({ -parentId, -skip, -take = 100, -dataTypeId, -}: { -parentId?: string, -skip?: number, -take?: number, -dataTypeId?: string, -}): CancelablePromise { + parentId, + skip, + take = 100, + dataTypeId, + }: { + parentId?: string, + skip?: number, + take?: number, + dataTypeId?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/media/children', @@ -270,43 +282,19 @@ dataTypeId?: string, }); } - /** - * @returns any Success - * @throws ApiError - */ - public static getTreeMediaItem({ -id, -dataTypeId, -}: { -id?: Array, -dataTypeId?: string, -}): CancelablePromise> { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/tree/media/item', - query: { - 'id': id, - 'dataTypeId': dataTypeId, - }, - errors: { - 401: `The resource is protected and requires an authentication token`, - }, - }); - } - /** * @returns PagedMediaTreeItemResponseModel Success * @throws ApiError */ public static getTreeMediaRoot({ -skip, -take = 100, -dataTypeId, -}: { -skip?: number, -take?: number, -dataTypeId?: string, -}): CancelablePromise { + skip, + take = 100, + dataTypeId, + }: { + skip?: number, + take?: number, + dataTypeId?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/media/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts index 914320853e..0e0c2a9a84 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberGroupResource.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ import type { MemberGroupItemResponseModel } from '../models/MemberGroupItemResponseModel'; -import type { PagedEntityTreeItemResponseModel } from '../models/PagedEntityTreeItemResponseModel'; +import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; @@ -16,10 +16,10 @@ export class MemberGroupResource { * @throws ApiError */ public static getMemberGroupItem({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/member-group/item', @@ -33,16 +33,16 @@ id?: Array, } /** - * @returns PagedEntityTreeItemResponseModel Success + * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError */ public static getTreeMemberGroupRoot({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/member-group/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts index 0116e9d963..46ecade882 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberResource.ts @@ -15,10 +15,10 @@ export class MemberResource { * @throws ApiError */ public static getMemberItem({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/member/item', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts index fa54ddbb8f..5ca33add00 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MemberTypeResource.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ import type { MemberTypeItemResponseModel } from '../models/MemberTypeItemResponseModel'; -import type { PagedEntityTreeItemResponseModel } from '../models/PagedEntityTreeItemResponseModel'; +import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; @@ -16,10 +16,10 @@ export class MemberTypeResource { * @throws ApiError */ public static getMemberTypeItem({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/member-type/item', @@ -33,16 +33,16 @@ id?: Array, } /** - * @returns PagedEntityTreeItemResponseModel Success + * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError */ public static getTreeMemberTypeRoot({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/member-type/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts index e9d12b691a..e22032ecde 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ObjectTypesResource.ts @@ -15,12 +15,12 @@ export class ObjectTypesResource { * @throws ApiError */ public static getObjectTypes({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/object-types', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts index 5a0d75fe70..b952a0f2a7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts @@ -20,10 +20,10 @@ export class PackageResource { * @throws ApiError */ public static postPackageByNameRunMigration({ -name, -}: { -name: string, -}): CancelablePromise { + name, + }: { + name: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/package/{name}/run-migration', @@ -43,12 +43,12 @@ name: string, * @throws ApiError */ public static getPackageCreated({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/created', @@ -67,10 +67,10 @@ take?: number, * @throws ApiError */ public static postPackageCreated({ -requestBody, -}: { -requestBody?: CreatePackageRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: CreatePackageRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/package/created', @@ -90,10 +90,10 @@ requestBody?: CreatePackageRequestModel, * @throws ApiError */ public static getPackageCreatedById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/created/{id}', @@ -112,10 +112,10 @@ id: string, * @throws ApiError */ public static deletePackageCreatedById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/package/created/{id}', @@ -134,12 +134,12 @@ id: string, * @throws ApiError */ public static putPackageCreatedById({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdatePackageRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdatePackageRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/package/created/{id}', @@ -160,10 +160,10 @@ requestBody?: UpdatePackageRequestModel, * @throws ApiError */ public static getPackageCreatedByIdDownload({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/created/{id}/download', @@ -196,12 +196,12 @@ id: string, * @throws ApiError */ public static getPackageMigrationStatus({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/package/migration-status', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts index 94f49fee69..3c9e655507 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ProfilingResource.ts @@ -30,10 +30,10 @@ export class ProfilingResource { * @throws ApiError */ public static putProfilingStatus({ -requestBody, -}: { -requestBody?: ProfilingStatusRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: ProfilingStatusRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/profiling/status', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts index 9c57e03e47..36cf7b48cc 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PropertyTypeResource.ts @@ -13,12 +13,12 @@ export class PropertyTypeResource { * @throws ApiError */ public static getPropertyTypeIsUsed({ -contentTypeId, -propertyAlias, -}: { -contentTypeId?: string, -propertyAlias?: string, -}): CancelablePromise { + contentTypeId, + propertyAlias, + }: { + contentTypeId?: string, + propertyAlias?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/property-type/is-used', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts index 948f368b96..935e6c6a62 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RedirectManagementResource.ts @@ -17,14 +17,14 @@ export class RedirectManagementResource { * @throws ApiError */ public static getRedirectManagement({ -filter, -skip, -take = 100, -}: { -filter?: string, -skip?: number, -take?: number, -}): CancelablePromise { + filter, + skip, + take = 100, + }: { + filter?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/redirect-management', @@ -45,14 +45,14 @@ take?: number, * @throws ApiError */ public static getRedirectManagementById({ -id, -skip, -take = 100, -}: { -id: string, -skip?: number, -take?: number, -}): CancelablePromise { + id, + skip, + take = 100, + }: { + id: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/redirect-management/{id}', @@ -74,10 +74,10 @@ take?: number, * @throws ApiError */ public static deleteRedirectManagementById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/redirect-management/{id}', @@ -109,10 +109,10 @@ id: string, * @throws ApiError */ public static postRedirectManagementStatus({ -status, -}: { -status?: RedirectStatusModel, -}): CancelablePromise { + status, + }: { + status?: RedirectStatusModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/redirect-management/status', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts index 7779f7cd6a..76bbbb9de5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationResource.ts @@ -15,16 +15,16 @@ export class RelationResource { * @throws ApiError */ public static getRelationChildRelationByChildId({ -childId, -skip, -take = 100, -relationTypeAlias = '', -}: { -childId: string, -skip?: number, -take?: number, -relationTypeAlias?: string, -}): CancelablePromise { + childId, + skip, + take = 100, + relationTypeAlias = '', + }: { + childId: string, + skip?: number, + take?: number, + relationTypeAlias?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation/child-relation/{childId}', @@ -47,14 +47,14 @@ relationTypeAlias?: string, * @throws ApiError */ public static getRelationTypeById({ -id, -skip, -take = 100, -}: { -id: string, -skip?: number, -take?: number, -}): CancelablePromise { + id, + skip, + take = 100, + }: { + id: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation/type/{id}', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts index 557ca7ea20..af3b1727a2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/RelationTypeResource.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ import type { CreateRelationTypeRequestModel } from '../models/CreateRelationTypeRequestModel'; -import type { PagedEntityTreeItemResponseModel } from '../models/PagedEntityTreeItemResponseModel'; +import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { RelationTypeItemResponseModel } from '../models/RelationTypeItemResponseModel'; import type { RelationTypeResponseModel } from '../models/RelationTypeResponseModel'; import type { UpdateRelationTypeRequestModel } from '../models/UpdateRelationTypeRequestModel'; @@ -19,10 +19,10 @@ export class RelationTypeResource { * @throws ApiError */ public static postRelationType({ -requestBody, -}: { -requestBody?: CreateRelationTypeRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: CreateRelationTypeRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/relation-type', @@ -41,10 +41,10 @@ requestBody?: CreateRelationTypeRequestModel, * @throws ApiError */ public static getRelationTypeById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation-type/{id}', @@ -63,10 +63,10 @@ id: string, * @throws ApiError */ public static deleteRelationTypeById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/relation-type/{id}', @@ -85,12 +85,12 @@ id: string, * @throws ApiError */ public static putRelationTypeById({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdateRelationTypeRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdateRelationTypeRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/relation-type/{id}', @@ -112,10 +112,10 @@ requestBody?: UpdateRelationTypeRequestModel, * @throws ApiError */ public static getRelationTypeItem({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/relation-type/item', @@ -129,16 +129,16 @@ id?: Array, } /** - * @returns PagedEntityTreeItemResponseModel Success + * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError */ public static getTreeRelationTypeRoot({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/relation-type/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts index 47b980d484..ff805a23dd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SearcherResource.ts @@ -16,12 +16,12 @@ export class SearcherResource { * @throws ApiError */ public static getSearcher({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/searcher', @@ -40,16 +40,16 @@ take?: number, * @throws ApiError */ public static getSearcherBySearcherNameQuery({ -searcherName, -term, -skip, -take = 100, -}: { -searcherName: string, -term?: string, -skip?: number, -take?: number, -}): CancelablePromise { + searcherName, + term, + skip, + take = 100, + }: { + searcherName: string, + term?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/searcher/{searcherName}/query', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts index 12f1676ff5..ac7de89f58 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/SecurityResource.ts @@ -32,10 +32,10 @@ export class SecurityResource { * @throws ApiError */ public static postSecurityForgotPassword({ -requestBody, -}: { -requestBody?: ResetPasswordRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: ResetPasswordRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/security/forgot-password', @@ -48,14 +48,14 @@ requestBody?: ResetPasswordRequestModel, } /** - * @returns void + * @returns void * @throws ApiError */ public static postSecurityForgotPasswordReset({ -requestBody, -}: { -requestBody?: ResetPasswordTokenRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: ResetPasswordTokenRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/security/forgot-password/reset', @@ -70,14 +70,14 @@ requestBody?: ResetPasswordTokenRequestModel, } /** - * @returns void + * @returns void * @throws ApiError */ public static postSecurityForgotPasswordVerify({ -requestBody, -}: { -requestBody?: (VerifyResetPasswordTokenRequestModel | ResetPasswordTokenRequestModel), -}): CancelablePromise { + requestBody, + }: { + requestBody?: (VerifyResetPasswordTokenRequestModel | ResetPasswordTokenRequestModel), + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/security/forgot-password/verify', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts index 26eb859912..2d0c9675f7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TagResource.ts @@ -15,18 +15,18 @@ export class TagResource { * @throws ApiError */ public static getTag({ -query, -tagGroup, -culture, -skip, -take = 100, -}: { -query?: string, -tagGroup?: string, -culture?: string, -skip?: number, -take?: number, -}): CancelablePromise { + query, + tagGroup, + culture, + skip, + take = 100, + }: { + query?: string, + tagGroup?: string, + culture?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tag', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts index bc536d38e2..89b241dcf0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TelemetryResource.ts @@ -17,12 +17,12 @@ export class TelemetryResource { * @throws ApiError */ public static getTelemetry({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/telemetry', @@ -55,10 +55,10 @@ take?: number, * @throws ApiError */ public static postTelemetryLevel({ -requestBody, -}: { -requestBody?: TelemetryRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: TelemetryRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/telemetry/level', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts index c73e01176c..ca156f2753 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ import type { CreateTemplateRequestModel } from '../models/CreateTemplateRequestModel'; -import type { PagedEntityTreeItemResponseModel } from '../models/PagedEntityTreeItemResponseModel'; +import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; import type { TemplateItemResponseModel } from '../models/TemplateItemResponseModel'; import type { TemplateQueryExecuteModel } from '../models/TemplateQueryExecuteModel'; import type { TemplateQueryResultResponseModel } from '../models/TemplateQueryResultResponseModel'; @@ -23,10 +23,10 @@ export class TemplateResource { * @throws ApiError */ public static postTemplate({ -requestBody, -}: { -requestBody?: CreateTemplateRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: CreateTemplateRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/template', @@ -46,10 +46,10 @@ requestBody?: CreateTemplateRequestModel, * @throws ApiError */ public static getTemplateById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/template/{id}', @@ -68,10 +68,10 @@ id: string, * @throws ApiError */ public static deleteTemplateById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/template/{id}', @@ -91,12 +91,12 @@ id: string, * @throws ApiError */ public static putTemplateById({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdateTemplateRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdateTemplateRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/template/{id}', @@ -118,10 +118,10 @@ requestBody?: UpdateTemplateRequestModel, * @throws ApiError */ public static getTemplateItem({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/template/item', @@ -139,10 +139,10 @@ id?: Array, * @throws ApiError */ public static postTemplateQueryExecute({ -requestBody, -}: { -requestBody?: TemplateQueryExecuteModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: TemplateQueryExecuteModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/template/query/execute', @@ -173,10 +173,10 @@ requestBody?: TemplateQueryExecuteModel, * @throws ApiError */ public static getTemplateScaffold({ -masterTemplateId, -}: { -masterTemplateId?: string, -}): CancelablePromise { + masterTemplateId, + }: { + masterTemplateId?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/template/scaffold', @@ -191,18 +191,18 @@ masterTemplateId?: string, } /** - * @returns PagedEntityTreeItemResponseModel Success + * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError */ public static getTreeTemplateChildren({ -parentId, -skip, -take = 100, -}: { -parentId?: string, -skip?: number, -take?: number, -}): CancelablePromise { + parentId, + skip, + take = 100, + }: { + parentId?: string, + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/template/children', @@ -218,16 +218,16 @@ take?: number, } /** - * @returns PagedEntityTreeItemResponseModel Success + * @returns PagedNamedEntityTreeItemResponseModel Success * @throws ApiError */ public static getTreeTemplateRoot({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tree/template/root', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts index a8998922a1..28ccb40cf5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemporaryFileResource.ts @@ -15,13 +15,13 @@ export class TemporaryFileResource { * @throws ApiError */ public static postTemporaryfile({ -formData, -}: { -formData?: { -Id?: string; -File?: Blob; -}, -}): CancelablePromise { + formData, + }: { + formData?: { + Id?: string; + File?: Blob; + }, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/temporaryfile', @@ -40,10 +40,10 @@ File?: Blob; * @throws ApiError */ public static getTemporaryfileById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/temporaryfile/{id}', @@ -63,10 +63,10 @@ id: string, * @throws ApiError */ public static deleteTemporaryfileById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/temporaryfile/{id}', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts index cd79bd81b3..563a77950b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TourResource.ts @@ -30,10 +30,10 @@ export class TourResource { * @throws ApiError */ public static postTour({ -requestBody, -}: { -requestBody?: SetTourStatusRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: SetTourStatusRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/tour', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts index 0765570b15..040c7a1345 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TrackedReferenceResource.ts @@ -15,16 +15,16 @@ export class TrackedReferenceResource { * @throws ApiError */ public static getTrackedReferenceById({ -id, -skip, -take = 20, -filterMustBeIsDependency = false, -}: { -id: string, -skip?: number, -take?: number, -filterMustBeIsDependency?: boolean, -}): CancelablePromise { + id, + skip, + take = 20, + filterMustBeIsDependency = false, + }: { + id: string, + skip?: number, + take?: number, + filterMustBeIsDependency?: boolean, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tracked-reference/{id}', @@ -47,16 +47,16 @@ filterMustBeIsDependency?: boolean, * @throws ApiError */ public static getTrackedReferenceDescendantsByParentId({ -parentId, -skip, -take = 20, -filterMustBeIsDependency = true, -}: { -parentId: string, -skip?: number, -take?: number, -filterMustBeIsDependency?: boolean, -}): CancelablePromise { + parentId, + skip, + take = 20, + filterMustBeIsDependency = true, + }: { + parentId: string, + skip?: number, + take?: number, + filterMustBeIsDependency?: boolean, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tracked-reference/descendants/{parentId}', @@ -79,16 +79,16 @@ filterMustBeIsDependency?: boolean, * @throws ApiError */ public static getTrackedReferenceItem({ -id, -skip, -take = 20, -filterMustBeIsDependency = true, -}: { -id?: Array, -skip?: number, -take?: number, -filterMustBeIsDependency?: boolean, -}): CancelablePromise { + id, + skip, + take = 20, + filterMustBeIsDependency = true, + }: { + id?: Array, + skip?: number, + take?: number, + filterMustBeIsDependency?: boolean, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/tracked-reference/item', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index b333cd0208..09a5475f82 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -39,10 +39,10 @@ export class UserResource { * @throws ApiError */ public static postUser({ -requestBody, -}: { -requestBody?: (CreateUserRequestModel | InviteUserRequestModel), -}): CancelablePromise { + requestBody, + }: { + requestBody?: (CreateUserRequestModel | InviteUserRequestModel), + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user', @@ -60,10 +60,10 @@ requestBody?: (CreateUserRequestModel | InviteUserRequestModel), * @throws ApiError */ public static deleteUser({ -requestBody, -}: { -requestBody?: DeleteUsersRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: DeleteUsersRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user', @@ -82,12 +82,12 @@ requestBody?: DeleteUsersRequestModel, * @throws ApiError */ public static getUser({ -skip, -take = 100, -}: { -skip?: number, -take?: number, -}): CancelablePromise { + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user', @@ -106,10 +106,10 @@ take?: number, * @throws ApiError */ public static getUserById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/{id}', @@ -129,10 +129,10 @@ id: string, * @throws ApiError */ public static deleteUserById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user/{id}', @@ -151,12 +151,12 @@ id: string, * @throws ApiError */ public static putUserById({ -id, -requestBody, -}: { -id: string, -requestBody?: UpdateUserRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: UpdateUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'PUT', url: '/umbraco/management/api/v1/user/{id}', @@ -176,10 +176,10 @@ requestBody?: UpdateUserRequestModel, * @throws ApiError */ public static deleteUserAvatarById({ -id, -}: { -id: string, -}): CancelablePromise { + id, + }: { + id: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'DELETE', url: '/umbraco/management/api/v1/user/avatar/{id}', @@ -198,12 +198,12 @@ id: string, * @throws ApiError */ public static postUserAvatarById({ -id, -requestBody, -}: { -id: string, -requestBody?: SetAvatarRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: SetAvatarRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/avatar/{id}', @@ -225,12 +225,12 @@ requestBody?: SetAvatarRequestModel, * @throws ApiError */ public static postUserChangePasswordById({ -id, -requestBody, -}: { -id: string, -requestBody?: ChangePasswordUserRequestModel, -}): CancelablePromise { + id, + requestBody, + }: { + id: string, + requestBody?: ChangePasswordUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/change-password/{id}', @@ -279,10 +279,10 @@ requestBody?: ChangePasswordUserRequestModel, * @throws ApiError */ public static postUserCurrentAvatar({ -requestBody, -}: { -requestBody?: SetAvatarRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: SetAvatarRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/current/avatar', @@ -300,10 +300,10 @@ requestBody?: SetAvatarRequestModel, * @throws ApiError */ public static postUserCurrentChangePassword({ -requestBody, -}: { -requestBody?: ChangePasswordUserRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: ChangePasswordUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/current/change-password', @@ -348,10 +348,10 @@ requestBody?: ChangePasswordUserRequestModel, * @throws ApiError */ public static getUserCurrentPermissions({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current/permissions', @@ -369,10 +369,10 @@ id?: Array, * @throws ApiError */ public static getUserCurrentPermissionsDocument({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current/permissions/document', @@ -390,10 +390,10 @@ id?: Array, * @throws ApiError */ public static getUserCurrentPermissionsMedia({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/current/permissions/media', @@ -411,10 +411,10 @@ id?: Array, * @throws ApiError */ public static postUserDisable({ -requestBody, -}: { -requestBody?: DisableUserRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: DisableUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/disable', @@ -433,10 +433,10 @@ requestBody?: DisableUserRequestModel, * @throws ApiError */ public static postUserEnable({ -requestBody, -}: { -requestBody?: EnableUserRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: EnableUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/enable', @@ -455,22 +455,22 @@ requestBody?: EnableUserRequestModel, * @throws ApiError */ public static getUserFilter({ -skip, -take = 100, -orderBy, -orderDirection, -userGroupIds, -userStates, -filter = '', -}: { -skip?: number, -take?: number, -orderBy?: UserOrderModel, -orderDirection?: DirectionModel, -userGroupIds?: Array, -userStates?: Array, -filter?: string, -}): CancelablePromise { + skip, + take = 100, + orderBy, + orderDirection, + userGroupIds, + userStates, + filter = '', + }: { + skip?: number, + take?: number, + orderBy?: UserOrderModel, + orderDirection?: DirectionModel, + userGroupIds?: Array, + userStates?: Array, + filter?: string, + }): CancelablePromise { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/filter', @@ -494,10 +494,10 @@ filter?: string, * @throws ApiError */ public static postUserInvite({ -requestBody, -}: { -requestBody?: InviteUserRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: InviteUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite', @@ -515,10 +515,10 @@ requestBody?: InviteUserRequestModel, * @throws ApiError */ public static postUserInviteCreatePassword({ -requestBody, -}: { -requestBody?: CreateInitialPasswordUserRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: CreateInitialPasswordUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite/create-password', @@ -536,10 +536,10 @@ requestBody?: CreateInitialPasswordUserRequestModel, * @throws ApiError */ public static postUserInviteResend({ -requestBody, -}: { -requestBody?: ResendInviteUserRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: ResendInviteUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite/resend', @@ -557,10 +557,10 @@ requestBody?: ResendInviteUserRequestModel, * @throws ApiError */ public static postUserInviteVerify({ -requestBody, -}: { -requestBody?: (VerifyInviteUserRequestModel | CreateInitialPasswordUserRequestModel), -}): CancelablePromise { + requestBody, + }: { + requestBody?: (VerifyInviteUserRequestModel | CreateInitialPasswordUserRequestModel), + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite/verify', @@ -578,10 +578,10 @@ requestBody?: (VerifyInviteUserRequestModel | CreateInitialPasswordUserRequestMo * @throws ApiError */ public static getUserItem({ -id, -}: { -id?: Array, -}): CancelablePromise> { + id, + }: { + id?: Array, + }): CancelablePromise> { return __request(OpenAPI, { method: 'GET', url: '/umbraco/management/api/v1/user/item', @@ -599,10 +599,10 @@ id?: Array, * @throws ApiError */ public static postUserSetUserGroups({ -requestBody, -}: { -requestBody?: UpdateUserGroupsOnUserRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: UpdateUserGroupsOnUserRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/set-user-groups', @@ -620,10 +620,10 @@ requestBody?: UpdateUserGroupsOnUserRequestModel, * @throws ApiError */ public static postUserUnlock({ -requestBody, -}: { -requestBody?: UnlockUsersRequestModel, -}): CancelablePromise { + requestBody, + }: { + requestBody?: UnlockUsersRequestModel, + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/unlock', From 5ba101c0a47fb8c0d6bf1958876cf934bef72e69 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 16:20:56 +0100 Subject: [PATCH 476/786] update document mocks --- .../src/mocks/data/document/document.data.ts | 58 ++++++++++++++----- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts index e65e1dde0a..7ffb4ff488 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts @@ -5,11 +5,11 @@ import { DocumentTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -export type UmbMockDataTypeModelHack = DocumentResponseModel & +export type UmbMockDocumentTypeModelHack = DocumentResponseModel & DocumentTreeItemResponseModel & DocumentItemResponseModel; -export interface UmbMockDocumentModel extends Omit {} +export interface UmbMockDocumentModel extends Omit {} export const data: Array = [ { @@ -19,11 +19,18 @@ export const data: Array = [ url: '/', }, ], - isTrashed: false, - templateId: null, + template: null, id: 'all-property-editors-document-id', - parentId: null, - contentTypeId: 'all-property-editors-document-type-id', + parent: null, + documentType: { + id: 'all-property-editors-document-type-id', + icon: 'icon-document', + hasListView: false, + }, + hasChildren: false, + noAccess: false, + isProtected: false, + isTrashed: false, values: [ { alias: 'richTextEditor', @@ -371,10 +378,17 @@ export const data: Array = [ url: '/', }, ], - templateId: null, + template: null, id: 'c05da24d-7740-447b-9cdc-bd8ce2172e38', - parentId: null, - contentTypeId: '29643452-cff9-47f2-98cd-7de4b6807681', + parent: null, + documentType: { + id: '29643452-cff9-47f2-98cd-7de4b6807681', + icon: 'icon-document', + hasListView: false, + }, + hasChildren: false, + noAccess: false, + isProtected: false, isTrashed: false, values: [ { @@ -488,10 +502,17 @@ export const data: Array = [ }, { urls: [], - templateId: null, + template: null, id: 'fd56a0b5-01a0-4da2-b428-52773bfa9cc4', - parentId: null, - contentTypeId: '29643452-cff9-47f2-98cd-7de4b6807681', + parent: null, + documentType: { + id: '29643452-cff9-47f2-98cd-7de4b6807681', + icon: 'icon-document', + hasListView: false, + }, + hasChildren: false, + noAccess: false, + isProtected: false, isTrashed: false, values: [ { @@ -562,10 +583,17 @@ export const data: Array = [ url: '/', }, ], - templateId: null, + template: null, id: 'simple-document-id', - parentId: null, - contentTypeId: 'simple-document-type-id', + parent: null, + documentType: { + id: 'simple-document-type-id', + icon: 'icon-document', + hasListView: false, + }, + hasChildren: false, + noAccess: false, + isProtected: false, isTrashed: false, variants: [ { From 6b5389897e5494a783f85eca513387db5c99f733 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 16:23:04 +0100 Subject: [PATCH 477/786] Update data-type.data.ts --- .../mocks/data/data-type/data-type.data.ts | 39 ------------------- 1 file changed, 39 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index c4128031c6..0e38388f46 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -17,7 +17,6 @@ export const data: Array = [ parentId: null, isFolder: true, hasChildren: false, - isContainer: false, editorAlias: '', values: [], }, @@ -27,7 +26,6 @@ export const data: Array = [ parentId: null, isFolder: true, hasChildren: true, - isContainer: false, editorAlias: '', values: [], }, @@ -39,7 +37,6 @@ export const data: Array = [ editorUiAlias: 'Umb.PropertyEditorUi.TextBox', values: [], hasChildren: false, - isContainer: false, isFolder: false, }, { @@ -49,7 +46,6 @@ export const data: Array = [ editorAlias: 'Umbraco.TextBox', editorUiAlias: 'Umb.PropertyEditorUi.TextBox', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -65,7 +61,6 @@ export const data: Array = [ editorAlias: 'Umbraco.TextArea', editorUiAlias: 'Umb.PropertyEditorUi.TextArea', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -76,7 +71,6 @@ export const data: Array = [ editorAlias: 'Umbraco.Label', editorUiAlias: 'My.PropertyEditorUI.Custom', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -87,7 +81,6 @@ export const data: Array = [ editorAlias: 'Umbraco.ColorPicker', editorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -144,7 +137,6 @@ export const data: Array = [ editorAlias: 'Umbraco.ContentPicker', editorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -160,7 +152,6 @@ export const data: Array = [ editorAlias: 'Umbraco.ColorPicker.EyeDropper', editorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -198,7 +189,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MultiUrlPicker', editorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -230,7 +220,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MultiNodeTreePicker', editorUiAlias: 'Umb.PropertyEditorUi.TreePicker', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -269,7 +258,6 @@ export const data: Array = [ editorAlias: 'Umbraco.DateTime', editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -292,7 +280,6 @@ export const data: Array = [ parentId: null, editorAlias: 'Umbraco.DateTime', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -312,7 +299,6 @@ export const data: Array = [ editorAlias: 'Umbraco.DateTime', editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -332,7 +318,6 @@ export const data: Array = [ editorAlias: 'Umbraco.EmailAddress', editorUiAlias: 'Umb.PropertyEditorUi.Email', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -348,7 +333,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MultipleTextString', editorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -368,7 +352,6 @@ export const data: Array = [ editorAlias: 'Umbraco.DropDown.Flexible', editorUiAlias: 'Umb.PropertyEditorUi.Dropdown', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -392,7 +375,6 @@ export const data: Array = [ editorAlias: 'Umbraco.Slider', editorUiAlias: 'Umb.PropertyEditorUi.Slider', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -428,7 +410,6 @@ export const data: Array = [ editorAlias: 'Umbraco.TrueFalse', editorUiAlias: 'Umb.PropertyEditorUi.Toggle', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -456,7 +437,6 @@ export const data: Array = [ editorAlias: 'Umbraco.Tags', editorUiAlias: 'Umb.PropertyEditorUi.Tags', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -476,7 +456,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MarkdownEditor', editorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -487,7 +466,6 @@ export const data: Array = [ editorAlias: 'Umbraco.RadioButtonList', editorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -507,7 +485,6 @@ export const data: Array = [ editorAlias: 'Umbraco.CheckboxList', editorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -527,7 +504,6 @@ export const data: Array = [ editorAlias: 'Umbraco.BlockList', editorUiAlias: 'Umb.PropertyEditorUi.BlockList', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -583,7 +559,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MediaPicker3', editorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -594,7 +569,6 @@ export const data: Array = [ editorAlias: 'Umbraco.ImageCropper', editorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -626,7 +600,6 @@ export const data: Array = [ editorAlias: 'Umbraco.UploadField', editorUiAlias: 'Umb.PropertyEditorUi.UploadField', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -646,7 +619,6 @@ export const data: Array = [ editorAlias: 'Umbraco.BlockGrid', editorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -710,7 +682,6 @@ export const data: Array = [ editorAlias: 'Umbraco.ListView', editorUiAlias: 'Umb.PropertyEditorUi.CollectionView', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -721,7 +692,6 @@ export const data: Array = [ editorAlias: 'Umbraco.IconPicker', editorUiAlias: 'Umb.PropertyEditorUi.IconPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -732,7 +702,6 @@ export const data: Array = [ editorAlias: 'Umbraco.RichText', editorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -812,7 +781,6 @@ export const data: Array = [ editorAlias: 'Umbraco.Label', editorUiAlias: 'Umb.PropertyEditorUi.Label', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -823,7 +791,6 @@ export const data: Array = [ editorAlias: 'Umbraco.Integer', editorUiAlias: 'Umb.PropertyEditorUi.Integer', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -834,7 +801,6 @@ export const data: Array = [ editorAlias: 'Umbraco.Decimal', editorUiAlias: 'Umb.PropertyEditorUi.Decimal', hasChildren: false, - isContainer: false, isFolder: false, values: [ { @@ -850,7 +816,6 @@ export const data: Array = [ editorAlias: 'Umbraco.UserPicker', editorUiAlias: 'Umb.PropertyEditorUi.UserPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -861,7 +826,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MemberPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -872,7 +836,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MemberGroupPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -883,7 +846,6 @@ export const data: Array = [ editorAlias: 'Umbraco.MemberGroupPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, @@ -894,7 +856,6 @@ export const data: Array = [ editorAlias: 'Umbraco.Label', editorUiAlias: 'Umb.PropertyEditorUi.StaticFilePicker', hasChildren: false, - isContainer: false, isFolder: false, values: [], }, From 2a3ac1ed62519d468c557bab3c268a5f96810149 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 16:24:30 +0100 Subject: [PATCH 478/786] update data type mock mappers --- .../src/mocks/data/data-type/data-type.db.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts index 85a1171671..36eee1e832 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts @@ -31,7 +31,6 @@ const createMockDataTypeFolderMapper = (request: CreateFolderRequestModel): UmbM parentId: request.parentId, isFolder: true, hasChildren: false, - isContainer: false, editorAlias: '', values: [], }; @@ -47,7 +46,6 @@ const createMockDataTypeMapper = (request: CreateDataTypeRequestModel): UmbMockD values: request.values, isFolder: false, hasChildren: false, - isContainer: false, }; }; From ea1b9165291e2e51235a87eb05b59d55b19bd080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 22 Jan 2024 19:31:37 +0100 Subject: [PATCH 479/786] live editing mode --- .../manager/block-list-manager.context.ts | 2 +- .../property-editor-ui-block-list.element.ts | 2 + .../manager/block-manager.context-token.ts | 4 + .../block/manager/block-manager.context.ts | 28 +++--- .../src/packages/block/block/manager/index.ts | 2 +- .../workspace/block-workspace.context.ts | 86 ++++++++++++++----- .../src/packages/core/workspace/index.ts | 1 + .../saveable-workspace.context-token.ts | 12 +++ .../workspace-footer.element.ts | 14 ++- 9 files changed, 114 insertions(+), 37 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts index 4f32598ee1..a53003c06a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts @@ -1,5 +1,5 @@ import type { UmbBlockListLayoutModel, UmbBlockListTypeModel } from '../types.js'; -import { UmbBlockManagerContext } from '@umbraco-cms/backoffice/block'; +import { UmbBlockManagerContext } from '../../block/manager/block-manager.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index c897630ce7..4e779bc0bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -86,6 +86,8 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement //config.useLiveEditing //config.useInlineEditingAsDefault this.style.maxWidth = config.getValueByAlias('maxPropertyWidth') ?? ''; + + this.#context.setEditorConfiguration(config); } @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context-token.ts new file mode 100644 index 0000000000..eb7dacc74b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context-token.ts @@ -0,0 +1,4 @@ +import type { UmbBlockManagerContext } from './block-manager.context.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; + +export const UMB_BLOCK_MANAGER_CONTEXT = new UmbContextToken('UmbBlockManagerContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index c5c713f38e..4baf548c1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -1,14 +1,18 @@ -import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '..//types.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbArrayState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, UmbClassState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; -import { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block'; -import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { + UMB_BLOCK_MANAGER_CONTEXT, + UMB_BLOCK_WORKSPACE_MODAL, + UmbBlockTypeBaseModel, +} from '@umbraco-cms/backoffice/block'; +import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbId } from '@umbraco-cms/backoffice/id'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; // TODO: We are using backend model here, I think we should get our own model: type ElementTypeModel = UmbContentTypeModel; @@ -29,6 +33,9 @@ export abstract class UmbBlockManagerContext< #blockTypes = new UmbArrayState(>[], (x) => x.contentElementTypeKey); public readonly blockTypes = this.#blockTypes.asObservable(); + #editorConfiguration = new UmbClassState(undefined); + public readonly editorConfiguration = this.#editorConfiguration.asObservable(); + #layouts = new UmbArrayState(>[], (x) => x.contentUdi); public readonly layouts = this.#layouts.asObservable(); @@ -38,6 +45,10 @@ export abstract class UmbBlockManagerContext< #settings = new UmbArrayState(>[], (x) => x.udi); public readonly settings = this.#settings.asObservable(); + setEditorConfiguration(configs: UmbPropertyEditorConfigCollection) { + this.#editorConfiguration.setValue(configs); + } + setBlockTypes(blockTypes: Array) { this.#blockTypes.setValue(blockTypes); } @@ -59,9 +70,8 @@ export abstract class UmbBlockManagerContext< constructor(host: UmbControllerHost) { super(host, UMB_BLOCK_MANAGER_CONTEXT); - // TODO: Make specific modal token that requires data. // IDEA: Make a Workspace registration controller that can be used to register a workspace, which does both edit and create?. - new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL) .addAdditionalPath('block') .onSetup(() => { return { data: { entityType: 'block', preset: {} }, modal: { size: 'medium' } }; @@ -185,7 +195,3 @@ export abstract class UmbBlockManagerContext< this.#contents.removeOne(contentUdi); } } - -export const UMB_BLOCK_MANAGER_CONTEXT = new UmbContextToken( - 'UmbBlockManagerContext', -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts index 6303015d84..631569a5df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts @@ -1 +1 @@ -export * from './block-manager.context.js'; +export * from './block-manager.context-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 8558c4e029..f1f1482956 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -7,6 +7,7 @@ import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; import { buildUdi } from '@umbraco-cms/backoffice/utils'; +import { UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; export class UmbBlockWorkspaceContext< LayoutDataType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, @@ -18,12 +19,15 @@ export class UmbBlockWorkspaceContext< #blockManager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; #retrieveBlockManager; + #editorConfigPromise?: Promise; #entityType: string; #isNew = new UmbBooleanState(undefined); readonly isNew = this.#isNew.asObservable(); + #liveEditingMode?: boolean; + #layout = new UmbObjectState(undefined); readonly layout = this.#layout.asObservable(); //readonly unique = this.#layout.asObservablePart((x) => x?.contentUdi); @@ -43,13 +47,25 @@ export class UmbBlockWorkspaceContext< this.#entityType = workspaceArgs.manifest.meta?.entityType; this.workspaceAlias = workspaceArgs.manifest.alias; + this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { + context.onSubmit().catch(this.#modalRejected); + }); + this.#retrieveBlockManager = this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (context) => { this.#blockManager = context; + this.#editorConfigPromise = this.observe(context.editorConfiguration, (editorConfigs) => { + if (editorConfigs) { + const value = editorConfigs.getValueByAlias('useLiveEditing'); + this.#liveEditingMode = value; + } + }).asPromise(); + // TODO: Observe or just get the LiveEditing setting? }).asPromise(); } async load(unique: string) { await this.#retrieveBlockManager; + await this.#editorConfigPromise; if (!this.#blockManager) { throw new Error('Block manager not found'); return; @@ -60,7 +76,6 @@ export class UmbBlockWorkspaceContext< (layoutData) => { this.#layout.setValue(layoutData as LayoutDataType); - // // Content: const contentUdi = layoutData?.contentUdi; if (contentUdi) { @@ -88,20 +103,9 @@ export class UmbBlockWorkspaceContext< 'observeLayout', ); - /* - if ( liveEditingMode) { - this.observe(this.layout, (layoutData) => { - if(layoutData) { - this.#blockManager?.setOneLayout(layoutData); - } - }); - this.observe(this.content.data, (contentData) => { - if(contentData) { - this.#blockManager?.setOneContent(contentData); - } - }); + if (this.#liveEditingMode) { + this.#establishLiveSync(); } - */ } async create(contentElementTypeId: string) { @@ -122,6 +126,28 @@ export class UmbBlockWorkspaceContext< this.setIsNew(true); this.#layout.setValue(layout as LayoutDataType); + + if (this.#liveEditingMode) { + this.#establishLiveSync(); + } + } + + #establishLiveSync() { + this.observe(this.layout, (layoutData) => { + if (layoutData) { + this.#blockManager?.setOneLayout(layoutData); + } + }); + this.observe(this.content.data, (contentData) => { + if (contentData) { + this.#blockManager?.setOneContent(contentData); + } + }); + this.observe(this.settings.data, (settingsData) => { + if (settingsData) { + this.#blockManager?.setOneSettings(settingsData); + } + }); } getIsNew() { @@ -180,20 +206,36 @@ export class UmbBlockWorkspaceContext< } } - // TODO: Save the block, but only in non-live-editing mode. - this.#blockManager.setOneLayout(layoutData); + if (!this.#liveEditingMode) { + // TODO: Save the block, but only in non-live-editing mode. + this.#blockManager.setOneLayout(layoutData); - if (contentData) { - this.#blockManager.setOneContent(contentData); - } - const settingsData = this.settings.getData(); - if (settingsData) { - this.#blockManager.setOneSettings(settingsData); + if (contentData) { + this.#blockManager.setOneContent(contentData); + } + const settingsData = this.settings.getData(); + if (settingsData) { + this.#blockManager.setOneSettings(settingsData); + } } this.saveComplete(layoutData); } + #modalRejected = () => { + if (this.#liveEditingMode) { + // Revert + // Did it exist before? + if (this.getIsNew() === true) { + // Remove the block? + const contentUdi = this.#layout.value?.contentUdi; + if (contentUdi) { + this.#blockManager?.deleteBlock(contentUdi); + } + } + } + }; + public destroy(): void { this.#layout.destroy(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts index 563618d951..2ddc9d732c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts @@ -1,3 +1,4 @@ +export * from './saveable-workspace.context-token.js'; export * from './publishable-workspace.context-token.js'; export * from './workspace-action-menu/index.js'; export * from './workspace-action/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts new file mode 100644 index 0000000000..d0046df232 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts @@ -0,0 +1,12 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbWorkspaceContextInterface, UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; + +export const UMB_SAVEABLE_WORKSPACE_CONTEXT = new UmbContextToken< + UmbWorkspaceContextInterface, + UmbSaveableWorkspaceContextInterface +>( + 'UmbWorkspaceContext', + undefined, + (context): context is UmbSaveableWorkspaceContextInterface => + (context as UmbSaveableWorkspaceContextInterface).getIsNew !== undefined, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts index 7f55c1c89c..81a92dd38a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts @@ -3,6 +3,7 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/externa import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_SAVEABLE_WORKSPACE_CONTEXT, UMB_WORKSPACE_CONTEXT } from '..'; /** * @element umb-workspace-footer @@ -22,14 +23,20 @@ export class UmbWorkspaceFooterLayoutElement extends UmbLitElement { @state() _modalContext?: UmbModalContext; + @state() + _isNew?: boolean; + constructor() { super(); + this.consumeContext(UMB_SAVEABLE_WORKSPACE_CONTEXT, (context) => { + this._isNew = context.getIsNew(); + }); this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { this._modalContext = context; }); } - private _onClose = () => { + #rejectModal = () => { this._modalContext?.reject(); }; @@ -39,7 +46,10 @@ export class UmbWorkspaceFooterLayoutElement extends UmbLitElement { ${this._modalContext - ? html`` + ? html`` : ''} Date: Mon, 22 Jan 2024 19:59:28 +0100 Subject: [PATCH 480/786] type export --- .../src/packages/block/block/manager/index.ts | 1 + .../workspace/block-workspace.context.ts | 41 ++++++++++++------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts index 631569a5df..9116a8ebf8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/index.ts @@ -1 +1,2 @@ export * from './block-manager.context-token.js'; +export type * from './block-manager.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index f1f1482956..9f5c0c7ad0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -18,6 +18,7 @@ export class UmbBlockWorkspaceContext< readonly workspaceAlias; #blockManager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; + #retrieveModalContext; #retrieveBlockManager; #editorConfigPromise?: Promise; @@ -47,9 +48,9 @@ export class UmbBlockWorkspaceContext< this.#entityType = workspaceArgs.manifest.meta?.entityType; this.workspaceAlias = workspaceArgs.manifest.alias; - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { + this.#retrieveModalContext = this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { context.onSubmit().catch(this.#modalRejected); - }); + }).asPromise(); this.#retrieveBlockManager = this.consumeContext(UMB_BLOCK_MANAGER_CONTEXT, (context) => { this.#blockManager = context; @@ -109,25 +110,37 @@ export class UmbBlockWorkspaceContext< } async create(contentElementTypeId: string) { + await this.#retrieveBlockManager; + if (!this.#blockManager) { + throw new Error('Block manager not found'); + return; + } // // TODO: Condense this into some kind of create method? + const key = UmbId.new(); const contentUdi = buildUdi('block', key); - const layout: UmbBlockLayoutBaseModel = { + const layoutData: UmbBlockLayoutBaseModel = { contentUdi: contentUdi, }; - const content: UmbBlockDataType = { + const contentData: UmbBlockDataType = { udi: contentUdi, contentTypeKey: contentElementTypeId, }; - this.content.setData(content); + this.content.setData(contentData); // TODO: If we have Settings dedicated to this block type, we initiate them here: this.setIsNew(true); - this.#layout.setValue(layout as LayoutDataType); + this.#layout.setValue(layoutData as LayoutDataType); if (this.#liveEditingMode) { + const blockCreated = this.#blockManager.createBlock(layoutData, contentElementTypeId); + if (!blockCreated) { + throw new Error('Block Manager could not create block'); + return; + } + this.#establishLiveSync(); } } @@ -198,15 +211,15 @@ export class UmbBlockWorkspaceContext< const contentData = this.content.getData(); if (!layoutData || !this.#blockManager || !contentData) return; - if (this.getIsNew() === true) { - const blockCreated = this.#blockManager.createBlock(layoutData, contentData.contentTypeKey); - if (!blockCreated) { - throw new Error('Block Manager could not create block'); - return; - } - } - if (!this.#liveEditingMode) { + if (this.getIsNew() === true) { + const blockCreated = this.#blockManager.createBlock(layoutData, contentData.contentTypeKey); + if (!blockCreated) { + throw new Error('Block Manager could not create block'); + return; + } + } + // TODO: Save the block, but only in non-live-editing mode. this.#blockManager.setOneLayout(layoutData); From 367e005178163963708de5d29c4419628f7ce9e8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 20:03:09 +0100 Subject: [PATCH 481/786] Update document-type.data.ts --- .../data/document-type/document-type.data.ts | 204 +++++++++--------- 1 file changed, 108 insertions(+), 96 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 5331ef5c05..a16ea2dc88 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -13,7 +13,7 @@ export interface UmbMockDocumentTypeModel extends Omit = [ { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: 'all-property-editors-document-type-id', alias: 'blogPost', @@ -26,16 +26,20 @@ export const data: Array = [ isElement: false, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { id: '1', - containerId: 'all-properties-group-key', + container: { + id: 'all-properties-group-key', + }, alias: 'richTextEditor', name: 'Rich Text editor', description: 'Some description to test with a long description.', - dataTypeId: 'dt-richTextEditor', + dataType: { + id: 'dt-richTextEditor', + }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -51,11 +55,15 @@ export const data: Array = [ }, { id: '2', - containerId: 'all-properties-group-id', + container: { + id: 'all-properties-group-key', + }, alias: 'colorPicker', name: 'Color Picker', description: '', - dataTypeId: 'dt-colorPicker', + dataType: { + id: 'dt-colorPicker', + }, variesByCulture: false, variesBySegment: false, sortOrder: 1, @@ -71,11 +79,15 @@ export const data: Array = [ }, { id: '3', - containerId: 'all-properties-group-key', + container: { + id: 'all-properties-group-key', + }, alias: 'contentPicker', name: 'Content Picker', description: '', - dataTypeId: 'dt-contentPicker', + dataType: { + id: 'dt-contentPicker', + }, variesByCulture: false, variesBySegment: false, sortOrder: 2, @@ -91,7 +103,7 @@ export const data: Array = [ }, { id: '4', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'eyeDropper', name: 'Eye Dropper', description: '', @@ -111,7 +123,7 @@ export const data: Array = [ }, { id: '5', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'multiUrlPicker', name: 'Multi URL Picker', description: '', @@ -131,7 +143,7 @@ export const data: Array = [ }, { id: '6', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'multiNodeTreePicker', name: 'Multi Node Tree Picker', description: '', @@ -151,7 +163,7 @@ export const data: Array = [ }, { id: '7', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'datePicker', name: 'Date Picker', description: '', @@ -171,7 +183,7 @@ export const data: Array = [ }, { id: '7b', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'datePicker-b', name: 'Date Picker With Time', description: '', @@ -191,7 +203,7 @@ export const data: Array = [ }, { id: '8', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'email', name: 'Email', description: '', @@ -211,7 +223,7 @@ export const data: Array = [ }, { id: '9', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'textBox', name: 'Text Box', description: '', @@ -231,7 +243,7 @@ export const data: Array = [ }, { id: '19', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'dropdown', name: 'Dropdown', description: '', @@ -251,7 +263,7 @@ export const data: Array = [ }, { id: '11', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'textArea', name: 'Text Area', description: '', @@ -271,7 +283,7 @@ export const data: Array = [ }, { id: '12', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'slider', name: 'Slider', description: '', @@ -291,7 +303,7 @@ export const data: Array = [ }, { id: '13', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'toggle', name: 'Toggle', description: '', @@ -311,7 +323,7 @@ export const data: Array = [ }, { id: '14', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'tags', name: 'Tags', description: '', @@ -331,7 +343,7 @@ export const data: Array = [ }, { id: '15', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'markdownEditor', name: 'MarkdownEditor', description: '', @@ -351,7 +363,7 @@ export const data: Array = [ }, { id: '16', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'radioButtonList', name: 'Radio Button List', description: '', @@ -371,7 +383,7 @@ export const data: Array = [ }, { id: '17', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'checkboxList', name: 'Checkbox List', description: '', @@ -391,7 +403,7 @@ export const data: Array = [ }, { id: '18', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'blockList', name: 'Block List', description: '', @@ -411,7 +423,7 @@ export const data: Array = [ }, { id: '19', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'mediaPicker', name: 'Media Picker', description: '', @@ -431,7 +443,7 @@ export const data: Array = [ }, { id: '20', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'imageCropper', name: 'Image Cropper', description: '', @@ -451,7 +463,7 @@ export const data: Array = [ }, { id: '21', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'uploadField', name: 'Upload Field', description: '', @@ -471,7 +483,7 @@ export const data: Array = [ }, { id: '22', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'blockGrid', name: 'Block Grid', description: '', @@ -491,7 +503,7 @@ export const data: Array = [ }, { id: '23', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'iconPicker', name: 'Icon Picker', description: '', @@ -511,7 +523,7 @@ export const data: Array = [ }, { id: '27', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'label', name: 'Label', description: '', @@ -531,7 +543,7 @@ export const data: Array = [ }, { id: '28', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'integer', name: 'Integer', description: '', @@ -551,7 +563,7 @@ export const data: Array = [ }, { id: '29', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'decimal', name: 'Decimal', description: '', @@ -571,7 +583,7 @@ export const data: Array = [ }, { id: '30', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'memberPicker', name: 'Member Picker', description: '', @@ -591,7 +603,7 @@ export const data: Array = [ }, { id: '31', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'memberGroupPicker', name: 'Member Group Picker', description: '', @@ -611,7 +623,7 @@ export const data: Array = [ }, { id: '32', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'userPicker', name: 'User Picker', description: '', @@ -631,7 +643,7 @@ export const data: Array = [ }, { id: '33', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'staticFilePicker', name: 'Static File Picker', description: '', @@ -653,13 +665,13 @@ export const data: Array = [ containers: [ { id: 'all-properties-group-key', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, }, ], - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -668,7 +680,7 @@ export const data: Array = [ }, }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: 'simple-document-type-id', alias: 'blogPost', @@ -681,12 +693,12 @@ export const data: Array = [ isElement: false, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { id: '6', - containerId: 'all-properties-group-key', + container: { id: 'all-properties-group-key' }, alias: 'multiNodeTreePicker', name: 'Multi Node Tree Picker', description: '', @@ -708,13 +720,13 @@ export const data: Array = [ containers: [ { id: 'all-properties-group-key', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, }, ], - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -724,7 +736,7 @@ export const data: Array = [ }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: '29643452-cff9-47f2-98cd-7de4b6807681', alias: 'blogPost', @@ -737,7 +749,7 @@ export const data: Array = [ isElement: false, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { @@ -762,11 +774,11 @@ export const data: Array = [ }, { id: 'ef7096b6-7c9e-49ba-8d49-395111e65ea2', - containerId: '227d6ed2-e118-4494-b8f2-deb69854a56a', + container: { id: '227d6ed2-e118-4494-b8f2-deb69854a56a' }, alias: 'blogTextStringUnderMasterTab', name: 'Blog text string under master tab', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: true, variesBySegment: false, sortOrder: 1, @@ -844,14 +856,14 @@ export const data: Array = [ containers: [ { id: 'c3cd2f12-b7c4-4206-8d8b-27c061589f75', - parentId: null, + parent: null, name: 'Content-group', type: 'Group', sortOrder: 0, }, { id: '227d6ed2-e118-4494-b8f2-deb69854a56a', - parentId: null, + parent: null, name: 'Master Tab', type: 'Tab', sortOrder: 0, @@ -865,13 +877,13 @@ export const data: Array = [ }, { id: '2c943997-b685-432d-a6c5-601d8e7a298a', - parentId: null, + parent: null, name: 'Local blog tab', type: 'Tab', sortOrder: 1, }, ], - allowedContentTypes: [ + allowedDocumentTypes: [ { id: '29643452-cff9-47f2-98cd-7de4b6807681', sortOrder: 0, @@ -894,7 +906,7 @@ export const data: Array = [ }, }, { - allowedTemplateIds: ['916cfecc-3295-490c-a16d-c41fa9f72980'], + allowedTemplates: ['916cfecc-3295-490c-a16d-c41fa9f72980'], defaultTemplateId: '916cfecc-3295-490c-a16d-c41fa9f72980', id: '5035d7d9-0a63-415c-9e75-ee2cf931db92', alias: 'masterPage', @@ -907,7 +919,7 @@ export const data: Array = [ isElement: false, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { @@ -934,13 +946,13 @@ export const data: Array = [ containers: [ { id: '6f281e5a-0242-4649-bd9e-d6bf87f92b41', - parentId: null, + parent: null, name: 'Master Tab', type: 'Tab', sortOrder: 0, }, ], - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -949,7 +961,7 @@ export const data: Array = [ }, }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: '8f68ba66-6fb2-4778-83b8-6ab4ca3a7c5d', alias: 'baseElementType', @@ -962,7 +974,7 @@ export const data: Array = [ isElement: true, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { @@ -989,13 +1001,13 @@ export const data: Array = [ containers: [ { id: '1e845ca8-1e3e-4b03-be1d-0b4149ce2129', - parentId: null, + parent: null, name: 'Content-group', type: 'Group', sortOrder: 0, }, ], - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -1004,7 +1016,7 @@ export const data: Array = [ }, }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c', alias: 'simpleElementType', @@ -1017,7 +1029,7 @@ export const data: Array = [ isElement: true, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { @@ -1044,13 +1056,13 @@ export const data: Array = [ containers: [ { id: '1e845ca8-1e3e-4b03-be1d-0b4149ce2120', - parentId: null, + parent: null, name: 'Content-group', type: 'Group', sortOrder: 0, }, ], - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -1059,7 +1071,7 @@ export const data: Array = [ }, }, { - allowedTemplateIds: [ + allowedTemplates: [ '2bf464b6-3aca-4388-b043-4eb439cc2643', '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', '9a84c0b3-03b4-4dd4-84ac-706740ac0f72', @@ -1076,7 +1088,7 @@ export const data: Array = [ isElement: false, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { @@ -1103,13 +1115,13 @@ export const data: Array = [ containers: [ { id: '341b8521-fd43-4333-ae7a-a10cbbc6f4b0', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, }, ], - allowedContentTypes: [ + allowedDocumentTypes: [ { id: 'simple-document-type-key', sortOrder: 0 }, { id: 'simple-document-type-2-key', sortOrder: 0 }, ], @@ -1121,7 +1133,7 @@ export const data: Array = [ }, }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: 'simple-document-type-2-key', alias: 'simpleDocumentType2', @@ -1134,7 +1146,7 @@ export const data: Array = [ isElement: false, hasChildren: false, isContainer: false, - parentId: null, + parent: null, isFolder: false, properties: [ { @@ -1181,13 +1193,13 @@ export const data: Array = [ containers: [ { id: 'b275052a-1868-4901-bc8c-2b35b78a9ab2', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, }, ], - allowedContentTypes: [{ id: 'simple-document-type-key', sortOrder: 0 }], + allowedDocumentTypes: [{ id: 'simple-document-type-key', sortOrder: 0 }], compositions: [], cleanup: { preventCleanup: false, @@ -1196,7 +1208,7 @@ export const data: Array = [ }, }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: 'folder-umbraco-demo-blocks-id', alias: 'folderUmbracoDemoBlocks', @@ -1209,9 +1221,9 @@ export const data: Array = [ isElement: false, hasChildren: true, isContainer: false, - parentId: null, + parent: null, isFolder: true, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -1222,7 +1234,7 @@ export const data: Array = [ containers: [], }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: 'coffee-umbraco-demo-block-id', alias: 'coffeeUmbracoDemoBlock', @@ -1237,7 +1249,7 @@ export const data: Array = [ isContainer: false, parentId: 'folder-umbraco-demo-blocks-id', isFolder: false, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -1289,7 +1301,7 @@ export const data: Array = [ containers: [ { id: 'coffee-content-group-key', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, @@ -1297,7 +1309,7 @@ export const data: Array = [ ], }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: 'headline-umbraco-demo-block-id', alias: 'headlineUmbracoDemoBlock', @@ -1312,7 +1324,7 @@ export const data: Array = [ isContainer: false, parentId: 'folder-umbraco-demo-blocks-id', isFolder: false, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -1344,7 +1356,7 @@ export const data: Array = [ containers: [ { id: 'headline-content-group-key', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, @@ -1352,7 +1364,7 @@ export const data: Array = [ ], }, { - allowedTemplateIds: [], + allowedTemplates: [], defaultTemplateId: null, id: 'image-umbraco-demo-block-id', alias: 'imageUmbracoDemoBlock', @@ -1367,7 +1379,7 @@ export const data: Array = [ isContainer: false, parentId: 'folder-umbraco-demo-blocks-id', isFolder: false, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -1399,7 +1411,7 @@ export const data: Array = [ containers: [ { id: 'image-content-group-key', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, @@ -1407,8 +1419,8 @@ export const data: Array = [ ], }, { - allowedTemplateIds: [], - defaultTemplateId: null, + allowedTemplates: [], + defaultTemplate: null, id: 'rich-text-umbraco-demo-block-id', alias: 'richTextUmbracoDemoBlock', name: 'Rich Text', @@ -1419,10 +1431,9 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, - parentId: 'folder-umbraco-demo-blocks-id', + parent: { id: 'folder-umbraco-demo-blocks-id' }, isFolder: false, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, @@ -1432,11 +1443,11 @@ export const data: Array = [ properties: [ { id: 'rich-text-id', - containerId: 'rich-text-content-group-key', + container: { id: 'rich-text-content-group-key' }, alias: 'richText', name: 'Text', description: '', - dataTypeId: 'dt-richTextEditor', + dataType: { id: 'dt-richTextEditor' }, variesByCulture: false, variesBySegment: false, sortOrder: 10, @@ -1454,7 +1465,7 @@ export const data: Array = [ containers: [ { id: 'rich-text-content-group-key', - parentId: null, + parent: null, name: 'Content', type: 'Group', sortOrder: 0, @@ -1462,8 +1473,8 @@ export const data: Array = [ ], }, { - allowedTemplateIds: [], - defaultTemplateId: null, + allowedTemplates: [], + defaultTemplate: null, id: 'two-column-layout-umbraco-demo-block-id', alias: 'twoColumnLayoutUmbracoDemoBlock', name: 'Two Column Layout', @@ -1474,10 +1485,11 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, - parentId: 'folder-umbraco-demo-blocks-id', + parent: { + id: 'folder-umbraco-demo-blocks-id', + }, isFolder: false, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, From a385a197fb5c6f1dbb5174bbfada595b8788306f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 20:03:21 +0100 Subject: [PATCH 482/786] update doc type mock mapper --- .../src/mocks/data/document-type/document-type.db.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index 546af3a30e..2143f34e1b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -69,13 +69,12 @@ const createMockDocumentTypeMapper = (request: CreateDocumentTypeRequestModel): variesByCulture: request.variesByCulture, variesBySegment: request.variesBySegment, isElement: request.isElement, - allowedContentTypes: request.allowedContentTypes, + allowedDocumentTypes: request.allowedDocumentTypes, compositions: request.compositions, - parentId: request.containerId, + parent: request.folder, isFolder: false, hasChildren: false, - isContainer: false, - allowedTemplateIds: [], + allowedTemplates: [], cleanup: { preventCleanup: false, keepAllVersionsNewerThanDays: null, From c244c99f6e14908a0aa77b4caf58c7b06368c7a3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 20:03:38 +0100 Subject: [PATCH 483/786] update document mock mapper --- .../src/mocks/data/document/document.db.ts | 69 ++++++++++--------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts index 774700770a..d049a1c55c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts @@ -60,67 +60,70 @@ export class UmbDocumentMockDB extends UmbEntityMockDbBase } const treeItemMapper = (model: UmbMockDocumentModel): Omit => { - const documentType = umbDocumentTypeMockDb.read(model.contentTypeId); - if (!documentType) throw new Error(`Document type with id ${model.contentTypeId} not found`); + const documentType = umbDocumentTypeMockDb.read(model.documentType.id); + if (!documentType) throw new Error(`Document type with id ${model.documentType.id} not found`); return { - id: model.id, - parentId: model.parentId, - contentTypeId: model.contentTypeId, - variants: model.variants, - icon: documentType.icon, - isContainer: documentType.isContainer, - name: model.variants?.[0]?.name, + documentType: { + hasListView: model.documentType.hasListView, + icon: model.documentType.icon, + id: model.documentType.id, + }, hasChildren: model.hasChildren, - noAccess: model.noAccess, + id: model.id, isProtected: model.isProtected, - isPublished: model.isProtected, - isEdited: model.isEdited, isTrashed: model.isTrashed, + noAccess: model.noAccess, + parent: model.parent, + variants: model.variants, }; }; const createMockDocumentMapper = (request: CreateDocumentRequestModel): UmbMockDocumentModel => { - const documentType = umbDocumentTypeMockDb.read(request.contentTypeId); - if (!documentType) throw new Error(`Document type with id ${request.contentTypeId} not found`); + const documentType = umbDocumentTypeMockDb.read(request.documentType.id); + if (!documentType) throw new Error(`Document type with id ${request.documentType.id} not found`); return { - id: request.id ? request.id : UmbId.new(), - parentId: request.parentId, - contentTypeId: request.contentTypeId, - variants: request.variants, - values: request.values, - name: request.variants?.[0]?.name, - icon: documentType.icon, - isContainer: documentType.isContainer, + documentType: { + id: documentType.id, + icon: documentType.icon, + hasListView: documentType.hasListView, + }, hasChildren: false, - noAccess: false, + id: request.id ? request.id : UmbId.new(), isProtected: false, - isPublished: false, - isEdited: false, isTrashed: false, + noAccess: false, + parent: request.parent, + values: request.values, + variants: request.variants, + urls: [], }; }; const detailResponseMapper = (model: UmbMockDocumentModel): DocumentResponseModel => { return { + documentType: model.documentType, + id: model.id, + isTrashed: model.isTrashed, + template: model.template, + urls: model.urls, values: model.values, variants: model.variants, - id: model.id, - contentTypeId: model.contentTypeId, - urls: model.urls, - templateId: model.templateId, - isTrashed: model.isTrashed, }; }; const itemMapper = (model: UmbMockDocumentModel): DocumentItemResponseModel => { return { - name: model.name, + documentType: { + hasListView: model.documentType.hasListView, + icon: model.documentType.icon, + id: model.documentType.id, + }, id: model.id, - icon: model.icon, - contentTypeId: model.contentTypeId, + isProtected: model.isProtected, isTrashed: model.isTrashed, + variants: model.variants, }; }; From e997fd70ad8e4f266c43e5ca16723312bfce985a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 20:04:13 +0100 Subject: [PATCH 484/786] update mocks + models --- .../mocks/data/media-type/media-type.data.ts | 2 +- .../src/mocks/data/media.data.ts | 82 ++++++++++++------- .../src/packages/core/content-type/types.ts | 11 +-- ...document-type-detail.server.data-source.ts | 6 +- .../documents/document-types/types.ts | 4 +- 5 files changed, 62 insertions(+), 43 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts index ed9f0f1032..0e20bacc4e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts @@ -13,7 +13,7 @@ export interface UmbMockMediaTypeModel extends Omit = [ { name: 'Media Type 1', - id: 'c5159663-eb82-43ee-bd23-e42dc5e71db6', + id: 'media-type-1-id', parentId: null, description: 'Media type 1 description', alias: 'mediaType1', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts index 20e4dc1dfa..edd2a215be 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts @@ -1,7 +1,7 @@ import type { UmbMediaDetailModel } from '../../packages/media/media/index.js'; import { UmbEntityTreeData } from './entity-tree.data.js'; import { UmbEntityData } from './entity.data.js'; -import { createContentTreeItem, createMediaTreeItem } from './utils.js'; +import { createMediaTreeItem } from './utils.js'; import { ContentTreeItemResponseModel, MediaItemResponseModel, @@ -10,14 +10,17 @@ import { export const data: Array = [ { - name: 'Flipped Car', type: 'media', hasChildren: false, id: 'f2f81a40-c989-4b6b-84e2-057cecd3adc1', - isContainer: false, - parentId: null, + parent: null, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [ { alias: 'myMediaHeadline', @@ -35,14 +38,17 @@ export const data: Array = [ variants: [], }, { - name: 'Umbracoffee', type: 'media', hasChildren: false, id: '69431027-8867-45bf-a93b-72bbdabfb177', - isContainer: false, - parentId: null, + parent: null, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [ { alias: 'myMediaDescription', @@ -60,40 +66,49 @@ export const data: Array = [ variants: [], }, { - name: 'People', type: 'media', hasChildren: true, id: '69461027-8867-45bf-a93b-72bbdabfb177', - isContainer: true, - parentId: null, + parent: null, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [], data: [], variants: [], }, { - name: 'Products', type: 'media', hasChildren: true, id: '69461027-8867-45bf-a93b-5224dabfb177', - isContainer: true, - parentId: null, + parent: null, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [], data: [], variants: [], }, { - name: 'John Smith', type: 'media', hasChildren: false, id: '69431027-8867-45s7-a93b-7uibdabfb177', - isContainer: false, - parentId: '69461027-8867-45bf-a93b-72bbdabfb177', + parent: { id: '69461027-8867-45bf-a93b-72bbdabfb177' }, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [ { alias: 'myMediaDescription', @@ -111,14 +126,17 @@ export const data: Array = [ variants: [], }, { - name: 'Jane Doe', type: 'media', hasChildren: false, id: '69431027-8867-45s7-a93b-7uibdabf2147', - isContainer: false, - parentId: '69461027-8867-45bf-a93b-72bbdabfb177', + parent: { id: '69461027-8867-45bf-a93b-72bbdabfb177' }, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [ { alias: 'myMediaDescription', @@ -136,14 +154,17 @@ export const data: Array = [ variants: [], }, { - name: 'A very nice hat', type: 'media', hasChildren: false, id: '694hdj27-8867-45s7-a93b-7uibdabf2147', - isContainer: false, - parentId: '69461027-8867-45bf-a93b-5224dabfb177', + parent: { id: '69461027-8867-45bf-a93b-5224dabfb177' }, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [ { alias: 'myMediaDescription', @@ -161,14 +182,17 @@ export const data: Array = [ variants: [], }, { - name: 'Fancy old chair', type: 'media', hasChildren: false, id: '694hdj27-1237-45s7-a93b-7uibdabfas47', - isContainer: false, - parentId: '69461027-8867-45bf-a93b-5224dabfb177', + parent: { id: '69461027-8867-45bf-a93b-5224dabfb177' }, noAccess: false, isTrashed: false, + mediaType: { + id: 'media-type-1-id', + icon: 'icon-bug', + hasListView: false, + }, properties: [ { alias: 'myMediaDescription', @@ -190,9 +214,9 @@ export const data: Array = [ const createMediaItem = (item: UmbMediaDetailModel): MediaItemResponseModel => { return { id: item.id, - name: item.name, - icon: item.icon, + mediaType: item.mediaType, isTrashed: false, + variants: item.variants, }; }; @@ -213,14 +237,14 @@ class UmbMediaData extends UmbEntityData { } getTreeRoot(): PagedMediaTreeItemResponseModel { - const items = this.data.filter((item) => item.parentId === null); + const items = this.data.filter((item) => item.parent?.id === null); const treeItems = items.map((item) => createMediaTreeItem(item)); const total = items.length; return { items: treeItems, total }; } getTreeItemChildren(id: string): PagedMediaTreeItemResponseModel { - const items = this.data.filter((item) => item.parentId === id); + const items = this.data.filter((item) => item.parent?.id === id); const treeItems = items.map((item) => createMediaTreeItem(item)); const total = items.length; return { items: treeItems, total }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index 130d6a81a0..9b30c46655 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -1,9 +1,4 @@ -import { - ContentTypeCompositionModel, - ContentTypeSortModel, - MediaTypePropertyTypeContainerResponseModel, - MediaTypePropertyTypeResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import { PropertyTypeContainerModelBaseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbContentTypeModel { unique: string; @@ -17,8 +12,8 @@ export interface UmbContentTypeModel { variesBySegment: boolean; isElement: boolean; // TODO: investigate if we need our own model for these - properties: Array; - containers: Array; + properties: Array; + containers: Array; allowedContentTypes: Array; compositions: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 6ffc8bd296..d6f5116cef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -96,10 +96,10 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc isElement: data.isElement, properties: data.properties, containers: data.containers, - allowedContentTypes: data.allowedContentTypes, + allowedDocumentTypes: data.allowedDocumentTypes, compositions: data.compositions, - allowedTemplateIds: data.allowedTemplateIds, - defaultTemplateId: data.defaultTemplateId || null, + allowedTemplates: data.allowedTemplates, + defaultTemplate: data.defaultTemplate?.id || null, cleanup: data.cleanup, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts index 054a13dabf..a922dacf81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts @@ -4,7 +4,7 @@ import { ContentTypeCleanupModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDocumentTypeDetailModel extends UmbContentTypeModel { entityType: UmbDocumentTypeEntityType; - allowedTemplateIds: Array; - defaultTemplateId: string | null; + allowedTemplates: Array<{ id: string }>; + defaultTemplate: { id: string } | null; cleanup: ContentTypeCleanupModel; } From d4e8d19557626f8544d7cf97fdc8afddb26c4fa5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 20:06:32 +0100 Subject: [PATCH 485/786] delete refactored helper --- .../src/mocks/data/entity-tree.data.ts | 52 ------------------- .../src/mocks/data/media.data.ts | 5 +- 2 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts deleted file mode 100644 index c5436a0e15..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { UmbEntityData } from './entity.data.js'; -import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbId } from '@umbraco-cms/backoffice/id'; - -export class UmbEntityTreeData { - #detailDatabase: UmbEntityData; - - constructor(detailDatabase: UmbEntityData) { - this.#detailDatabase = detailDatabase; - } - - move(ids: Array, destinationId: string) { - const destinationItem = this.#detailDatabase.getById(destinationId); - if (!destinationItem) throw new Error(`Destination item with key ${destinationId} not found`); - - const items = this.#detailDatabase.getByIds(ids); - const movedItems = items.map((item) => { - return { - ...item, - parentId: destinationId, - }; - }); - - movedItems.forEach((movedItem) => this.#detailDatabase.updateData(movedItem)); - destinationItem.hasChildren = true; - this.#detailDatabase.updateData(destinationItem); - } - - copy(ids: Array, destinationKey: string) { - const destinationItem = this.#detailDatabase.getById(destinationKey); - if (!destinationItem) throw new Error(`Destination item with key ${destinationKey} not found`); - - // TODO: Notice we don't add numbers to the 'copy' name. - const items = this.#detailDatabase.getByIds(ids); - const copyItems = items.map((item) => { - return { - ...item, - name: item.name + ' Copy', - id: UmbId.new(), - parentId: destinationKey, - }; - }); - - copyItems.forEach((copyItem) => this.#detailDatabase.insert(copyItem)); - const newIds = copyItems.map((item) => item.id); - - destinationItem.hasChildren = true; - this.#detailDatabase.updateData(destinationItem); - - return newIds; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts index edd2a215be..e2728c070d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts @@ -1,5 +1,4 @@ import type { UmbMediaDetailModel } from '../../packages/media/media/index.js'; -import { UmbEntityTreeData } from './entity-tree.data.js'; import { UmbEntityData } from './entity.data.js'; import { createMediaTreeItem } from './utils.js'; import { @@ -225,8 +224,6 @@ const createMediaItem = (item: UmbMediaDetailModel): MediaItemResponseModel => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore class UmbMediaData extends UmbEntityData { - #tree = new UmbEntityTreeData(this); - constructor() { super(data); } @@ -256,7 +253,7 @@ class UmbMediaData extends UmbEntityData { } move(ids: Array, destinationKey: string) { - return this.#tree.move(ids, destinationKey); + alert('change to new tree managers'); } } From ef54efa86c29143ddc6347cfd47e6bec7459bf12 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 20:13:26 +0100 Subject: [PATCH 486/786] update template mock data --- .../src/mocks/data/template.data.ts | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts index d3c1592992..bebf815e85 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts @@ -3,7 +3,6 @@ import { createEntityTreeItem } from './utils.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { EntityTreeItemResponseModel, - PagedEntityTreeItemResponseModel, TemplateResponseModel, TemplateScaffoldResponseModel, CreateTemplateRequestModel, @@ -12,6 +11,7 @@ import { TemplateQueryPropertyTypeModel, OperatorModel, TemplateQueryResultResponseModel, + PagedNamedEntityTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; type UmbMockTemplateModel = TemplateResponseModel & EntityTreeItemResponseModel; @@ -35,10 +35,9 @@ const createTemplateItem = (dbItem: UmbMockTemplateModel): TemplateItemResponseM export const data: Array = [ { id: '2bf464b6-3aca-4388-b043-4eb439cc2643', - isContainer: false, - parentId: null, + parent: null, name: 'Doc 1', - type: 'template', + type: 'templa }te', hasChildren: false, alias: 'Doc1', content: `@using Umbraco.Extensions @@ -57,10 +56,9 @@ export const data: Array = [ }, { id: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', - isContainer: false, - parentId: null, + parent: null, name: 'Test', - type: 'template', + type: 'templat }e', hasChildren: true, alias: 'Test', content: @@ -68,8 +66,7 @@ export const data: Array = [ }, { id: '9a84c0b3-03b4-4dd4-84ac-706740ac0f72', - isContainer: false, - parentId: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', + parent: { id: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71' }, masterTemplateId: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', name: 'Child', type: 'template', @@ -80,8 +77,7 @@ export const data: Array = [ }, { id: '9a84c0b3-03b4-4dd4-84ac-706740acwerer0f72', - isContainer: false, - parentId: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', + parent: { id: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71' }, name: 'Has Master Template', masterTemplateId: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', type: 'template', @@ -232,15 +228,15 @@ class UmbTemplateData extends UmbEntityData { return template; } - getTreeRoot(): PagedEntityTreeItemResponseModel { - const items = this.data.filter((item) => item.parentId === null); + getTreeRoot(): PagedNamedEntityTreeItemResponseModel { + const items = this.data.filter((item) => item.parent?.id === null); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getTreeItemChildren(id: string): PagedEntityTreeItemResponseModel { - const items = this.data.filter((item) => item.parentId === id); + getTreeItemChildren(id: string): PagedNamedEntityTreeItemResponseModel { + const items = this.data.filter((item) => item.parent?.id === id); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; return { items: treeItems, total }; From 23354f338bd5c64742af30cec1f57fbfbe84d1ee Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 22 Jan 2024 20:13:39 +0100 Subject: [PATCH 487/786] update mocks utils --- .../src/mocks/data/utils.ts | 46 ++----------------- 1 file changed, 3 insertions(+), 43 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index b05c6cace7..e6b07c48f8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -1,26 +1,20 @@ import type { ContentTreeItemResponseModel, - DocumentTreeItemResponseModel, - EntityTreeItemResponseModel, FolderTreeItemResponseModel, FileSystemTreeItemPresentationModel, - DocumentResponseModel, - FileSystemFileResponseModelBaseModel, FileSystemItemResponseModelBaseModel, - MediaTypeResponseModel, - MediaTypeTreeItemResponseModel, MediaTreeItemResponseModel, + NamedEntityTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbMediaDetailModel } from '@umbraco-cms/backoffice/media'; -export const createEntityTreeItem = (item: any): EntityTreeItemResponseModel => { +export const createEntityTreeItem = (item: any): NamedEntityTreeItemResponseModel => { return { name: item.name, type: item.type, hasChildren: item.hasChildren, id: item.id, - isContainer: item.isContainer, - parentId: item.parentId ?? null, + parent: item.parent, }; }; @@ -40,24 +34,6 @@ export const createContentTreeItem = (item: any): ContentTreeItemResponseModel = }; }; -export const createDocumentTreeItem = (item: DocumentResponseModel): DocumentTreeItemResponseModel => { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - return { - ...createContentTreeItem(item), - type: 'document', - icon: 'document', // TODO: Should get this from document type... - name: item.variants?.[0].name ?? '', - noAccess: false, - isProtected: false, - isPublished: false, - isEdited: false, - isTrashed: false, - hasChildren: false, - isContainer: false, - }; -}; - export const createMediaTreeItem = (item: UmbMediaDetailModel): MediaTreeItemResponseModel => { return { ...createContentTreeItem(item), @@ -66,15 +42,6 @@ export const createMediaTreeItem = (item: UmbMediaDetailModel): MediaTreeItemRes }; }; -export const createMediaTypeTreeItem = (item: MediaTypeResponseModel): MediaTypeTreeItemResponseModel => { - return { - ...createEntityTreeItem(item), - type: 'media-type', - isFolder: false, - icon: item.icon, - }; -}; - export const createFileSystemTreeItem = (item: any): Omit => { return { path: item.path, @@ -85,13 +52,6 @@ export const createFileSystemTreeItem = (item: any): Omit ({ - path: item.path, - name: item.name, - parent: item.parent, - content: item.content, -}); - export const createFileItemResponseModelBaseModel = (item: any): FileSystemItemResponseModelBaseModel => ({ path: item.path, name: item.name, From 86c57bf113ba5b89cabf65aa72d2017a6eb98250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 22 Jan 2024 21:55:16 +0100 Subject: [PATCH 488/786] create block at a decired index --- .../libs/observable-api/states/array-state.ts | 28 +++++++++++++++ .../utils/push-at-to-unique-array.function.ts | 29 ++++++++++++++++ .../block-grid-workspace.modal-token.ts | 20 +++++++++++ .../block/block-grid/workspace/index.ts | 1 + .../manager/block-list-manager.context.ts | 7 ++-- .../property-editor-ui-block-list.element.ts | 20 +++++++---- .../block-list-workspace.modal-token.ts | 19 +++++++++++ .../block/block-list/workspace/index.ts | 1 + .../block-rte-workspace.modal-token.ts | 19 +++++++++++ .../block/block-rte/workspace/index.ts | 1 + .../block/manager/block-manager.context.ts | 31 +++++++++++------ .../block-catalogue-modal.element.ts | 34 ++++++++++++------- .../block-catalogue-modal.token.ts | 3 +- .../workspace/block-workspace.context.ts | 20 ++++++++--- .../workspace/block-workspace.modal-token.ts | 21 ++++++++---- 15 files changed, 210 insertions(+), 44 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/push-at-to-unique-array.function.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts index 5d5b5f12a7..402cb2b4f5 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/states/array-state.ts @@ -1,4 +1,5 @@ import { partialUpdateFrozenArray } from '../utils/partial-update-frozen-array.function.js'; +import { pushAtToUniqueArray } from '../utils/push-at-to-unique-array.function.js'; import { pushToUniqueArray } from '../utils/push-to-unique-array.function.js'; import { UmbDeepState } from './deep-state.js'; @@ -166,6 +167,33 @@ export class UmbArrayState extends UmbDeepState { return this; } + /** + * @method appendOneAt + * @param {T} entry - new data to be added in this Subject. + * @param {T} index - index of where to append this data into the Subject. + * @return {UmbArrayState} Reference to it self. + * @description - Append some new data to this Subject. + * @example Example append some data. + * const data = [ + * { key: 1, value: 'foo'}, + * { key: 3, value: 'bar'} + * ]; + * const myState = new UmbArrayState(data); + * myState.appendOneAt({ key: 2, value: 'in-between'}, 1); + */ + appendOneAt(entry: T, index: number) { + const next = [...this.getValue()]; + if (this.getUniqueMethod) { + pushAtToUniqueArray(next, entry, this.getUniqueMethod, index); + } else if (index === -1 || index >= next.length) { + next.push(entry); + } else { + next.splice(index, 0, entry); + } + this.setValue(next); + return this; + } + /** * @method append * @param {T[]} entries - A array of new data to be added in this Subject. diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/push-at-to-unique-array.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/push-at-to-unique-array.function.ts new file mode 100644 index 0000000000..4d27c9c0bb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/push-at-to-unique-array.function.ts @@ -0,0 +1,29 @@ +/** + * @export + * @method pushToUniqueArray + * @param {T[]} data - An array of objects. + * @param {T} entry - The object to insert or replace with. + * @param {getUniqueMethod: (entry: T) => unknown} [getUniqueMethod] - Method to get the unique value of an entry. + * @description - Append or replaces an item of an Array. + * @example Example append new entry for a Array. Where the key is unique and the item will be updated if matched with existing. + * const entry = {key: 'myKey', value: 'myValue'}; + * const newDataSet = pushToUniqueArray([], entry, x => x.key === key, 1); + * mySubject.next(newDataSet); + */ +export function pushAtToUniqueArray( + data: T[], + entry: T, + getUniqueMethod: (entry: T) => unknown, + index: number, +): T[] { + const unique = getUniqueMethod(entry); + const indexToReplace = data.findIndex((x) => getUniqueMethod(x) === unique); + if (indexToReplace !== -1) { + data[indexToReplace] = entry; + } else if (index === -1 || index >= data.length) { + data.push(entry); + } else { + data.splice(index, 0, entry); + } + return data; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts new file mode 100644 index 0000000000..644cd75751 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts @@ -0,0 +1,20 @@ +import { UmbBlockWorkspaceData } from '../../index.js'; +import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; + +export interface UmbBlockListWorkspaceData + extends UmbBlockWorkspaceData<{ + index: number; + parentId: string | null; + }> {} + +export const UMB_BLOCK_GRID_WORKSPACE_MODAL = new UmbModalToken( + 'Umb.Modal.Workspace', + { + modal: { + type: 'sidebar', + size: 'medium', + }, + data: { entityType: 'block', preset: {}, originData: { index: -1, parentId: null } }, + // Recast the type, so the entityType data prop is not required: + }, +) as UmbModalToken, UmbWorkspaceValue>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/index.ts index ff371a313e..e94538cd86 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/index.ts @@ -1 +1,2 @@ export const UMB_BLOCK_GRID_TYPE_WORKSPACE_ALIAS = 'Umb.Workspace.BlockGridType'; +export * from './block-grid-workspace.modal-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts index a53003c06a..265645fe82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/manager/block-list-manager.context.ts @@ -1,5 +1,6 @@ import type { UmbBlockListLayoutModel, UmbBlockListTypeModel } from '../types.js'; import { UmbBlockManagerContext } from '../../block/manager/block-manager.context.js'; +import type { UmbBlockListWorkspaceData } from '../index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; @@ -17,10 +18,12 @@ export class UmbBlockListManagerContext< this.#inlineEditingMode.setValue(inlineEditingMode ?? false); } - createBlock(layoutEntry: Omit, contentElementTypeKey: string) { + _createBlock(modalData: UmbBlockListWorkspaceData, layoutEntry: BlockLayoutType, contentElementTypeKey: string) { // Here is room to append some extra layout properties if needed for this type. - return super._createBlockData(layoutEntry, contentElementTypeKey); + this._layouts.appendOneAt(layoutEntry, modalData.originData.index ?? -1); + + return true; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 4e779bc0bc..eb9e5d801c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -136,9 +136,16 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement }); new UmbModalRouteRegistrationController(this, UMB_BLOCK_CATALOGUE_MODAL) - .addAdditionalPath(':view') + .addAdditionalPath(':view/:index') .onSetup((routingInfo) => { - return { data: { blocks: this._blocks ?? [], openClipboard: routingInfo.view === 'clipboard' } }; + const index = routingInfo.index ? parseInt(routingInfo.index) : -1; + return { + data: { + blocks: this._blocks ?? [], + openClipboard: routingInfo.view === 'clipboard', + blockOriginData: { index: index }, + }, + }; }) .observeRouteBuilder((routeBuilder) => { this._catalogueRouteBuilder = routeBuilder; @@ -149,8 +156,9 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement return html` ${repeat( this._layouts, (x) => x.contentUdi, - (layoutEntry) => - html` + (layoutEntry, index) => + html` `, )} @@ -159,13 +167,13 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement id="add-button" look="placeholder" label=${this.localize.term('content_createEmpty')} - href=${this._catalogueRouteBuilder?.({ view: 'create' }) ?? ''}> + href=${this._catalogueRouteBuilder?.({ view: 'create', index: -1 }) ?? ''}> ${this.localize.term('content_createEmpty')} + href=${this._catalogueRouteBuilder?.({ view: 'clipboard', index: -1 }) ?? ''}> `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts new file mode 100644 index 0000000000..4c2cee12ac --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts @@ -0,0 +1,19 @@ +import { UmbBlockWorkspaceData } from '../../index.js'; +import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; + +export interface UmbBlockListWorkspaceData + extends UmbBlockWorkspaceData<{ + index: number; + }> {} + +export const UMB_BLOCK_LIST_WORKSPACE_MODAL = new UmbModalToken( + 'Umb.Modal.Workspace', + { + modal: { + type: 'sidebar', + size: 'medium', + }, + data: { entityType: 'block', preset: {}, originData: { index: -1 } }, + // Recast the type, so the entityType data prop is not required: + }, +) as UmbModalToken, UmbWorkspaceValue>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/index.ts index b4685e9690..3aef41c3bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/index.ts @@ -1 +1,2 @@ export const UMB_BLOCK_LIST_TYPE_WORKSPACE_ALIAS = 'Umb.Workspace.BlockListType'; +export * from './block-list-workspace.modal-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts new file mode 100644 index 0000000000..274007f4c0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts @@ -0,0 +1,19 @@ +import { UmbBlockWorkspaceData } from '../../index.js'; +import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; + +export interface UmbBlockListWorkspaceData + extends UmbBlockWorkspaceData<{ + index: number; + }> {} + +export const UMB_BLOCK_RTE_WORKSPACE_MODAL = new UmbModalToken( + 'Umb.Modal.Workspace', + { + modal: { + type: 'sidebar', + size: 'medium', + }, + data: { entityType: 'block', preset: {}, originData: { index: -1 } }, + // Recast the type, so the entityType data prop is not required: + }, +) as UmbModalToken, UmbWorkspaceValue>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/index.ts index 557b771a07..9065e8bf6c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/index.ts @@ -1 +1,2 @@ export const UMB_BLOCK_RTE_TYPE_WORKSPACE_ALIAS = 'Umb.Workspace.BlockRteType'; +export * from './block-rte-workspace.modal-token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 4baf548c1b..0003d05b40 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -8,6 +8,7 @@ import { UMB_BLOCK_MANAGER_CONTEXT, UMB_BLOCK_WORKSPACE_MODAL, UmbBlockTypeBaseModel, + UmbBlockWorkspaceData, } from '@umbraco-cms/backoffice/block'; import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; @@ -36,8 +37,8 @@ export abstract class UmbBlockManagerContext< #editorConfiguration = new UmbClassState(undefined); public readonly editorConfiguration = this.#editorConfiguration.asObservable(); - #layouts = new UmbArrayState(>[], (x) => x.contentUdi); - public readonly layouts = this.#layouts.asObservable(); + protected _layouts = new UmbArrayState(>[], (x) => x.contentUdi); + public readonly layouts = this._layouts.asObservable(); #contents = new UmbArrayState(>[], (x) => x.udi); public readonly contents = this.#contents.asObservable(); @@ -57,7 +58,7 @@ export abstract class UmbBlockManagerContext< } setLayouts(layouts: Array) { - this.#layouts.setValue(layouts); + this._layouts.setValue(layouts); } setContents(contents: Array) { @@ -116,7 +117,7 @@ export abstract class UmbBlockManagerContext< } layoutOf(contentUdi: string) { - return this.#layouts.asObservablePart((source) => source.find((x) => x.contentUdi === contentUdi)); + return this._layouts.asObservablePart((source) => source.find((x) => x.contentUdi === contentUdi)); } contentOf(udi: string) { return this.#contents.asObservablePart((source) => source.find((x) => x.udi === udi)); @@ -126,7 +127,7 @@ export abstract class UmbBlockManagerContext< } setOneLayout(layoutData: BlockLayoutType) { - return this.#layouts.appendOne(layoutData); + return this._layouts.appendOne(layoutData); } setOneContent(contentData: UmbBlockDataType) { this.#contents.appendOne(contentData); @@ -135,9 +136,17 @@ export abstract class UmbBlockManagerContext< this.#settings.appendOne(settingsData); } - abstract createBlock(layoutEntry: Omit, contentElementTypeKey: string): boolean; + abstract _createBlock( + modalData: UmbBlockWorkspaceData, + layoutEntry: Omit, + contentElementTypeKey: string, + ): boolean; - protected _createBlockData(layoutEntry: Omit, contentElementTypeKey: string) { + public createBlock( + modalData: UmbBlockWorkspaceData, + layoutEntry: Omit, + contentElementTypeKey: string, + ) { // Find block type. const blockType = this.#blockTypes.value.find((x) => x.contentElementTypeKey === contentElementTypeKey); if (!blockType) { @@ -154,7 +163,9 @@ export abstract class UmbBlockManagerContext< fullLayoutEntry.settingsUdi = buildUdi('element', UmbId.new()); } - this.#layouts.appendOne(fullLayoutEntry); + if (this._createBlock(modalData, fullLayoutEntry, contentElementTypeKey) === false) { + return false; + } // Create content entry: if (fullLayoutEntry.contentUdi) { @@ -184,14 +195,14 @@ export abstract class UmbBlockManagerContext< } deleteBlock(contentUdi: string) { - const layout = this.#layouts.value.find((x) => x.contentUdi === contentUdi); + const layout = this._layouts.value.find((x) => x.contentUdi === contentUdi); if (!layout) return; if (layout.settingsUdi) { this.#settings.removeOne(layout.settingsUdi); } - this.#layouts.removeOne(contentUdi); + this._layouts.removeOne(contentUdi); this.#contents.removeOne(contentUdi); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index f941ef81a8..683d0862dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -6,7 +6,11 @@ import { } from '@umbraco-cms/backoffice/block'; import { css, html, customElement, state, repeat, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import { groupBy } from '@umbraco-cms/backoffice/external/lodash'; -import { UmbModalBaseElement, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { + UMB_MODAL_CONTEXT_TOKEN, + UmbModalBaseElement, + UmbModalRouteRegistrationController, +} from '@umbraco-cms/backoffice/modal'; @customElement('umb-block-catalogue-modal') export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< @@ -28,18 +32,22 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< constructor() { super(); - new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL) - //.addAdditionalPath('block') // No need for additional path specification in this context as this is for sure the only workspace we want to open here. - .onSetup(() => { - return { data: { preset: {} } }; - }) - .onSubmit(() => { - // When workspace is submitted, we want to close this modal. - this.modalContext?.submit(); - }) - .observeRouteBuilder((routeBuilder) => { - this._workspacePath = routeBuilder({}); - }); + this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (modalContext) => { + new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL) + //.addAdditionalPath('block') // No need for additional path specification in this context as this is for sure the only workspace we want to open here. + .onSetup(() => { + return { + data: { preset: {}, originData: (modalContext.data as UmbBlockCatalogueModalData).blockOriginData }, + }; + }) + .onSubmit(() => { + // When workspace is submitted, we want to close this modal. + this.modalContext?.submit(); + }) + .observeRouteBuilder((routeBuilder) => { + this._workspacePath = routeBuilder({}); + }); + }); } connectedCallback() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts index 99cedd7654..9d64c42970 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts @@ -1,10 +1,11 @@ -import { UmbBlockTypeBaseModel } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeBaseModel, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockCatalogueModalData { blocks: Array; blockGroups?: Array<{ name: string; key: string }>; openClipboard?: boolean; + blockOriginData: UmbBlockWorkspaceData; } export type UmbBlockCatalogueModalValue = never; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 9f5c0c7ad0..e36ccbe97f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -5,7 +5,7 @@ import { UmbBooleanState, UmbObjectState, UmbStringState } from '@umbraco-cms/ba import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_MANAGER_CONTEXT, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; import { buildUdi } from '@umbraco-cms/backoffice/utils'; import { UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; @@ -18,8 +18,9 @@ export class UmbBlockWorkspaceContext< readonly workspaceAlias; #blockManager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; - #retrieveModalContext; #retrieveBlockManager; + #modalContext?: typeof UMB_MODAL_CONTEXT_TOKEN.TYPE; + #retrieveModalContext; #editorConfigPromise?: Promise; #entityType: string; @@ -49,6 +50,7 @@ export class UmbBlockWorkspaceContext< this.workspaceAlias = workspaceArgs.manifest.alias; this.#retrieveModalContext = this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { + this.#modalContext = context; context.onSubmit().catch(this.#modalRejected); }).asPromise(); @@ -111,13 +113,17 @@ export class UmbBlockWorkspaceContext< async create(contentElementTypeId: string) { await this.#retrieveBlockManager; + await this.#retrieveModalContext; if (!this.#blockManager) { - throw new Error('Block manager not found'); + throw new Error('Block Manager not found'); + return; + } + if (!this.#modalContext) { + throw new Error('Modal Context not found'); return; } // // TODO: Condense this into some kind of create method? - const key = UmbId.new(); const contentUdi = buildUdi('block', key); const layoutData: UmbBlockLayoutBaseModel = { @@ -135,7 +141,11 @@ export class UmbBlockWorkspaceContext< this.#layout.setValue(layoutData as LayoutDataType); if (this.#liveEditingMode) { - const blockCreated = this.#blockManager.createBlock(layoutData, contentElementTypeId); + const blockCreated = this.#blockManager.createBlock( + this.#modalContext.data as UmbBlockWorkspaceData, + layoutData, + contentElementTypeId, + ); if (!blockCreated) { throw new Error('Block Manager could not create block'); return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts index b23ffe2e7c..e015bc4b7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts @@ -1,10 +1,17 @@ import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; -export const UMB_BLOCK_WORKSPACE_MODAL = new UmbModalToken('Umb.Modal.Workspace', { - modal: { - type: 'sidebar', - size: 'large', +export interface UmbBlockWorkspaceData extends UmbWorkspaceData { + originData: OriginDataType; +} + +export const UMB_BLOCK_WORKSPACE_MODAL = new UmbModalToken( + 'Umb.Modal.Workspace', + { + modal: { + type: 'sidebar', + size: 'large', + }, + data: { entityType: 'block', preset: {}, originData: {} }, + // Recast the type, so the entityType data prop is not required: }, - data: { entityType: 'block', preset: {} }, - // Recast the type, so the entityType data prop is not required: -}) as UmbModalToken, UmbWorkspaceValue>; +) as UmbModalToken, UmbWorkspaceValue>; From 54f01a88ad044f1a3d03a5913831fda5aa059659 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 10:52:51 +0100 Subject: [PATCH 489/786] implement document type folders --- .../folder/data-type-folder.repository.ts | 6 +- .../entity-actions/create/create.action.ts | 2 +- ...ument-type-create-options-modal.element.ts | 65 ++++----- .../entity-actions/create/modal/index.ts | 2 +- .../folder/document-type-folder.repository.ts | 30 +++++ ...document-type-folder.server.data-source.ts | 123 ++++++++++++++++++ .../document-types/tree/folder/index.ts | 2 + .../document-types/tree/folder/manifests.ts | 44 +++++++ .../document-types/tree/folder/types.ts | 6 + .../documents/document-types/tree/index.ts | 2 + .../document-types/tree/manifests.ts | 15 ++- 11 files changed, 251 insertions(+), 46 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts index 5bbc1b5ba6..fe78102a76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts @@ -11,8 +11,8 @@ export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { - const folderTreeItem: UmbDataTypeFolderTreeItemModel = { +const folderToDataTypeTreeItemMapper = (folder: UmbFolderModel): UmbDataTypeFolderTreeItemModel => { + return { unique: folder.unique, parentUnique: folder.parentUnique, name: folder.name, @@ -21,6 +21,4 @@ const folderToDataTypeTreeItemMapper = (folder: UmbFolderModel) => { hasChildren: false, isFolder: true, }; - - return folderTreeItem; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts index dbb08b58a6..5c3cc0ad17 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts @@ -21,7 +21,7 @@ export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase; +export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement { + #createFolderAction?: UmbCreateFolderEntityAction; - @property({ type: Object }) - data?: UmbDocumentTypeCreateOptionsModalData; + connectedCallback(): void { + super.connectedCallback(); - #modalContext?: UmbModalManagerContext; + if (this.data?.parentUnique === undefined) throw new Error('A parent unique is required to create a folder'); - constructor() { - super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this.#modalContext = instance; - }); + this.#createFolderAction = new UmbCreateFolderEntityAction( + this, + UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + // TODO: allow null for entity actions. Some actions can be executed on the root item + this.data.parentUnique, + ); } - #onClick(event: PointerEvent) { + async #onCreateFolderClick(event: PointerEvent) { event.stopPropagation(); - if (this.data?.parentKey === undefined) throw new Error('A parent unique is required to create a folder'); - const folderModalHandler = this.#modalContext?.open(UMB_FOLDER_CREATE_MODAL, { - data: { - folderRepositoryAlias: DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS, - parentUnique: this.data?.parentKey, - }, - }); - folderModalHandler?.onSubmit().then(() => this.modalContext?.submit()); + try { + await this.#createFolderAction?.execute(); + this._submitModal(); + } catch (error) { + console.error(error); + } } // close the modal when navigating to data type #onNavigate() { - this.modalContext?.submit(); - } - - #onCancel() { - this.modalContext?.reject(); + this._rejectModal(); } render() { @@ -55,16 +46,16 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { } - + } - Cancel + Cancel `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts index 2ad6689d9c..7ad338cdf7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/index.ts @@ -1,7 +1,7 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbDocumentTypeCreateOptionsModalData { - parentKey: string | null; + parentUnique: string | null; } export const UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL = new UmbModalToken( diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts new file mode 100644 index 0000000000..6a56a658be --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts @@ -0,0 +1,30 @@ +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; +import { UmbDocumentTypeFolderServerDataSource } from './document-type-folder.server.data-source.js'; +import { UmbDocumentTypeFolderTreeItemModel } from './types.js'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; + +export class UmbDocumentTypeFolderRepository extends UmbFolderRepositoryBase { + constructor(host: UmbControllerHost) { + super( + host, + UmbDocumentTypeFolderServerDataSource, + UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT, + folderToDocumentTypeTreeItemMapper, + ); + } +} + +const folderToDocumentTypeTreeItemMapper = (folder: UmbFolderModel): UmbDocumentTypeFolderTreeItemModel => { + return { + unique: folder.unique, + parentUnique: folder.parentUnique, + name: folder.name, + entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, + isContainer: false, + hasChildren: false, + isFolder: true, + isElement: false, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts new file mode 100644 index 0000000000..42b3d91614 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts @@ -0,0 +1,123 @@ +import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for a Document Type folder that fetches data from the server + * @export + * @class UmbDocumentTypeFolderServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbDocumentTypeFolderServerDataSource implements UmbFolderDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbDocumentTypeFolderServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbDocumentTypeFolderServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Fetches a Document Type folder from the server + * @param {string} unique + * @return {*} + * @memberof UmbDocumentTypeFolderServerDataSource + */ + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const { data, error } = await tryExecuteAndNotify( + this.#host, + DocumentTypeResource.getDocumentTypeFolderById({ + id: unique, + }), + ); + + if (data) { + const mappedData = { + unique: data.id, + name: data.name, + parentUnique: data.parentId || null, + }; + + return { data: mappedData }; + } + + return { error }; + } + + /** + * Creates a Document Type folder on the server + * @param {UmbCreateFolderModel} args + * @return {*} + * @memberof UmbDocumentTypeFolderServerDataSource + */ + async create(args: UmbCreateFolderModel) { + if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); + if (!args.name) throw new Error('Name is missing'); + + const requestBody = { + id: args.unique, + parentId: args.parentUnique, + name: args.name, + }; + + const { error } = await tryExecuteAndNotify( + this.#host, + DocumentTypeResource.postDocumentTypeFolder({ + requestBody, + }), + ); + + if (!error) { + return this.read(args.unique); + } + + return { error }; + } + + /** + * Updates a Document Type folder on the server + * @param {UmbUpdateFolderModel} args + * @return {*} + * @memberof UmbDocumentTypeFolderServerDataSource + */ + async update(args: UmbUpdateFolderModel) { + if (!args.unique) throw new Error('Unique is missing'); + if (!args.name) throw new Error('Folder name is missing'); + + const { error } = await tryExecuteAndNotify( + this.#host, + DocumentTypeResource.putDocumentTypeFolderById({ + id: args.unique, + requestBody: { name: args.name }, + }), + ); + + if (!error) { + return this.read(args.unique); + } + + return { error }; + } + + /** + * Deletes a Document Type folder on the server + * @param {string} unique + * @return {*} + * @memberof UmbDocumentTypeServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + return tryExecuteAndNotify( + this.#host, + DocumentTypeResource.deleteDocumentTypeFolderById({ + id: unique, + }), + ); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/index.ts new file mode 100644 index 0000000000..863773e971 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/index.ts @@ -0,0 +1,2 @@ +export { UmbDocumentTypeFolderRepository } from './document-type-folder.repository.js'; +export { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts new file mode 100644 index 0000000000..a7ced4e26a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts @@ -0,0 +1,44 @@ +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbDocumentTypeFolderRepository } from './document-type-folder.repository.js'; +import { UmbDeleteFolderEntityAction, UmbFolderUpdateEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType.Folder'; + +const folderRepository: ManifestRepository = { + type: 'repository', + alias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, + name: 'Document Type Folder Repository', + api: UmbDocumentTypeFolderRepository, +}; + +const entityActions: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.DeleteFolder', + name: 'Delete Document Type Folder Entity Action', + weight: 800, + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete Folder...', + repositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE], + }, + }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.RenameFolder', + name: 'Rename Document Type Folder Entity Action', + weight: 700, + api: UmbFolderUpdateEntityAction, + meta: { + icon: 'icon-edit', + label: 'Rename Folder...', + repositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE], + }, + }, +]; + +export const manifests = [folderRepository, ...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts new file mode 100644 index 0000000000..be478b7c16 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts @@ -0,0 +1,6 @@ +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbDocumentTypeTreeItemModel } from '../types.js'; + +export interface UmbDocumentTypeFolderTreeItemModel extends UmbDocumentTypeTreeItemModel { + entityType: typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/index.ts new file mode 100644 index 0000000000..3c8096f8a5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/index.ts @@ -0,0 +1,2 @@ +export { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from './document-type.tree.store.js'; +export * from './folder/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts index 2f0762f7c0..a4992d329c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts @@ -1,6 +1,11 @@ -import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; +import { + UMB_DOCUMENT_TYPE_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, +} from '../entity.js'; import { UmbDocumentTypeTreeRepository } from './document-type-tree.repository.js'; import { UmbDocumentTypeTreeStore } from './document-type.tree.store.js'; +import { manifests as folderManifests } from './folder/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -41,8 +46,12 @@ const treeItem: ManifestTreeItem = { alias: 'Umb.TreeItem.DocumentType', name: 'Document Type Tree Item', meta: { - entityTypes: [UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE], + entityTypes: [ + UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, + ], }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; From d6657722952917ef461a020520bafc1d96986d52 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 23 Jan 2024 10:57:18 +0100 Subject: [PATCH 490/786] fix issues of tests --- .../dictionary/workspace/dictionary-workspace.context.ts | 5 ++++- .../templates/workspace/template-workspace.context.ts | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts index 7510b31611..c6f23dea9f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts @@ -83,7 +83,10 @@ export class UmbDictionaryWorkspaceContext if (!this.#data.value.id) return; if (this.getIsNew()) { - await this.repository.create(this.#data.value); + const { error } = await this.repository.create(this.#data.value); + if (error) { + return; + } this.setIsNew(false); } else { await this.repository.save(this.#data.value.id, this.#data.value); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index 828a84acdf..48553749df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -9,6 +9,7 @@ import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observa import type { TemplateItemResponseModel, TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbId } from '@umbraco-cms/backoffice/id'; export class UmbTemplateWorkspaceContext extends UmbEditableWorkspaceContextBase @@ -138,7 +139,10 @@ ${currentContent}`; const isNew = this.getIsNew(); if (isNew && template) { + const key = UmbId.new(); + this.#data.update({ id: key }); await this.repository.create({ + key: key, name: template.name, content: template.content, alias: template.alias, From 3ee42c3705876a01b9bd6940e2a6e7f4dd159ac4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 12:23:24 +0100 Subject: [PATCH 491/786] render default icons for item and folder item --- .../tree-item-base/tree-item-base.element.ts | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts index 6b9bdbb4f4..a156f89855 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts @@ -104,7 +104,7 @@ export class UmbTreeItemBaseElement extends UmbLitElement { .hasChildren=${this._hasChildren} label="${ifDefined(this._item?.name)}" href="${ifDefined(this._isSelectableContext ? undefined : this._href)}"> - ${this.#renderIcon()} ${this.#renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()} + ${this.#renderIconContainer()} ${this.#renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()} `; @@ -114,7 +114,7 @@ export class UmbTreeItemBaseElement extends UmbLitElement { return (e.target as HTMLSlotElement).assignedNodes({ flatten: true }).length > 0; }; - #renderIcon() { + #renderIconContainer() { return html` { this._iconSlotHasChildren = this.#hasNodes(e); }}> - ${this._iconAlias && !this._iconSlotHasChildren - ? html` ` - : nothing} + ${!this._iconSlotHasChildren ? this.#renderIcon() : nothing} `; } + #renderIcon() { + const icon = this._item?.icon; + const isFolder = this._item?.isFolder; + + if (icon) { + return html``; + } + + if (isFolder) { + return html``; + } + + return html``; + } + #renderLabel() { return html``; } From 6a51cc5813b61c6118b765d04487dc2bb1f6426a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 12:31:22 +0100 Subject: [PATCH 492/786] correct interface names --- .../block-grid/workspace/block-grid-workspace.modal-token.ts | 4 ++-- .../block-rte/workspace/block-rte-workspace.modal-token.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts index 644cd75751..3d0c7976e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts @@ -1,13 +1,13 @@ import { UmbBlockWorkspaceData } from '../../index.js'; import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; -export interface UmbBlockListWorkspaceData +export interface UmbBlockGridWorkspaceData extends UmbBlockWorkspaceData<{ index: number; parentId: string | null; }> {} -export const UMB_BLOCK_GRID_WORKSPACE_MODAL = new UmbModalToken( +export const UMB_BLOCK_GRID_WORKSPACE_MODAL = new UmbModalToken( 'Umb.Modal.Workspace', { modal: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts index 274007f4c0..1a143cd13d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts @@ -1,12 +1,12 @@ import { UmbBlockWorkspaceData } from '../../index.js'; import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; -export interface UmbBlockListWorkspaceData +export interface UmbBlockRTEWorkspaceData extends UmbBlockWorkspaceData<{ index: number; }> {} -export const UMB_BLOCK_RTE_WORKSPACE_MODAL = new UmbModalToken( +export const UMB_BLOCK_RTE_WORKSPACE_MODAL = new UmbModalToken( 'Umb.Modal.Workspace', { modal: { From 8c9907c449571ace27548fca6e53f433eae19f17 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 12:36:31 +0100 Subject: [PATCH 493/786] correct import --- .../core/workspace/workspace-footer/workspace-footer.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts index 81a92dd38a..b179ca01e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts @@ -1,9 +1,9 @@ +import { UMB_SAVEABLE_WORKSPACE_CONTEXT } from '../saveable-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; -import { UMB_SAVEABLE_WORKSPACE_CONTEXT, UMB_WORKSPACE_CONTEXT } from '..'; /** * @element umb-workspace-footer From 158f79bf5a24e6d4a72f704ee6aa352f1b6cf548 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 23 Jan 2024 12:44:30 +0100 Subject: [PATCH 494/786] dictionary menu --- .../dictionary/dictionary/entity-actions/manifests.ts | 8 ++++---- .../src/packages/dictionary/section.manifest.ts | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts index 0173032ee9..c797c718e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts @@ -1,5 +1,5 @@ import { UMB_DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests.js'; -import { UMB_DICTIONARY_ENTITY_TYPE } from '../entities.js'; +import { UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entities.js'; import UmbReloadDictionaryEntityAction from './reload.action.js'; import UmbImportDictionaryEntityAction from './import/import.action.js'; import UmbExportDictionaryEntityAction from './export/export.action.js'; @@ -18,7 +18,7 @@ const entityActions: Array = [ icon: 'icon-add', label: 'Create', repositoryAlias: UMB_DICTIONARY_REPOSITORY_ALIAS, - entityTypes: [UMB_DICTIONARY_ENTITY_TYPE], + entityTypes: [UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE], }, }, { @@ -57,7 +57,7 @@ const entityActions: Array = [ icon: 'icon-page-up', label: 'Import', repositoryAlias: UMB_DICTIONARY_REPOSITORY_ALIAS, - entityTypes: [UMB_DICTIONARY_ENTITY_TYPE], + entityTypes: [UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE], }, }, { @@ -70,7 +70,7 @@ const entityActions: Array = [ icon: 'icon-refresh', label: 'Reload', repositoryAlias: UMB_DICTIONARY_REPOSITORY_ALIAS, - entityTypes: [UMB_DICTIONARY_ENTITY_TYPE], + entityTypes: [UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE], }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts index eefc5e1c62..9ea2fde786 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts @@ -1,3 +1,4 @@ +import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from './dictionary/entities.js'; import type { ManifestDashboard, ManifestSection, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const sectionAlias = 'Umb.Section.Dictionary'; @@ -15,13 +16,14 @@ const section: ManifestSection = { const menuSectionSidebarApp: ManifestTypes = { type: 'sectionSidebarApp', - kind: 'menu', + kind: 'menuWithEntityActions', alias: 'Umb.SidebarMenu.Dictionary', name: 'Dictionary Sidebar Menu', weight: 100, meta: { label: 'Dictionary', menu: 'Umb.Menu.Dictionary', + entityType: UMB_DICTIONARY_ROOT_ENTITY_TYPE, }, conditions: [ { From 37538d2b1f8f0ffb639b2077d7547ca7f744eace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 23 Jan 2024 12:48:50 +0100 Subject: [PATCH 495/786] fix tsc --- .../property-editor-ui-block-list.element.ts | 1 + .../modals/block-catalogue/block-catalogue-modal.token.ts | 2 +- .../block/block/workspace/block-workspace.context.ts | 8 ++++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index eb9e5d801c..138c918722 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -11,6 +11,7 @@ import { UMB_BLOCK_CATALOGUE_MODAL, UmbBlockLayoutBaseModel, UmbBlockTypeBaseModel, + UmbBlockWorkspaceData, type UmbBlockValueType, } from '@umbraco-cms/backoffice/block'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts index 9d64c42970..6872272e0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts @@ -5,7 +5,7 @@ export interface UmbBlockCatalogueModalData { blocks: Array; blockGroups?: Array<{ name: string; key: string }>; openClipboard?: boolean; - blockOriginData: UmbBlockWorkspaceData; + blockOriginData: UmbBlockWorkspaceData['originData']; } export type UmbBlockCatalogueModalValue = never; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index e36ccbe97f..701653f966 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -219,11 +219,15 @@ export class UmbBlockWorkspaceContext< async save() { const layoutData = this.#layout.value; const contentData = this.content.getData(); - if (!layoutData || !this.#blockManager || !contentData) return; + if (!layoutData || !this.#blockManager || !contentData || !this.#modalContext) return; if (!this.#liveEditingMode) { if (this.getIsNew() === true) { - const blockCreated = this.#blockManager.createBlock(layoutData, contentData.contentTypeKey); + const blockCreated = this.#blockManager.createBlock( + this.#modalContext.data as UmbBlockWorkspaceData, + layoutData, + contentData.contentTypeKey, + ); if (!blockCreated) { throw new Error('Block Manager could not create block'); return; From 5a0dcdbd1e711a243c2033f889c6e62e9736f696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Tue, 23 Jan 2024 12:55:22 +0100 Subject: [PATCH 496/786] use grid instead of flex --- .../workspace/document-workspace-split-view.element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index 073fd6e307..96d00cefde 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -67,7 +67,8 @@ export class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement { } #splitViews { - display: flex; + display: grid; + grid-template-columns: 50% 50%; width: 100%; height: calc(100% - var(--umb-footer-layout-height)); } From 34e2a25c0667b77a25802b9e3089743e7393ea29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Tue, 23 Jan 2024 12:55:41 +0100 Subject: [PATCH 497/786] min-height is stupid --- .../workspace-split-view/workspace-split-view.element.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts index 5f222c1e31..12cb3c3ce8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts @@ -46,6 +46,7 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement { display: block; width: 100%; height: 100%; + min-height: 0; } :host(:not(:last-child)) { From 5d1ac58030a096cf2efdd4780df010a6af6a2604 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 13:08:38 +0100 Subject: [PATCH 498/786] Change order of rename and delete folder entity actions --- .../core/data-type/tree/folder/manifests.ts | 28 +++++++++---------- .../document-types/tree/folder/manifests.ts | 28 +++++++++---------- .../media-types/tree/folder/manifests.ts | 28 +++++++++---------- 3 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts index 65d6454e00..06426f03fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/manifests.ts @@ -13,24 +13,11 @@ const folderRepository: ManifestRepository = { }; const entityActions: Array = [ - { - type: 'entityAction', - alias: 'Umb.EntityAction.DataType.DeleteFolder', - name: 'Delete Data Type Folder Entity Action', - weight: 800, - api: UmbDeleteFolderEntityAction, - meta: { - icon: 'icon-trash', - label: 'Delete Folder...', - repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: 'Umb.EntityAction.DataType.RenameFolder', name: 'Rename Data Type Folder Entity Action', - weight: 700, + weight: 800, api: UmbFolderUpdateEntityAction, meta: { icon: 'icon-edit', @@ -39,6 +26,19 @@ const entityActions: Array = [ entityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], }, }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.DataType.DeleteFolder', + name: 'Delete Data Type Folder Entity Action', + weight: 700, + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete Folder...', + repositoryAlias: UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], + }, + }, ]; export const manifests = [folderRepository, ...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts index a7ced4e26a..410d2f5096 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/manifests.ts @@ -13,24 +13,11 @@ const folderRepository: ManifestRepository = { }; const entityActions: Array = [ - { - type: 'entityAction', - alias: 'Umb.EntityAction.DocumentType.DeleteFolder', - name: 'Delete Document Type Folder Entity Action', - weight: 800, - api: UmbDeleteFolderEntityAction, - meta: { - icon: 'icon-trash', - label: 'Delete Folder...', - repositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: 'Umb.EntityAction.DocumentType.RenameFolder', name: 'Rename Document Type Folder Entity Action', - weight: 700, + weight: 800, api: UmbFolderUpdateEntityAction, meta: { icon: 'icon-edit', @@ -39,6 +26,19 @@ const entityActions: Array = [ entityTypes: [UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE], }, }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.DeleteFolder', + name: 'Delete Document Type Folder Entity Action', + weight: 700, + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete Folder...', + repositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE], + }, + }, ]; export const manifests = [folderRepository, ...entityActions]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts index 1b443a788a..67d4bc409e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/manifests.ts @@ -13,24 +13,11 @@ const folderRepository: ManifestRepository = { }; const entityActions: Array = [ - { - type: 'entityAction', - alias: 'Umb.EntityAction.MediaType.DeleteFolder', - name: 'Delete Media Type Folder Entity Action', - weight: 800, - api: UmbDeleteFolderEntityAction, - meta: { - icon: 'icon-trash', - label: 'Delete Folder...', - repositoryAlias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, - entityTypes: [UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: 'Umb.EntityAction.MediaType.RenameFolder', name: 'Rename Media Type Folder Entity Action', - weight: 700, + weight: 800, api: UmbFolderUpdateEntityAction, meta: { icon: 'icon-edit', @@ -39,6 +26,19 @@ const entityActions: Array = [ entityTypes: [UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], }, }, + { + type: 'entityAction', + alias: 'Umb.EntityAction.MediaType.DeleteFolder', + name: 'Delete Media Type Folder Entity Action', + weight: 700, + api: UmbDeleteFolderEntityAction, + meta: { + icon: 'icon-trash', + label: 'Delete Folder...', + repositoryAlias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS, + entityTypes: [UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], + }, + }, ]; export const manifests = [folderRepository, ...entityActions]; From 1e5d751d59ffcc91b05ec5b5787a7cf4e7e8e7bb Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 23 Jan 2024 13:42:21 +0100 Subject: [PATCH 499/786] save grouping --- ...ui-block-grid-type-configuration.element.ts | 18 ++++++++++++------ .../input-block-type.element.ts | 4 +++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 32e9dc2de4..f63568ff1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -19,8 +19,14 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement { #datasetContext?: UmbPropertyDatasetContext; + private _value: Array = []; @property({ attribute: false }) - value: UmbBlockTypeWithGroupKey[] = []; + get value() { + return this._value; + } + set value(value: Array) { + this._value = value ?? []; + } @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; @@ -43,7 +49,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement if (!this.#datasetContext) return; this.observe(await this.#datasetContext.propertyValueByAlias('blockGroups'), (value) => { - this._blockGroups = value as Array; + this._blockGroups = (value as Array) ?? []; this.#mapValuesToBlockGroups(); }); this.observe(await this.#datasetContext.propertyValueByAlias('blocks'), () => { @@ -53,10 +59,10 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement #mapValuesToBlockGroups() { // What if a block is in a group that does not exist in the block groups? Should it be removed? (Right now they will never be rendered) - const valuesWithNoGroup = this.value.filter((value) => !value.groupKey); + const valuesWithNoGroup = this._value.filter((value) => !value.groupKey); const valuesWithGroup = this._blockGroups.map((group) => { - return { name: group.name, key: group.key, blocks: this.value.filter((value) => value.groupKey === group.key) }; + return { name: group.name, key: group.key, blocks: this._value.filter((value) => value.groupKey === group.key) }; }); this._mappedValuesAndGroups = [{ blocks: valuesWithNoGroup }, ...valuesWithGroup]; @@ -76,7 +82,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement const groupName = e.target.value as string; this.#datasetContext?.setPropertyValue( 'blockGroups', - this._blockGroups.map((group) => ({ ...group, groupName: groupKey === group.key ? groupName : group.name })), + this._blockGroups.map((group) => (group.key === groupKey ? { ...group, name: groupName } : group)), ); } @@ -87,7 +93,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement ); // Should blocks that belonged to the removed group be deleted as well? - this.value = this.value.filter((block) => block.groupKey !== groupKey); + this.value = this._value.filter((block) => block.groupKey !== groupKey); } #renderGroupInput(groupKey: string, groupName?: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 2a3721f41a..186f9b8079 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -59,6 +59,7 @@ export class UmbInputBlockTypeElement< typeof UMB_WORKSPACE_MODAL.VALUE >; + /* #datasetContext?: UmbPropertyDatasetContext; #filter: Array = []; @@ -71,6 +72,7 @@ export class UmbInputBlockTypeElement< }); }); } + */ create() { this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, async (modalManager) => { @@ -84,7 +86,7 @@ export class UmbInputBlockTypeElement< // Only pick elements: docType.isElement && // Prevent picking the an already used element type: - this.#filter.find((x) => x.contentElementTypeKey === docType.unique) === undefined, + this._items.find((x) => x.contentElementTypeKey === docType.unique) === undefined, }, }); From bd50bd347ae61967909bcade35a73f44879b99c4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 13:53:08 +0100 Subject: [PATCH 500/786] ensure extension validity check for each manifest --- .../src/libs/extension-api/registry/extension.registry.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index e31dcfb646..1d0b0fe184 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -121,8 +121,8 @@ export class UmbExtensionRegistry< } registerMany(manifests: Array>): void { - const validManifests = manifests.filter(this.checkExtension.bind(this)); - this._extensions.setValue([...this._extensions.getValue(), ...(validManifests as Array)]); + // we have to register extensions individually, so we ensure a manifest is valid before continuing to the next one + manifests.forEach((manifest) => this.register(manifest)); } unregisterMany(aliases: Array): void { From c0a29bfadd59c665f287985e8da947583b35028a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 13:53:23 +0100 Subject: [PATCH 501/786] remove double registration --- .../media/media-types/entity-actions/manifests.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts index 9916090b2e..9a06dd409a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/manifests.ts @@ -1,24 +1,10 @@ import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../entity.js'; import { UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; -import { UmbCreateMediaTypeEntityAction } from './create/create.action.js'; import { manifests as createManifests } from './create/manifests.js'; import { UmbDeleteEntityAction, UmbMoveEntityAction, UmbCopyEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ - { - type: 'entityAction', - alias: 'Umb.EntityAction.MediaType.Create', - name: 'Create Media Type Entity Action', - weight: 500, - api: UmbCreateMediaTypeEntityAction, - meta: { - icon: 'icon-add', - label: 'Create', - repositoryAlias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, - entityTypes: [UMB_MEDIA_TYPE_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: 'Umb.EntityAction.MediaType.Move', From b4f3d8850d49a66c7eccf77a48799e00736a2e61 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 13:53:33 +0100 Subject: [PATCH 502/786] Remove double registration --- .../src/packages/block/block-rte/workspace/views/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/manifests.ts index cae9402dea..e574f7aa62 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/manifests.ts @@ -4,7 +4,7 @@ import type { ManifestWorkspaceView } from '@umbraco-cms/backoffice/extension-re export const workspaceViews: Array = [ { type: 'workspaceView', - alias: 'Umb.WorkspaceView.BlockType.List.Settings', + alias: 'Umb.WorkspaceView.BlockType.RTE.Settings', name: 'Block List Type Workspace Settings View', js: () => import('./block-rte-type-workspace-view.element.js'), weight: 1000, From dd26446e0067dd7f0ecd4330d8aa12005eb6e0c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 18:31:59 +0000 Subject: [PATCH 503/786] Bump actions/dependency-review-action from 3 to 4 Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 3 to 4. - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .../.github/workflows/dependency-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/.github/workflows/dependency-review.yml b/src/Umbraco.Web.UI.Client/.github/workflows/dependency-review.yml index 4e75197790..0d4a01360d 100644 --- a/src/Umbraco.Web.UI.Client/.github/workflows/dependency-review.yml +++ b/src/Umbraco.Web.UI.Client/.github/workflows/dependency-review.yml @@ -17,4 +17,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@v4 - name: 'Dependency Review' - uses: actions/dependency-review-action@v3 + uses: actions/dependency-review-action@v4 From 0712399676f72984d0719b5ee884214105eaf8b7 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 23 Jan 2024 14:48:59 +0100 Subject: [PATCH 504/786] filter --- .../components/input-block-type/input-block-type.element.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 186f9b8079..2a3721f41a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -59,7 +59,6 @@ export class UmbInputBlockTypeElement< typeof UMB_WORKSPACE_MODAL.VALUE >; - /* #datasetContext?: UmbPropertyDatasetContext; #filter: Array = []; @@ -72,7 +71,6 @@ export class UmbInputBlockTypeElement< }); }); } - */ create() { this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, async (modalManager) => { @@ -86,7 +84,7 @@ export class UmbInputBlockTypeElement< // Only pick elements: docType.isElement && // Prevent picking the an already used element type: - this._items.find((x) => x.contentElementTypeKey === docType.unique) === undefined, + this.#filter.find((x) => x.contentElementTypeKey === docType.unique) === undefined, }, }); From 84792755dc4f0e47568a8649f3e618fd5b021b71 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 23 Jan 2024 14:51:16 +0100 Subject: [PATCH 505/786] remove double export of permission manifests --- src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts index 18452ff8f0..cff410034a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts @@ -4,7 +4,6 @@ import { manifests as contentMenuManifest } from './documents/menu.manifests.js' import { manifests as documentBlueprintManifests } from './document-blueprints/manifests.js'; import { manifests as documentTypeManifests } from './document-types/manifests.js'; import { manifests as documentManifests } from './documents/manifests.js'; -import { manifests as documentPermissionManifests } from './documents/user-permissions/index.js'; export const manifests = [ ...dashboardManifests, @@ -13,5 +12,4 @@ export const manifests = [ ...documentBlueprintManifests, ...documentTypeManifests, ...documentManifests, - ...documentPermissionManifests, ]; From 3c104d7b2dcc8caa6c169b181fd8415f56a06f70 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 23 Jan 2024 15:16:42 +0100 Subject: [PATCH 506/786] delete item --- ...or-ui-block-grid-type-configuration.element.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index f63568ff1e..354518ad8d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,4 +1,4 @@ -import type { UmbBlockTypeWithGroupKey } from '../../../block-type/index.js'; +import type { UmbBlockTypeWithGroupKey, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property, state, css, repeat, nothing } from '@umbraco-cms/backoffice/external/lit'; @@ -68,13 +68,24 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this._mappedValuesAndGroups = [{ blocks: valuesWithNoGroup }, ...valuesWithGroup]; } + #onChange(e: CustomEvent, group?: UmbBlockGridGroupTypeConfiguration) { + const groupValues = (e.target as UmbInputBlockTypeElement).value; + const newValues = groupValues.map((value) => ({ ...value, groupKey: group?.key })); + const filteredValues = this._value.filter((block) => block.contentElementTypeKey === group?.key); + this.value = [...filteredValues, ...newValues]; + this.dispatchEvent(new CustomEvent('property-value-change')); + } + render() { return html`${repeat( this._mappedValuesAndGroups, (group) => group.key, (group) => html`${group.key ? this.#renderGroupInput(group.key, group.name) : nothing} - `, + this.#onChange(e, group)}>`, )}`; } From d58f65ed8fe72ee198d027dc0770ebbb750fa972 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 23 Jan 2024 15:34:00 +0100 Subject: [PATCH 507/786] switch target to preview005 --- src/Umbraco.Web.UI.Client/package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index e11f2f50e2..a756f55069 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -1,7 +1,7 @@ { "name": "@umbraco-cms/backoffice", "license": "MIT", - "version": "14.0.0--preview004", + "version": "14.0.0--preview005", "type": "module", "exports": { ".": null, @@ -29,7 +29,6 @@ "./entity-action": "./dist-cms/packages/core/entity-action/index.js", "./entity-bulk-action": "./dist-cms/packages/core/entity-bulk-action/index.js", "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", - "./server-file-system": "./dist-cms/packages/core/server-file-system/index.js", "./id": "./dist-cms/packages/core/id/index.js", "./localization": "./dist-cms/packages/core/localization/index.js", "./macro": "./dist-cms/packages/core/macro/index.js", @@ -208,7 +207,7 @@ "tsc-alias": "^1.8.8", "typescript": "^5.3.3", "typescript-json-schema": "^0.62.0", - "vite": "^5.0.12", + "vite": "^5.0.11", "vite-plugin-static-copy": "^1.0.0", "vite-tsconfig-paths": "^4.2.3", "web-component-analyzer": "^2.0.0" From dc7d2110ec9db475a7af4c0c1c9208c37c0c0700 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 23 Jan 2024 15:36:29 +0100 Subject: [PATCH 508/786] remove build error --- .../src/mocks/data/document-type/document-type.data.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 2d6f01db6c..800e58907a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -1488,7 +1488,6 @@ export const data: Array = [ containers: [], }, { - type: 'document-type', allowedTemplateIds: [], defaultTemplateId: null, id: 'test-block-id', From d67f71b7ffcef5df086d355a52f1c38535d6cc62 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 23 Jan 2024 15:36:58 +0100 Subject: [PATCH 509/786] delete event possibility --- ...editor-ui-block-grid-type-configuration.element.ts | 11 +++++++++-- .../src/packages/block/block-type/components/index.ts | 2 +- .../input-block-type/input-block-type.element.ts | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 354518ad8d..5a6c73b111 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -68,6 +68,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this._mappedValuesAndGroups = [{ blocks: valuesWithNoGroup }, ...valuesWithGroup]; } + /* #onChange(e: CustomEvent, group?: UmbBlockGridGroupTypeConfiguration) { const groupValues = (e.target as UmbInputBlockTypeElement).value; const newValues = groupValues.map((value) => ({ ...value, groupKey: group?.key })); @@ -75,6 +76,12 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this.value = [...filteredValues, ...newValues]; this.dispatchEvent(new CustomEvent('property-value-change')); } + */ + + #deleteItem(e: CustomEvent) { + this.value = this._value.filter((block) => block.contentElementTypeKey !== e.detail.contentElementTypeKey); + this.dispatchEvent(new CustomEvent('property-value-change')); + } render() { return html`${repeat( @@ -85,7 +92,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this.#onChange(e, group)}>`, + @delete=${this.#deleteItem}>`, )}`; } @@ -112,7 +119,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement auto-width label="Group" .value=${groupName ?? ''} - @change=${(e: UUIInputEvent) => this.#changeGroupName(e, groupKey)}> + @delete=${(e: UUIInputEvent) => this.#changeGroupName(e, groupKey)}> this.#deleteGroup(groupKey)}> diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/index.ts index fcdafe77a5..2ce6e9bff7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/index.ts @@ -1,2 +1,2 @@ -export * from './input-block-type/index.js'; export * from './block-type-card/index.js'; +export * from './input-block-type/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 2a3721f41a..2dc6c57e31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -101,7 +101,8 @@ export class UmbInputBlockTypeElement< deleteItem(contentElementTypeKey: string) { this.value = this._items.filter((x) => x.contentElementTypeKey !== contentElementTypeKey); - this.dispatchEvent(new UmbChangeEvent()); + this.dispatchEvent(new CustomEvent('delete', { detail: { contentElementTypeKey } })); + //this.dispatchEvent(new UmbChangeEvent()); } protected getFormElement() { From c5f09efb220edda632443ba62330e82e99292c93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 09:05:28 +0100 Subject: [PATCH 510/786] addValidators to constructors --- src/Umbraco.Web.UI.Client/package-lock.json | 6 +++--- .../input-document-type.element.ts | 4 ---- .../input-document/input-document.element.ts | 12 ++++-------- .../input-media-type/input-media-type.element.ts | 4 ---- .../components/input-media/input-media.element.ts | 4 ---- .../input-member-type/input-member-type.element.ts | 6 +----- 6 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index dd2df99770..defe78bf69 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@umbraco-cms/backoffice", - "version": "14.0.0--preview004", + "version": "14.0.0--preview005", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@umbraco-cms/backoffice", - "version": "14.0.0--preview004", + "version": "14.0.0--preview005", "license": "MIT", "dependencies": { "@openid/appauth": "^1.3.1", @@ -79,7 +79,7 @@ "tsc-alias": "^1.8.8", "typescript": "^5.3.3", "typescript-json-schema": "^0.62.0", - "vite": "^5.0.12", + "vite": "^5.0.11", "vite-plugin-static-copy": "^1.0.0", "vite-tsconfig-paths": "^4.2.3", "web-component-analyzer": "^2.0.0" diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts index d9f31b2ebe..e0a6da90d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts @@ -104,10 +104,6 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement) .observeRouteBuilder((routeBuilder) => { this._editDocumentTypePath = routeBuilder({}); }); - } - - connectedCallback() { - super.connectedCallback(); this.addValidator( 'rangeUnderflow', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index f3a16021a9..d0b80369f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -105,13 +105,6 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { constructor() { super(); - this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); - } - - connectedCallback() { - super.connectedCallback(); - this.addValidator( 'rangeUnderflow', () => this.minMessage, @@ -123,6 +116,9 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max, ); + + this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } protected getFormElement() { @@ -134,7 +130,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { return this.allowedContentTypeIds.includes(item.contentTypeId); } return true; - } + }; #openPicker() { // TODO: Configure the content picker, with `startNodeId` and `ignoreUserStartNodes` [LK] diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts index 4b977a296d..63eb6add8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.element.ts @@ -73,10 +73,6 @@ export class UmbInputMediaTypeElement extends FormControlMixin(UmbLitElement) { constructor() { super(); - } - - connectedCallback() { - super.connectedCallback(); this.addValidator( 'rangeUnderflow', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 79fe41af5b..674cf5f699 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -104,10 +104,6 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); - } - - connectedCallback() { - super.connectedCallback(); this.addValidator( 'rangeUnderflow', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts index 6ac9e16ad7..77ce5219b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.element.ts @@ -73,10 +73,6 @@ export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { constructor() { super(); - } - - connectedCallback() { - super.connectedCallback(); this.addValidator( 'rangeUnderflow', @@ -138,7 +134,7 @@ export class UmbInputMemberTypeElement extends FormControlMixin(UmbLitElement) { if (!item.id) return; return html` - ${this.#renderIcon(item)} + ${this.#renderIcon(item)} this.#pickerContext.requestRemoveItem(item.id!)} From 4ec086e14d2ff6ddb912f98d0a4a26cd6f2e1927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 09:52:36 +0100 Subject: [PATCH 511/786] rename context tokens, to align naming --- .../.storybook/preview.js | 4 +-- src/Umbraco.Web.UI.Client/README.md | 8 ++--- .../src/apps/backoffice/backoffice.context.ts | 4 +-- .../backoffice-header-sections.element.ts | 4 +-- .../components/backoffice-main.element.ts | 8 ++--- .../consent/installer-consent.element.ts | 4 +-- .../database/installer-database.element.ts | 4 +-- .../error/installer-error.element.ts | 4 +-- .../src/apps/installer/installer.context.ts | 2 +- .../src/apps/installer/installer.element.ts | 4 +-- .../installer/user/installer-user.element.ts | 4 +-- .../repository/audit-log.repository.ts | 4 +-- .../block-list-block.element.ts | 4 +-- .../block-type-card.element.ts | 4 +-- .../input-block-type.element.ts | 4 +-- .../block-catalogue-modal.element.ts | 4 +-- .../workspace/block-workspace.context.ts | 6 ++-- .../backoffice-modal-container.element.ts | 4 +-- ...ckoffice-notification-container.element.ts | 4 +-- .../entity-actions-bundle.element.ts | 4 +-- .../input-list-base/input-list-base.ts | 4 +-- .../input-markdown.element.ts | 4 +-- ...ultiple-color-picker-item-input.element.ts | 10 ++----- ...input-multiple-text-string-item.element.ts | 8 ++--- .../entity-actions/copy/copy.action.ts | 4 +-- .../entity-actions/create/create.action.ts | 4 +-- .../data-type-create-options-modal.element.ts | 4 +-- .../entity-actions/move/move.action.ts | 4 +-- .../copy/data-type-copy.repository.ts | 4 +-- .../move/data-type-move.repository.ts | 4 +-- ...ata-type-details-workspace-view.element.ts | 4 +-- .../src/packages/core/debug/debug.element.ts | 4 +-- .../common/delete/delete.action.ts | 8 ++--- .../common/rename/rename-repository-base.ts | 4 +-- .../common/rename/rename.action.ts | 4 +-- .../common/trash/trash.action.ts | 8 ++--- .../conditions/menu-alias.condition.ts | 4 +-- .../conditions/section-alias.condition.ts | 4 +-- .../src/packages/core/macro/macro.service.ts | 2 +- .../menu-item-layout.element.ts | 4 +-- .../src/packages/core/menu/menu.context.ts | 2 +- .../src/packages/core/menu/menu.element.ts | 2 +- .../core/modal/modal-manager.context.ts | 4 +-- .../modal-route-registration.controller.ts | 6 ++-- .../src/packages/core/modal/modal.context.ts | 2 +- .../src/packages/core/modal/modal.element.ts | 6 ++-- .../core/notification/notification.context.ts | 4 +-- ...ry-notification-default-example.element.ts | 4 +-- .../core/picker-input/picker-input.context.ts | 4 +-- .../copy/property-action-copy.element.ts | 8 ++--- ...ction-view-layout-configuration.element.ts | 4 +-- .../property-editor-ui-icon-picker.element.ts | 4 +-- .../plugins/tiny-mce-code-editor.plugin.ts | 4 +-- .../plugins/tiny-mce-embeddedmedia.plugin.ts | 4 +-- .../plugins/tiny-mce-linkpicker.plugin.ts | 4 +-- .../plugins/tiny-mce-macropicker.plugin.ts | 8 ++--- .../plugins/tiny-mce-mediapicker.plugin.ts | 4 +-- .../detail/detail-repository-base.ts | 4 +-- .../section-sidebar-context-menu.element.ts | 4 +-- .../section-sidebar.context.ts | 4 +-- .../section-sidebar.element.ts | 4 +-- .../packages/core/section/section.context.ts | 2 +- .../src/packages/core/themes/theme.context.ts | 4 +-- .../create-folder/create-folder.action.ts | 4 +-- .../delete-folder/delete-folder.action.ts | 8 ++--- .../folder-update/folder-update.action.ts | 4 +-- .../tree/folder/folder-repository-base.ts | 4 +-- .../tree-item-base/tree-item-base.context.ts | 10 +++---- .../tree-item-base/tree-item-base.element.ts | 4 +-- .../editable-workspace-context-base.ts | 4 +-- .../entity-manager-controller.ts | 4 +-- .../variant-workspace-context.token.ts | 2 +- .../workspace-footer.element.ts | 4 +-- .../workspace-split-view.context.ts | 6 ++-- .../entity-actions/export/export.action.ts | 4 +-- .../entity-actions/import/import.action.ts | 4 +-- .../repository/dictionary.repository.ts | 8 ++--- .../dictionary/repository/dictionary.store.ts | 4 +-- .../dashboard-redirect-management.element.ts | 8 ++--- .../document-blueprint.detail.store.ts | 4 +-- .../document-blueprint.tree.store.ts | 4 +-- .../entity-actions/create/create.action.ts | 4 +-- .../document-type-workspace-editor.element.ts | 4 +-- ...pe-workspace-view-edit-property.element.ts | 6 ++-- ...cument-type-workspace-view-edit.element.ts | 6 ++-- ...ut-document-granular-permission.element.ts | 4 +-- .../entity-actions/create/create.action.ts | 4 +-- .../permissions/permissions-modal.element.ts | 4 +-- .../permissions/permissions.action.ts | 4 +-- .../repository/document-item.store.ts | 4 +-- .../repository/document.repository.ts | 12 ++++---- .../documents/repository/document.store.ts | 4 +-- .../dashboard-health-check.element.ts | 7 ++--- .../health-check-dashboard.context.ts | 2 +- .../health-check/health-check.context.ts | 2 +- ...health-check-group-box-overview.element.ts | 4 +-- .../views/health-check-group.element.ts | 4 +-- .../views/health-check-overview.element.ts | 4 +-- .../log-viewer-date-range-selector.element.ts | 4 +-- .../repository/log-viewer.repository.ts | 4 +-- .../log-viewer/workspace/logviewer.context.ts | 4 +-- .../log-viewer-log-level-overview.element.ts | 4 +-- .../log-viewer-log-types-chart.element.ts | 4 +-- ...ewer-message-templates-overview.element.ts | 4 +-- ...-viewer-saved-searches-overview.element.ts | 4 +-- .../overview/log-overview-view.element.ts | 4 +-- ...og-viewer-log-level-filter-menu.element.ts | 4 +-- .../components/log-viewer-message.element.ts | 4 +-- .../log-viewer-messages-list.element.ts | 4 +-- .../log-viewer-polling-button.element.ts | 4 +-- .../log-viewer-search-input.element.ts | 8 ++--- .../views/search/log-search-view.element.ts | 4 +-- .../entity-actions/create/create.action.ts | 4 +-- ...media-type-create-options-modal.element.ts | 4 +-- .../media-type-workspace-editor.element.ts | 4 +-- ...pe-workspace-view-edit-property.element.ts | 6 ++-- .../media-type-workspace-view-edit.element.ts | 6 ++-- .../entity-bulk-actions/move/move.action.ts | 4 +-- .../entity-bulk-actions/trash/trash.action.ts | 8 ++--- .../media/repository/media.repository.ts | 4 +-- .../repository/member-type.repository.ts | 4 +-- .../workspace-package-builder.element.ts | 4 +-- .../packages-created-overview.element.ts | 8 ++--- ...lled-packages-section-view-item.element.ts | 12 +++----- .../repository/relation-type.repository.ts | 8 ++--- .../repository/relation-type.store.ts | 4 +-- .../repository/relation.repository.ts | 4 +-- .../views/section-view-examine-indexers.ts | 8 ++--- .../views/section-view-examine-searchers.ts | 4 +-- .../search/umb-search-header-app.element.ts | 4 +-- .../dashboard-published-status.element.ts | 8 ++--- .../extension-root-workspace.element.ts | 8 ++--- .../app-language-select.element.ts | 4 +-- .../app-language.context.ts | 4 +-- .../repository/language-item.store.ts | 4 +-- .../repository/language.repository.ts | 12 ++++---- .../languages/repository/language.store.ts | 8 ++--- .../tags/repository/tag.repository.ts | 4 +-- .../src/packages/tags/repository/tag.store.ts | 4 +-- .../code-editor/code-editor.element.ts | 4 +-- .../templating-insert-menu.element.ts | 4 +-- .../insert-choose-type-sidebar.element.ts | 4 +-- .../entity-actions/create/create.action.ts | 4 +-- ...rtial-view-create-options-modal.element.ts | 8 ++--- .../partial-view-workspace-editor.element.ts | 4 +-- .../entity-actions/create/create.action.ts | 4 +-- .../script-create-options-modal.element.ts | 8 ++--- .../stylesheet-rule-input.element.ts | 4 +-- .../entity-actions/create/create.action.ts | 4 +-- ...stylesheet-create-options-modal.element.ts | 8 ++--- .../input-template/input-template.element.ts | 4 +-- .../query-builder/query-builder.element.ts | 4 +-- .../repository/template.repository.ts | 4 +-- .../template-workspace-editor.element.ts | 4 +-- .../current-user-header-app.element.ts | 4 +-- .../current-user-history.store.ts | 4 +-- .../user-profile-app-history.element.ts | 4 +-- .../user-profile-app-profile.element.ts | 4 +-- .../user-profile-app-themes.element.ts | 4 +-- .../user-group-collection.repository.ts | 4 +-- .../delete/delete.action.ts | 8 ++--- .../repository/user-group-item.store.ts | 6 ++-- .../repository/user-group.repository.ts | 10 +++---- .../user-group/repository/user-group.store.ts | 4 +-- .../action/create-user.collection-action.ts | 4 +-- .../change-user-password.action.ts | 4 +-- .../disable/disable-user.action.ts | 4 +-- .../enable/enable-user.action.ts | 4 +-- .../unlock/unlock-user.action.ts | 4 +-- .../delete/delete.action.ts | 8 ++--- .../set-group/set-group.action.ts | 4 +-- .../invite-user.collection-action.ts | 4 +-- .../resend-invite/resend-invite.action.ts | 4 +-- .../create/user-create-modal.element.ts | 4 +-- .../user-create-success-modal.element.ts | 4 +-- .../user/repository/user-repository-base.ts | 8 ++--- .../user/user/repository/user.store.ts | 4 +-- .../shared/resources/resource.controller.ts | 4 +-- .../src/shared/router/route.context.ts | 10 +++---- .../storybook/stories/context-api.mdx | 29 +++++++++---------- .../stories/extending/entity-actions.mdx | 14 +++++---- .../extending/registration/conditions.mdx | 2 +- .../storybook/stories/modal/modal.mdx | 2 +- .../story-modal-service-example.element.ts | 4 +-- .../storybook/stories/umb-element.mdx | 4 +-- 185 files changed, 418 insertions(+), 500 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index 473679ec63..a6fb5b33ac 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -9,7 +9,7 @@ import { setCustomElements } from '@storybook/web-components'; import { startMockServiceWorker } from '../src/mocks'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '../src/packages/core/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '../src/packages/core/modal'; import { UmbDataTypeTreeStore } from '../src/packages/core/data-type/tree/data-type-tree.store'; import { UmbDocumentStore } from '../src/packages/documents/documents/repository/document.store'; import { UmbDocumentTreeStore } from '../src/packages/documents/documents/tree/document-tree.store'; @@ -35,7 +35,7 @@ class UmbStoryBookElement extends UmbLitElement { super(); this._umbIconRegistry.attach(this); this._registerExtensions(documentManifests); - this.provideContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, new UmbModalManagerContext(this)); + this.provideContext(UMB_MODAL_MANAGER_CONTEXT, new UmbModalManagerContext(this)); this._registerExtensions(localizationManifests); umbLocalizationRegistry.loadLanguage('en-us'); // register default language diff --git a/src/Umbraco.Web.UI.Client/README.md b/src/Umbraco.Web.UI.Client/README.md index 6308975ef4..3417b276db 100644 --- a/src/Umbraco.Web.UI.Client/README.md +++ b/src/Umbraco.Web.UI.Client/README.md @@ -44,7 +44,7 @@ Then create a dashboard.js file the same folder. ```javascript import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; const template = document.createElement('template'); template.innerHTML = ` @@ -75,7 +75,7 @@ export default class MyDashboardElement extends UmbElementMixin(HTMLElement) { this.shadowRoot.getElementById('clickMe').addEventListener('click', this.onClick.bind(this)); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (_instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (_instance) => { this.#notificationContext = _instance; }); } @@ -109,7 +109,7 @@ Then go to the element located in `src/my-element.ts` and replace it with the fo // src/my-element.ts import { LitElement, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; @customElement('my-element') export default class MyElement extends UmbElementMixin(LitElement) { @@ -117,7 +117,7 @@ export default class MyElement extends UmbElementMixin(LitElement) { constructor() { super(); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (_instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (_instance) => { this._notificationContext = _instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts index 458d13bd1b..a2578228df 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts @@ -17,7 +17,7 @@ export class UmbBackofficeContext extends UmbContextBase { public readonly allowedSections = this.#allowedSections.asObservable(); constructor(host: UmbControllerHost) { - super(host, UMB_BACKOFFICE_CONTEXT_TOKEN); + super(host, UMB_BACKOFFICE_CONTEXT); new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'section', null, (sections) => { this.#allowedSections.setValue([...sections]); }); @@ -28,4 +28,4 @@ export class UmbBackofficeContext extends UmbContextBase { } } -export const UMB_BACKOFFICE_CONTEXT_TOKEN = new UmbContextToken('UmbBackofficeContext'); +export const UMB_BACKOFFICE_CONTEXT = new UmbContextToken('UmbBackofficeContext'); diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts index c2c7c77ce8..d522025478 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts @@ -1,4 +1,4 @@ -import { UMB_BACKOFFICE_CONTEXT_TOKEN } from '../backoffice.context.js'; +import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js'; import type { UmbBackofficeContext } from '../backoffice.context.js'; import { css, CSSResultGroup, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; @@ -18,7 +18,7 @@ export class UmbBackofficeHeaderSectionsElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_BACKOFFICE_CONTEXT_TOKEN, (backofficeContext) => { + this.consumeContext(UMB_BACKOFFICE_CONTEXT, (backofficeContext) => { this._backofficeContext = backofficeContext; this._observeSections(); this._observeCurrentSection(); diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts index 8cd338830b..90bd823fa9 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts @@ -1,6 +1,6 @@ -import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT_TOKEN } from '../backoffice.context.js'; +import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UmbSectionContext, UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; import type { UmbRoute, UmbRouterSlotChangeEvent } from '@umbraco-cms/backoffice/router'; import type { ManifestSection, UmbSectionElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbExtensionManifestInitializer, createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; @@ -21,7 +21,7 @@ export class UmbBackofficeMainElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_BACKOFFICE_CONTEXT_TOKEN, (_instance) => { + this.consumeContext(UMB_BACKOFFICE_CONTEXT, (_instance) => { this._backofficeContext = _instance; this._observeBackoffice(); }); @@ -88,7 +88,7 @@ export class UmbBackofficeMainElement extends UmbLitElement { private _provideSectionContext(sectionManifest: ManifestSection) { if (!this._sectionContext) { this._sectionContext = new UmbSectionContext(sectionManifest); - this.provideContext(UMB_SECTION_CONTEXT_TOKEN, this._sectionContext); + this.provideContext(UMB_SECTION_CONTEXT, this._sectionContext); } else { this._sectionContext.setManifest(sectionManifest); } diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts index 5d81d1b77b..7b0a67c325 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts @@ -1,4 +1,4 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context.js'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; import { css, CSSResultGroup, html, customElement, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; import { @@ -21,7 +21,7 @@ export class UmbInstallerConsentElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_INSTALLER_CONTEXT_TOKEN, (installerContext) => { + this.consumeContext(UMB_INSTALLER_CONTEXT, (installerContext) => { this._installerContext = installerContext; this._observeInstallerSettings(); this._observeInstallerData(); diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts index ca5e80163d..c341245d6d 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts @@ -1,4 +1,4 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context.js'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; import { UUIButtonElement } from '@umbraco-cms/backoffice/external/uui'; import { css, @@ -46,7 +46,7 @@ export class UmbInstallerDatabaseElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_INSTALLER_CONTEXT_TOKEN, (installerContext) => { + this.consumeContext(UMB_INSTALLER_CONTEXT, (installerContext) => { this._installerContext = installerContext; this._observeInstallerSettings(); this._observeInstallerData(); diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts index 8fdb1a0233..dc3449ac99 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts @@ -1,4 +1,4 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context.js'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; import { css, CSSResultGroup, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -13,7 +13,7 @@ export class UmbInstallerErrorElement extends UmbLitElement { connectedCallback() { super.connectedCallback(); - this.consumeContext(UMB_INSTALLER_CONTEXT_TOKEN, (installerContext) => { + this.consumeContext(UMB_INSTALLER_CONTEXT, (installerContext) => { this._installerContext = installerContext; this._observeInstallStatus(); }); diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts index 7d836049ef..1ca5895117 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts @@ -129,4 +129,4 @@ export class UmbInstallerContext { } } -export const UMB_INSTALLER_CONTEXT_TOKEN = new UmbContextToken('UmbInstallerContext'); +export const UMB_INSTALLER_CONTEXT = new UmbContextToken('UmbInstallerContext'); diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts index 3f5642cc9f..30a47a3eb0 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts @@ -1,4 +1,4 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from './installer.context.js'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from './installer.context.js'; import { css, CSSResultGroup, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -18,7 +18,7 @@ export class UmbInstallerElement extends UmbLitElement { constructor() { super(); - this.provideContext(UMB_INSTALLER_CONTEXT_TOKEN, this._umbInstallerContext); + this.provideContext(UMB_INSTALLER_CONTEXT, this._umbInstallerContext); } connectedCallback(): void { diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts index fbfef955af..f12bacc84d 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts @@ -1,4 +1,4 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT_TOKEN } from '../installer.context.js'; +import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; import { css, CSSResultGroup, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -12,7 +12,7 @@ export class UmbInstallerUserElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_INSTALLER_CONTEXT_TOKEN, (installerContext) => { + this.consumeContext(UMB_INSTALLER_CONTEXT, (installerContext) => { this._installerContext = installerContext; this._observeInstallerData(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts index 79796d6350..e536b536bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts @@ -1,7 +1,7 @@ import { UmbAuditLogServerDataSource } from './audit-log.server.data.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { AuditTypeModel, DirectionModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; @@ -14,7 +14,7 @@ export class UmbAuditLogRepository extends UmbBaseController { super(host); this.#dataSource = new UmbAuditLogServerDataSource(host); - this.#init = new UmbContextConsumerController(host, UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.#init = new UmbContextConsumerController(host, UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationService = instance; }).asPromise(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 1b7b8a3981..df10d78010 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -5,7 +5,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { type UmbBlockLayoutBaseModel } from '@umbraco-cms/backoffice/block'; import '../ref-list-block/index.js'; import '../inline-list-block/index.js'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; /** * @element umb-property-editor-ui-block-list-block @@ -55,7 +55,7 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl } #requestDelete() { - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, async (modalManager) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, async (modalManager) => { const modalContext = modalManager.open(UMB_CONFIRM_MODAL, { data: { headline: `Delete ${this._label}`, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts index 75a2c49b32..0d167a660d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts @@ -4,7 +4,7 @@ import { } from '@umbraco-cms/backoffice/document-type'; import { UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -53,7 +53,7 @@ export class UmbBlockTypeCardElement extends UmbLitElement { } #onRequestDelete() { - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, async (modalManager) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, async (modalManager) => { const modalContext = modalManager.open(UMB_CONFIRM_MODAL, { data: { color: 'danger', diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 2d875299db..69f2d2b35b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -1,7 +1,7 @@ import { UmbBlockTypeBaseModel } from '../../types.js'; import { UMB_DOCUMENT_TYPE_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; @@ -63,7 +63,7 @@ export class UmbInputBlockTypeElement< } create() { - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, async (modalManager) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, async (modalManager) => { if (modalManager) { // TODO: Make as mode for the Picker Modal, so the click to select immediately submits the modal(And in that mode we do not want to see a Submit button). const modalContext = modalManager.open(UMB_DOCUMENT_TYPE_PICKER_MODAL, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 683d0862dd..02cf88be12 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -7,7 +7,7 @@ import { import { css, html, customElement, state, repeat, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import { groupBy } from '@umbraco-cms/backoffice/external/lodash'; import { - UMB_MODAL_CONTEXT_TOKEN, + UMB_MODAL_CONTEXT, UmbModalBaseElement, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; @@ -32,7 +32,7 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< constructor() { super(); - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (modalContext) => { + this.consumeContext(UMB_MODAL_CONTEXT, (modalContext) => { new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL) //.addAdditionalPath('block') // No need for additional path specification in this context as this is for sure the only workspace we want to open here. .onSetup(() => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 701653f966..c33612c52c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -7,7 +7,7 @@ import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UMB_BLOCK_MANAGER_CONTEXT, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; import { buildUdi } from '@umbraco-cms/backoffice/utils'; -import { UMB_MODAL_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbBlockWorkspaceContext< LayoutDataType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, @@ -19,7 +19,7 @@ export class UmbBlockWorkspaceContext< #blockManager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; #retrieveBlockManager; - #modalContext?: typeof UMB_MODAL_CONTEXT_TOKEN.TYPE; + #modalContext?: typeof UMB_MODAL_CONTEXT.TYPE; #retrieveModalContext; #editorConfigPromise?: Promise; @@ -49,7 +49,7 @@ export class UmbBlockWorkspaceContext< this.#entityType = workspaceArgs.manifest.meta?.entityType; this.workspaceAlias = workspaceArgs.manifest.alias; - this.#retrieveModalContext = this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { + this.#retrieveModalContext = this.consumeContext(UMB_MODAL_CONTEXT, (context) => { this.#modalContext = context; context.onSubmit().catch(this.#modalRejected); }).asPromise(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts index 90c6671e3a..d408f6f019 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts @@ -2,7 +2,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, CSSResultGroup, html, repeat, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalElement, UmbModalContext, } from '@umbraco-cms/backoffice/modal'; @@ -21,7 +21,7 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalManager = instance; this._observeModals(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts index 10abb5fba8..0f3c61a0db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts @@ -3,7 +3,7 @@ import { css, CSSResultGroup, html, customElement, state, repeat, query } from ' import { UmbNotificationHandler, UmbNotificationContext, - UMB_NOTIFICATION_CONTEXT_TOKEN, + UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -20,7 +20,7 @@ export class UmbBackofficeNotificationContainerElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this._notificationContext = instance; this._observeNotifications(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts index 46bab98a29..14c61b7602 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts @@ -1,7 +1,7 @@ import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -35,7 +35,7 @@ export class UmbEntityActionsBundleElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, (sectionContext) => { + this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT, (sectionContext) => { this.#sectionSidebarContext = sectionContext; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts index afe4762fad..6a1de70aa9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts @@ -4,7 +4,7 @@ import { UmbModalManagerContext, UmbModalToken, UmbModalType, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbPickerModalValue, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -29,7 +29,7 @@ export class UmbInputListBaseElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts index 941b17be7e..c34690d974 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts @@ -9,7 +9,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_LINK_PICKER_MODAL, UMB_MEDIA_TREE_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; @@ -47,7 +47,7 @@ export class UmbInputMarkdownElement extends FormControlMixin(UmbLitElement) { constructor() { super(); this.#loadCodeEditor(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); this.consumeContext(UMB_APP_CONTEXT, (instance) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts index ff24d8c5ae..34cee3cb21 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts @@ -5,11 +5,7 @@ import { UUIInputElement, UUIInputEvent, } from '@umbraco-cms/backoffice/external/uui'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -53,7 +49,7 @@ export class UmbMultipleColorPickerItemInputElement extends FormControlMixin(Umb constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } @@ -65,7 +61,7 @@ export class UmbMultipleColorPickerItemInputElement extends FormControlMixin(Umb content: this.localize.term('content_nestedContentDeleteItem'), color: 'danger', confirmLabel: this.localize.term('actions_delete'), - } + }, }); modalContext?.onSubmit().then(() => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts index ed1bf3f019..be9d5f5414 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts @@ -1,10 +1,6 @@ import { css, html, nothing, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -39,7 +35,7 @@ export class UmbInputMultipleTextStringItemElement extends FormControlMixin(UmbL constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts index bc50ca6c71..834eb50114 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts @@ -3,7 +3,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_DATA_TYPE_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -14,7 +14,7 @@ export class UmbCopyDataTypeEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts index df5ec45503..4a3a7a67b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts @@ -2,7 +2,7 @@ import { UmbDataTypeDetailRepository } from '../../repository/detail/data-type-d import { UMB_DATA_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; @@ -10,7 +10,7 @@ export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index 43b8cf9ff2..8958f2672f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -5,7 +5,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { type UmbModalManagerContext, UmbModalBaseElement, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; @@ -15,7 +15,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbModalBaseElement { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts index 1ecd58718e..6e3725338b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts @@ -3,7 +3,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_DATA_TYPE_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -14,7 +14,7 @@ export class UmbMoveDataTypeEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts index dba99160c1..c747b7bee9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts @@ -1,7 +1,7 @@ import { UMB_DATA_TYPE_TREE_STORE_CONTEXT, UmbDataTypeTreeStore } from '../../tree/data-type-tree.store.js'; import { UmbDataTypeDetailRepository } from '../detail/data-type-detail.repository.js'; import { UmbDataTypeCopyServerDataSource } from './data-type-copy.server.data-source.js'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbCopyDataSource, UmbCopyRepository, UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; @@ -22,7 +22,7 @@ export class UmbCopyDataTypeRepository extends UmbRepositoryBase implements UmbC this.#treeStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts index 2dd4ed273e..3ed42c6ab0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts @@ -1,6 +1,6 @@ import { UMB_DATA_TYPE_TREE_STORE_CONTEXT, UmbDataTypeTreeStore } from '../../tree/data-type-tree.store.js'; import { UmbDataTypeMoveServerDataSource } from './data-type-move.server.data-source.js'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbMoveDataSource, UmbMoveRepository, UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; @@ -19,7 +19,7 @@ export class UmbMoveDataTypeRepository extends UmbRepositoryBase implements UmbM this.#treeStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts index b9e6c8889a..7a4dd41410 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts @@ -4,7 +4,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -33,7 +33,7 @@ export class UmbDataTypeDetailsWorkspaceViewEditElement extends UmbLitElement im constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts index 878947eda9..57893717f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts @@ -19,7 +19,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbModalManagerContext, UMB_CONTEXT_DEBUGGER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; @customElement('umb-debug') @@ -40,7 +40,7 @@ export class UmbDebugElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts index 8be1c44ed9..3d15ec51d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts @@ -1,11 +1,7 @@ import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbDetailRepository, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; export class UmbDeleteEntityAction< @@ -16,7 +12,7 @@ export class UmbDeleteEntityAction< constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts index 39a0a75d0c..a37961fc61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts @@ -1,5 +1,5 @@ import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import { UmbRenameDataSource, UmbRenameDataSourceConstructor } from '@umbraco-cms/backoffice/entity-action'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; @@ -24,7 +24,7 @@ export abstract class UmbRenameRepositoryBase { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts index 42621775d2..dde8c935c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -2,7 +2,7 @@ import { UMB_RENAME_MODAL } from './modal/rename-modal.token.js'; import { type UmbRenameRepository } from './types.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbRenameEntityAction extends UmbEntityActionBase> { #modalManagerContext?: UmbModalManagerContext; @@ -10,7 +10,7 @@ export class UmbRenameEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts index 4b6c8bb08c..b9f4fb27ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts @@ -1,11 +1,7 @@ import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; export class UmbTrashEntityAction< @@ -16,7 +12,7 @@ export class UmbTrashEntityAction< constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts index 29bd771d32..41b9103a67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts @@ -1,4 +1,4 @@ -import { UMB_MENU_CONTEXT_TOKEN } from '../../menu/menu.context.js'; +import { UMB_MENU_CONTEXT } from '../../menu/menu.context.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { ManifestCondition, @@ -20,7 +20,7 @@ export class UmbMenuAliasCondition extends UmbBaseController implements UmbExten super(args.host); this.config = args.config; this.#onChange = args.onChange; - this.consumeContext(UMB_MENU_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_MENU_CONTEXT, (context) => { this.observe(context.alias, (MenuAlias) => { this.permitted = MenuAlias === this.config.match; this.#onChange(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts index d5c26579fa..7c31162ddf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts @@ -5,7 +5,7 @@ import { UmbConditionControllerArguments, UmbExtensionCondition, } from '@umbraco-cms/backoffice/extension-api'; -import { UMB_SECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; export class UmbSectionAliasCondition extends UmbBaseController implements UmbExtensionCondition { config: SectionAliasConditionConfig; @@ -16,7 +16,7 @@ export class UmbSectionAliasCondition extends UmbBaseController implements UmbEx super(args.host); this.config = args.config; this.#onChange = args.onChange; - this.consumeContext(UMB_SECTION_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_SECTION_CONTEXT, (context) => { this.observe(context.alias, (sectionAlias) => { this.permitted = sectionAlias === this.config.match; this.#onChange(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts b/src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts index 11c02f9f90..fb94a58260 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts @@ -145,4 +145,4 @@ export class UmbMacroService { } } -export const UMB_MACRO_SERVICE_CONTEXT_TOKEN = new UmbContextToken(UmbMacroService.name); +export const UMB_MACRO_SERVICE_CONTEXT = new UmbContextToken(UmbMacroService.name); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts index aef947c17d..6ba0930c06 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UmbSectionContext, UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-menu-item-layout') @@ -25,7 +25,7 @@ export class UmbMenuItemLayoutElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_SECTION_CONTEXT_TOKEN, (sectionContext) => { + this.consumeContext(UMB_SECTION_CONTEXT, (sectionContext) => { this.#sectionContext = sectionContext; this._observeSection(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts index f3e324c045..17ff5dfa35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.context.ts @@ -12,4 +12,4 @@ export class UmbMenuContext { } } -export const UMB_MENU_CONTEXT_TOKEN = new UmbContextToken('UMB_MENU_CONTEXT_TOKEN'); +export const UMB_MENU_CONTEXT = new UmbContextToken('UMB_MENU_CONTEXT'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts index db9a6bf4d5..a920b2550f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts @@ -12,7 +12,7 @@ export class UmbMenuElement extends UmbLitElement { constructor() { super(); - //this.provideContext(UMB_MENU_CONTEXT_TOKEN, new UmbMenuContext()); + //this.provideContext(UMB_MENU_CONTEXT, new UmbMenuContext()); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-manager.context.ts index 50d6569214..b45a356105 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-manager.context.ts @@ -20,7 +20,7 @@ export class UmbModalManagerContext extends UmbContextBase( +export const UMB_MODAL_MANAGER_CONTEXT = new UmbContextToken( 'UmbModalManagerContext', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts index d26933cd44..3028aa5dab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts @@ -1,6 +1,6 @@ import { UmbModalRouteRegistration } from './modal-route-registration.js'; import { UmbModalToken } from './token/index.js'; -import { UMB_ROUTE_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/router'; +import { UMB_ROUTE_CONTEXT } from '@umbraco-cms/backoffice/router'; import type { UmbController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; @@ -15,7 +15,7 @@ export class UmbModalRouteRegistrationController = new Map(); - #routeContext?: typeof UMB_ROUTE_CONTEXT_TOKEN.TYPE; + #routeContext?: typeof UMB_ROUTE_CONTEXT.TYPE; #modalRegistration?: UmbModalRouteRegistration; public get controllerAlias() { @@ -35,7 +35,7 @@ export class UmbModalRouteRegistrationController { + this.#init = new UmbContextConsumerController(host, UMB_ROUTE_CONTEXT, (_routeContext) => { this.#routeContext = _routeContext; this.#registerModal(); }).asPromise(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts index e08fd89d2e..a975018ab0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts @@ -131,4 +131,4 @@ export class UmbModalContext('UmbModalContext'); +export const UMB_MODAL_CONTEXT = new UmbContextToken('UmbModalContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts index 9fd3f772f0..f42aedfc3b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts @@ -1,4 +1,4 @@ -import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from './modal.context.js'; +import { UMB_MODAL_CONTEXT, UmbModalContext } from './modal.context.js'; import { ManifestModal, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { CSSResultGroup, html, customElement } from '@umbraco-cms/backoffice/external/lit'; @@ -51,7 +51,7 @@ export class UmbModalElement extends UmbLitElement { // Note for this hack (The if-sentence): // We do not currently have a good enough control to ensure that the proxy is last, meaning if another context is provided at this element, it might respond after the proxy event has been dispatched. // To avoid such this hack just prevents proxying the event if its a request for the Modal Context. - if (event.contextAlias !== UMB_MODAL_CONTEXT_TOKEN.contextAlias) { + if (event.contextAlias !== UMB_MODAL_CONTEXT.contextAlias) { event.stopImmediatePropagation(); this.#modalContext.originTarget.dispatchEvent(event.clone()); } @@ -86,7 +86,7 @@ export class UmbModalElement extends UmbLitElement { this.element.appendChild(this.#modalRouterElement); this.#observeModal(this.#modalContext.alias.toString()); - const provider = new UmbContextProvider(this.element, UMB_MODAL_CONTEXT_TOKEN, this.#modalContext); + const provider = new UmbContextProvider(this.element, UMB_MODAL_CONTEXT, this.#modalContext); provider.hostConnected(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts index 8134a606b0..f332742a43 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.ts @@ -34,7 +34,7 @@ export class UmbNotificationContext extends UmbContextBase('UmbNotificationContext'); +export const UMB_NOTIFICATION_CONTEXT = new UmbContextToken('UmbNotificationContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts index 236b1ac4d0..c23d979bfe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts @@ -3,7 +3,7 @@ import { UmbNotificationColor, UmbNotificationOptions, UmbNotificationContext, - UMB_NOTIFICATION_CONTEXT_TOKEN, + UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -14,7 +14,7 @@ export class UmbStoryNotificationDefaultExampleElement extends UmbLitElement { connectedCallback(): void { super.connectedCallback(); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this._notificationContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts index 0a8a3c91a9..a176f38357 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts @@ -4,7 +4,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UMB_CONFIRM_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalToken, UmbPickerModalData, @@ -50,7 +50,7 @@ export class UmbPickerInputContext extends Um this.#init = Promise.all([ this.#itemManager.init, - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.modalManager = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts index 17bb0b1057..cc35e147ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts @@ -3,9 +3,9 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/ import { UmbNotificationDefaultData, UmbNotificationContext, - UMB_NOTIFICATION_CONTEXT_TOKEN, + UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; -//import { UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/workspace'; +//import { UMB_WORKSPACE_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-property-action-copy') @@ -18,12 +18,12 @@ export class UmbPropertyActionCopyElement extends UmbLitElement implements UmbPr constructor() { super(); - //this.consumeContext(UMB_WORKSPACE_PROPERTY_CONTEXT_TOKEN, (property) => { + //this.consumeContext(UMB_WORKSPACE_PROPERTY_CONTEXT, (property) => { //console.log('Got a reference to the editor element', property.getEditor()); // Be aware that the element might switch, so using the direct reference is not recommended, instead observe the .element Observable() //}); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this._notificationContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts index 81811c6da1..4a87662d27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts @@ -4,7 +4,7 @@ import { UUIBooleanInputEvent, UUIInputEvent } from '@umbraco-cms/backoffice/ext import { extractUmbColorVariable } from '@umbraco-cms/backoffice/resources'; import { UMB_ICON_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; import { @@ -40,7 +40,7 @@ export class UmbPropertyEditorUICollectionViewLayoutConfigurationElement constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts index 9b0c36a3e2..4d2a9c89ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -3,7 +3,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_ICON_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -48,7 +48,7 @@ export class UmbPropertyEditorUIIconPickerElement extends UmbLitElement implemen constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts index af8dbe690f..4e4ff24618 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts @@ -4,7 +4,7 @@ import { UmbCodeEditorModalValue, UMB_CODE_EDITOR_MODAL, UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; export default class UmbTinyMceCodeEditorPlugin extends UmbTinyMcePluginBase { @@ -13,7 +13,7 @@ export default class UmbTinyMceCodeEditorPlugin extends UmbTinyMcePluginBase { constructor(args: TinyMcePluginArguments) { super(args); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { this.#modalContext = modalContext; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts index 10ce0609b8..bd885cb529 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts @@ -4,7 +4,7 @@ import { UmbEmbeddedMediaModalValue, UMB_EMBEDDED_MEDIA_MODAL, UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; export default class UmbTinyMceEmbeddedMediaPlugin extends UmbTinyMcePluginBase { @@ -13,7 +13,7 @@ export default class UmbTinyMceEmbeddedMediaPlugin extends UmbTinyMcePluginBase constructor(args: TinyMcePluginArguments) { super(args); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { this.#modalContext = modalContext; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts index 7a0acf8728..f624f1fff1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts @@ -4,7 +4,7 @@ import { UMB_LINK_PICKER_MODAL, UmbLinkPickerLink, UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; type AnchorElementAttributes = { @@ -26,7 +26,7 @@ export default class UmbTinyMceLinkPickerPlugin extends UmbTinyMcePluginBase { constructor(args: TinyMcePluginArguments) { super(args); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { this.#modalContext = modalContext; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts index e7957b30c4..99b1b68e51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts @@ -1,10 +1,6 @@ import { MacroSyntaxData, UmbMacroService } from '@umbraco-cms/backoffice/macro'; import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import { - UMB_CONFIRM_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UmbModalManagerContext, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import type { AstNode } from '@umbraco-cms/backoffice/external/tinymce'; interface DialogData { @@ -23,7 +19,7 @@ export default class UmbTinyMceMacroPickerPlugin extends UmbTinyMcePluginBase { constructor(args: TinyMcePluginArguments) { super(args); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { this.#modalContext = modalContext; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts index d1969701c5..1d09349e34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts @@ -3,7 +3,7 @@ import { UmbMediaHelper } from '@umbraco-cms/backoffice/utils'; import { UMB_MEDIA_TREE_PICKER_MODAL, UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; import { UMB_CURRENT_USER_CONTEXT, UmbCurrentUser } from '@umbraco-cms/backoffice/current-user'; import { RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; @@ -40,7 +40,7 @@ export default class UmbTinyMceMediaPickerPlugin extends UmbTinyMcePluginBase { this.#mediaHelper = new UmbMediaHelper(); this.#temporaryFileRepository = new UmbTemporaryFileRepository(args.host); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { this.#modalContext = modalContext; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 03734e474c..668605d5c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -2,7 +2,7 @@ import { UmbRepositoryBase } from '../repository-base.js'; import { UmbDetailDataSource, UmbDetailDataSourceConstructor } from './detail-data-source.interface.js'; import { UmbDetailRepository } from './detail-repository.interface.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -33,7 +33,7 @@ export abstract class UmbDetailRepositoryBase< this.#detailStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts index ac589de6f8..633e6e21a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts @@ -1,4 +1,4 @@ -import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '../section-sidebar/index.js'; +import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT } from '../section-sidebar/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -22,7 +22,7 @@ export class UmbSectionSidebarContextMenuElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT, (instance) => { this.#sectionSidebarContext = instance; if (this.#sectionSidebarContext) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts index d73a104a5b..e81021cc40 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts @@ -41,6 +41,4 @@ export class UmbSectionSidebarContext { } } -export const UMB_SECTION_SIDEBAR_CONTEXT_TOKEN = new UmbContextToken( - 'UmbSectionSidebarContext', -); +export const UMB_SECTION_SIDEBAR_CONTEXT = new UmbContextToken('UmbSectionSidebarContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts index 4d9915a143..28fa72bb14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts @@ -1,4 +1,4 @@ -import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from './section-sidebar.context.js'; +import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT } from './section-sidebar.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -9,7 +9,7 @@ export class UmbSectionSidebarElement extends UmbLitElement { constructor() { super(); - this.provideContext(UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, this.#sectionSidebarContext); + this.provideContext(UMB_SECTION_SIDEBAR_CONTEXT, this.#sectionSidebarContext); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts index 71787d9021..436675bac0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section.context.ts @@ -21,4 +21,4 @@ export class UmbSectionContext { } } -export const UMB_SECTION_CONTEXT_TOKEN = new UmbContextToken('UmbSectionContext'); +export const UMB_SECTION_CONTEXT = new UmbContextToken('UmbSectionContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts index f1a6e20d59..19dfde9d49 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts @@ -19,7 +19,7 @@ export class UmbThemeContext extends UmbBaseController { constructor(host: UmbControllerHostElement) { super(host); - this.provideContext(UMB_THEME_CONTEXT_TOKEN, this); + this.provideContext(UMB_THEME_CONTEXT, this); const storedTheme = localStorage.getItem(LOCAL_STORAGE_KEY); if (storedTheme) { @@ -81,7 +81,7 @@ export class UmbThemeContext extends UmbBaseController { } } -export const UMB_THEME_CONTEXT_TOKEN = new UmbContextToken('umbThemeContext'); +export const UMB_THEME_CONTEXT = new UmbContextToken('umbThemeContext'); // Default export to enable this as a globalContext extension js: export default UmbThemeContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts index 28a474da8a..0b4a0bdda9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts @@ -1,7 +1,7 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { type UmbFolderRepository, UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; export class UmbCreateFolderEntityAction extends UmbEntityActionBase { @@ -10,7 +10,7 @@ export class UmbCreateFolderEntityAction extends constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts index a1bc34892c..1dbb29182d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts @@ -1,11 +1,7 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { @@ -14,7 +10,7 @@ export class UmbDeleteFolderEntityAction extends constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts index e3e2b4b78e..b431e36d71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts @@ -1,7 +1,7 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { type UmbFolderRepository, UMB_FOLDER_UPDATE_MODAL } from '@umbraco-cms/backoffice/tree'; export class UmbFolderUpdateEntityAction< @@ -12,7 +12,7 @@ export class UmbFolderUpdateEntityAction< constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 317ef7214c..01d8e9d6d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -6,7 +6,7 @@ import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeItemModelBase, UmbTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; export type UmbFolderToTreeItemMapper = ( item: UmbFolderModel, @@ -37,7 +37,7 @@ export abstract class UmbFolderRepositoryBase { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index 81c6d5fb4c..7f3ed3783b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -2,7 +2,7 @@ import { UmbTreeItemContext } from '../tree-item-default/tree-item.context.inter import { UmbTreeContextBase } from '../tree.context.js'; import { UmbTreeItemModelBase } from '../types.js'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import { UMB_SECTION_CONTEXT_TOKEN, UMB_SECTION_SIDEBAR_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UMB_SECTION_CONTEXT, UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; import type { UmbSectionContext, UmbSectionSidebarContext } from '@umbraco-cms/backoffice/section'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbBooleanState, UmbDeepState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; @@ -58,7 +58,7 @@ export class UmbTreeItemContextBase super(host); this.#getUniqueFunction = getUniqueFunction; this.#consumeContexts(); - this.provideContext(UMB_TREE_ITEM_CONTEXT_TOKEN, this); + this.provideContext(UMB_TREE_ITEM_CONTEXT, this); } public setTreeItem(treeItem: TreeItemType | undefined) { @@ -114,12 +114,12 @@ export class UmbTreeItemContextBase } #consumeContexts() { - this.consumeContext(UMB_SECTION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_SECTION_CONTEXT, (instance) => { this.#sectionContext = instance; this.#observeSectionPath(); }); - this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_SECTION_SIDEBAR_CONTEXT, (instance) => { this.#sectionSidebarContext = instance; }); @@ -212,4 +212,4 @@ export class UmbTreeItemContextBase } } -export const UMB_TREE_ITEM_CONTEXT_TOKEN = new UmbContextToken>('UmbTreeItemContext'); +export const UMB_TREE_ITEM_CONTEXT = new UmbContextToken>('UmbTreeItemContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts index a156f89855..9132143291 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts @@ -1,6 +1,6 @@ import type { UmbTreeItemContext } from '../tree-item-default/index.js'; import { UmbTreeItemModelBase } from '../types.js'; -import { UMB_TREE_ITEM_CONTEXT_TOKEN } from './tree-item-base.context.js'; +import { UMB_TREE_ITEM_CONTEXT } from './tree-item-base.context.js'; import { css, html, nothing, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -42,7 +42,7 @@ export class UmbTreeItemBaseElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_TREE_ITEM_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_TREE_ITEM_CONTEXT, (instance) => { this.#treeItemContext = instance; if (!this.#treeItemContext) return; // TODO: investigate if we can make an observe decorator diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index d8b4339766..e660c58a92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -3,7 +3,7 @@ import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_CONTEXT, UmbModalContext } from '@umbraco-cms/backoffice/modal'; export abstract class UmbEditableWorkspaceContextBase extends UmbBaseController @@ -21,7 +21,7 @@ export abstract class UmbEditableWorkspaceContextBase super(host); this.workspaceAlias = workspaceAlias; this.provideContext(UMB_WORKSPACE_CONTEXT, this); - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_MODAL_CONTEXT, (context) => { (this.modalContext as UmbModalContext) = context; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts index a7f25d3980..225c3d790f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts @@ -4,7 +4,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api import { UmbNotificationDefaultData, UmbNotificationContext, - UMB_NOTIFICATION_CONTEXT_TOKEN, + UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; import { UmbObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbEntityDetailStore } from '@umbraco-cms/backoffice/store'; @@ -35,7 +35,7 @@ export class UmbEntityWorkspaceManager< this._host = host; this._entityType = entityType; - new UmbContextConsumerController(this._host, UMB_NOTIFICATION_CONTEXT_TOKEN, (_instance) => { + new UmbContextConsumerController(this._host, UMB_NOTIFICATION_CONTEXT, (_instance) => { this._notificationContext = _instance; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/variant-workspace-context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/variant-workspace-context.token.ts index add236a445..562eabe48f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/variant-workspace-context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/variant-workspace-context.token.ts @@ -2,7 +2,7 @@ import type { UmbWorkspaceContextInterface } from './workspace-context.interface import type { UmbVariantableWorkspaceContextInterface } from './workspace-variantable-context.interface.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -export const UMB_VARIANT_WORKSPACE_CONTEXT_TOKEN = new UmbContextToken< +export const UMB_VARIANT_WORKSPACE_CONTEXT = new UmbContextToken< UmbWorkspaceContextInterface, UmbVariantableWorkspaceContextInterface >( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts index b179ca01e9..245b6313a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts @@ -3,7 +3,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_CONTEXT, UmbModalContext } from '@umbraco-cms/backoffice/modal'; /** * @element umb-workspace-footer @@ -31,7 +31,7 @@ export class UmbWorkspaceFooterLayoutElement extends UmbLitElement { this.consumeContext(UMB_SAVEABLE_WORKSPACE_CONTEXT, (context) => { this._isNew = context.getIsNew(); }); - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_MODAL_CONTEXT, (context) => { this._modalContext = context; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts index 259993ee1e..7cbd6611f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts @@ -1,5 +1,5 @@ import { UmbPropertyDatasetContext } from '../../property/property-dataset/index.js'; -import { UMB_VARIANT_WORKSPACE_CONTEXT_TOKEN } from '../index.js'; +import { UMB_VARIANT_WORKSPACE_CONTEXT } from '../index.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -7,7 +7,7 @@ import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; export class UmbWorkspaceSplitViewContext extends UmbBaseController { - #workspaceContext?: typeof UMB_VARIANT_WORKSPACE_CONTEXT_TOKEN.TYPE; + #workspaceContext?: typeof UMB_VARIANT_WORKSPACE_CONTEXT.TYPE; public getWorkspaceContext() { return this.#workspaceContext; } @@ -23,7 +23,7 @@ export class UmbWorkspaceSplitViewContext extends UmbBaseController { constructor(host: UmbControllerHost) { super(host); - this.consumeContext(UMB_VARIANT_WORKSPACE_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_VARIANT_WORKSPACE_CONTEXT, (context) => { this.#workspaceContext = context; this._observeVariant(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts index ca5eb554bf..b0a9f81bba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts @@ -4,7 +4,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_EXPORT_DICTIONARY_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -16,7 +16,7 @@ export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts index 06cde9e29e..8ee45c0477 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts @@ -4,7 +4,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_IMPORT_DICTIONARY_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UMB_DICTIONARY_TREE_STORE_CONTEXT, UmbDictionaryTreeStore } from '@umbraco-cms/backoffice/dictionary'; @@ -18,7 +18,7 @@ export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); this.consumeContext(UMB_DICTIONARY_TREE_STORE_CONTEXT, (instance) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts index f880427cde..48b5a504f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts @@ -1,5 +1,5 @@ import { type UmbDictionaryTreeStore, UMB_DICTIONARY_TREE_STORE_CONTEXT } from '../tree/index.js'; -import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT_TOKEN } from './dictionary.store.js'; +import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT } from './dictionary.store.js'; import { UmbDictionaryDetailServerDataSource } from './sources/dictionary-detail.server.data-source.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; @@ -7,7 +7,7 @@ import type { CreateDictionaryItemRequestModel, UpdateDictionaryItemRequestModel, } from '@umbraco-cms/backoffice/backend-api'; -import { type UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { type UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbTemporaryFileRepository } from '@umbraco-cms/backoffice/temporary-file'; @@ -27,7 +27,7 @@ export class UmbDictionaryRepository extends UmbBaseController implements UmbApi super(host); this.#init = Promise.all([ - this.consumeContext(UMB_DICTIONARY_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_DICTIONARY_STORE_CONTEXT, (instance) => { this.#detailStore = instance; }), @@ -35,7 +35,7 @@ export class UmbDictionaryRepository extends UmbBaseController implements UmbApi this.#treeStore = instance; }), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts index 44347b97fb..2a3ecec0a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts @@ -14,7 +14,7 @@ export class UmbDictionaryStore extends UmbStoreBase { constructor(host: UmbControllerHostElement) { super( host, - UMB_DICTIONARY_STORE_CONTEXT_TOKEN.toString(), + UMB_DICTIONARY_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id), ); } @@ -37,4 +37,4 @@ export class UmbDictionaryStore extends UmbStoreBase { } } -export const UMB_DICTIONARY_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDictionaryStore'); +export const UMB_DICTIONARY_STORE_CONTEXT = new UmbContextToken('UmbDictionaryStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index 5fa5ff6fec..3e4772a43b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -1,10 +1,6 @@ import { UUIButtonState, UUIPaginationElement, UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, state, query, property } from '@umbraco-cms/backoffice/external/lit'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { RedirectManagementResource, @@ -47,7 +43,7 @@ export class UmbDashboardRedirectManagementElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (_instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (_instance) => { this._modalContext = _instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts index fad4dafbc3..85309834eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts @@ -14,7 +14,7 @@ export class UmbDocumentBlueprintStore extends UmbStoreBase { constructor(host: UmbControllerHostElement) { super( host, - UMB_DOCUMENT_BLUEPRINT_STORE_CONTEXT_TOKEN.toString(), + UMB_DOCUMENT_BLUEPRINT_STORE_CONTEXT.toString(), // TODO: use the right type: new UmbArrayState([], (x) => x.id), @@ -96,6 +96,6 @@ export class UmbDocumentBlueprintStore extends UmbStoreBase { } } -export const UMB_DOCUMENT_BLUEPRINT_STORE_CONTEXT_TOKEN = new UmbContextToken( +export const UMB_DOCUMENT_BLUEPRINT_STORE_CONTEXT = new UmbContextToken( 'UmbDocumentBlueprintStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.tree.store.ts index 07f07c4f20..4443072992 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.tree.store.ts @@ -2,7 +2,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export const UMB_DOCUMENT_BLUEPRINT_TREE_STORE_CONTEXT_TOKEN = new UmbContextToken( +export const UMB_DOCUMENT_BLUEPRINT_TREE_STORE_CONTEXT = new UmbContextToken( 'UmbDocumentBlueprintTreeStore', ); @@ -14,6 +14,6 @@ export const UMB_DOCUMENT_BLUEPRINT_TREE_STORE_CONTEXT_TOKEN = new UmbContextTok */ export class UmbDocumentBlueprintTreeStore extends UmbEntityTreeStore { constructor(host: UmbControllerHostElement) { - super(host, UMB_DOCUMENT_BLUEPRINT_TREE_STORE_CONTEXT_TOKEN.toString()); + super(host, UMB_DOCUMENT_BLUEPRINT_TREE_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts index 5c3cc0ad17..3f1594fa7c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts @@ -2,7 +2,7 @@ import { UmbDocumentTypeDetailRepository } from '../../repository/detail/documen import { UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; @@ -10,7 +10,7 @@ export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts index d40554d2ad..dda0eb238d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts @@ -4,7 +4,7 @@ import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoff import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_ICON_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; @@ -38,7 +38,7 @@ export class UmbDocumentTypeWorkspaceEditorElement extends UmbLitElement { this.#observeDocumentType(); }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index 15bbf3ad32..695d495ab7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -4,7 +4,7 @@ import { css, html, customElement, property, state, ifDefined, nothing } from '@ import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_CONFIRM_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_SETTINGS_MODAL, UMB_WORKSPACE_MODAL, UmbConfirmModalData, @@ -56,7 +56,7 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { #dataTypeDetailRepository = new UmbDataTypeDetailRepository(this); #modalRegistration; - private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT_TOKEN.TYPE; + private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; @state() protected _modalRoute?: string; @@ -110,7 +110,7 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { this._editDocumentTypePath = routeBuilder({}); }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (context) => { this._modalManagerContext = context; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index cb42bfb10a..7f76fe14cb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -13,7 +13,7 @@ import { import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; @@ -88,7 +88,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement extends UmbLitElement imple private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); - private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT_TOKEN.TYPE; + private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; constructor() { super(); @@ -116,7 +116,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement extends UmbLitElement imple this._observeRootGroups(); }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (context) => { this._modalManagerContext = context; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts index 295730d674..dc1dc72b0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts @@ -2,7 +2,7 @@ import { css, html, customElement, property, state, PropertyValueMap } from '@um import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL, UMB_DOCUMENT_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -41,7 +41,7 @@ export class UmbInputDocumentGranularPermissionElement extends FormControlMixin( constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => (this.#modalContext = instance)); + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => (this.#modalContext = instance)); } protected firstUpdated(_changedProperties: PropertyValueMap | Map): void { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index abd6f5b4cc..f59d5ce8a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -3,7 +3,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CREATE_DOCUMENT_MODAL as UMB_CREATE_DOCUMENT_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -13,7 +13,7 @@ export class UmbCreateDocumentEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts index cd2bc0693e..65717c8038 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts @@ -5,7 +5,7 @@ import { html, customElement, property, state, ifDefined, nothing } from '@umbra import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UMB_ENTITY_USER_PERMISSION_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_USER_GROUP_PICKER_MODAL, UmbEntityUserPermissionSettingsModalData, UmbEntityUserPermissionSettingsModalValue, @@ -54,7 +54,7 @@ export class UmbPermissionsModalElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts index 21714c9c0d..9badcdcec0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts @@ -2,7 +2,7 @@ import { type UmbDocumentRepository } from '../../repository/document.repository import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UMB_PERMISSIONS_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -13,7 +13,7 @@ export class UmbDocumentPermissionsEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts index d186d8edf3..1cdc3cd240 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts @@ -18,8 +18,8 @@ export class UmbDocumentItemStore extends UmbEntityItemStore('UmbDocumentItemStore'); +export const UMB_DOCUMENT_ITEM_STORE_CONTEXT = new UmbContextToken('UmbDocumentItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index 755a60c513..c620159fb4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -1,12 +1,12 @@ import { UmbDocumentTreeStore, UMB_DOCUMENT_TREE_STORE_CONTEXT } from '../tree/document-tree.store.js'; import { UmbDocumentServerDataSource } from './sources/document.server.data.js'; -import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.store.js'; -import { UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, type UmbDocumentItemStore } from './document-item.store.js'; +import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT } from './document.store.js'; +import { UMB_DOCUMENT_ITEM_STORE_CONTEXT, type UmbDocumentItemStore } from './document-item.store.js'; import { UmbDocumentItemServerDataSource } from './sources/document-item.server.data.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; @@ -35,15 +35,15 @@ export class UmbDocumentRepository extends UmbBaseController implements UmbApi { this.#treeStore = instance; }).asPromise(), - this.consumeContext(UMB_DOCUMENT_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_DOCUMENT_STORE_CONTEXT, (instance) => { this.#store = instance; }).asPromise(), - this.consumeContext(UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_DOCUMENT_ITEM_STORE_CONTEXT, (instance) => { this.#itemStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts index bc228ed79e..2ef5453e2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts @@ -17,7 +17,7 @@ export class UmbDocumentStore extends UmbStoreBase { * @memberof UmbDocumentDetailStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_DOCUMENT_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id)); + super(host, UMB_DOCUMENT_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); } /** @@ -30,4 +30,4 @@ export class UmbDocumentStore extends UmbStoreBase { } } -export const UMB_DOCUMENT_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDocumentStore'); +export const UMB_DOCUMENT_STORE_CONTEXT = new UmbContextToken('UmbDocumentStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts index b7b33b42d3..c9fef1755b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts @@ -1,8 +1,5 @@ import { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element.js'; -import { - UmbHealthCheckDashboardContext, - UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, -} from './health-check-dashboard.context.js'; +import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT } from './health-check-dashboard.context.js'; import { UmbHealthCheckContext } from './health-check.context.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { HealthCheckGroupResponseModel, HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; @@ -33,7 +30,7 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { constructor() { super(); - this.provideContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, this._healthCheckDashboardContext); + this.provideContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT, this._healthCheckDashboardContext); this.observe(umbExtensionsRegistry.extensionsOfType('healthCheck'), (healthCheckManifests) => { this._healthCheckDashboardContext.manifests = healthCheckManifests; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts index 066987a82b..47d6c6a382 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts @@ -34,6 +34,6 @@ export class UmbHealthCheckDashboardContext { } } -export const UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN = new UmbContextToken( +export const UMB_HEALTHCHECK_DASHBOARD_CONTEXT = new UmbContextToken( 'UmbHealthCheckDashboardContext', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts index 513b6cff46..e32a6958db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts @@ -45,4 +45,4 @@ export class UmbHealthCheckContext { } } -export const UMB_HEALTHCHECK_CONTEXT_TOKEN = new UmbContextToken('UmbHealthCheckContext'); +export const UMB_HEALTHCHECK_CONTEXT = new UmbContextToken('UmbHealthCheckContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts index 45c6c6fac2..c2fdceadcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts @@ -1,6 +1,6 @@ import { UmbHealthCheckContext } from '../health-check.context.js'; import { - UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, + UMB_HEALTHCHECK_DASHBOARD_CONTEXT, UmbHealthCheckDashboardContext, } from '../health-check-dashboard.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -28,7 +28,7 @@ export class UmbHealthCheckGroupBoxOverviewElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT, (instance) => { this._healthCheckContext = instance; if (!this._healthCheckContext || !this.manifest?.meta.label) return; this._api = this._healthCheckContext?.apis.get(this.manifest?.meta.label); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts index c73a87c193..0796d053fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts @@ -1,7 +1,7 @@ import { UmbHealthCheckContext } from '../health-check.context.js'; import { UmbHealthCheckDashboardContext, - UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, + UMB_HEALTHCHECK_DASHBOARD_CONTEXT, } from '../health-check-dashboard.context.js'; import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, property, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; @@ -42,7 +42,7 @@ export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT, (instance) => { this._healthCheckContext = instance; this._api = this._healthCheckContext?.apis.get(this.groupName); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts index 4d53b0cf7a..45254b1461 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts @@ -1,6 +1,6 @@ import { UmbHealthCheckDashboardContext, - UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, + UMB_HEALTHCHECK_DASHBOARD_CONTEXT, } from '../health-check-dashboard.context.js'; import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; @@ -19,7 +19,7 @@ export class UmbDashboardHealthCheckOverviewElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT, (instance) => { this._healthCheckDashboardContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts index 7c074e8518..4ffe1fd479 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts @@ -1,7 +1,7 @@ import { LogViewerDateRange, UmbLogViewerWorkspaceContext, - UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, + UMB_APP_LOG_VIEWER_CONTEXT, } from '../workspace/logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, property, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; @@ -27,7 +27,7 @@ export class UmbLogViewerDateRangeSelectorElement extends UmbLitElement { constructor() { super(); this.addEventListener('input', this.#setDates); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#observeStuff(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts index 11b5f60e94..08623f6a80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts @@ -1,7 +1,7 @@ import { UmbLogMessagesServerDataSource, UmbLogSearchesServerDataSource } from './sources/log-viewer.server.data.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { DirectionModel, LogLevelModel, SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; // Move to documentation / JSdoc @@ -20,7 +20,7 @@ export class UmbLogViewerRepository { this.#searchDataSource = new UmbLogSearchesServerDataSource(this.#host); this.#messagesDataSource = new UmbLogMessagesServerDataSource(this.#host); - this.#init = new UmbContextConsumerController(this.#host, UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.#init = new UmbContextConsumerController(this.#host, UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationService = instance; }).asPromise(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts index ecadd02005..47fd13a7dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts @@ -111,7 +111,7 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U super(host); this.provideContext(UMB_WORKSPACE_CONTEXT, this); // TODO: Revisit usage of workspace for this case... currently no other workspace context provides them self with their own token. - this.provideContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, this); + this.provideContext(UMB_APP_LOG_VIEWER_CONTEXT, this); this.#repository = new UmbLogViewerRepository(host); } @@ -327,6 +327,6 @@ export class UmbLogViewerWorkspaceContext extends UmbBaseController implements U } } -export const UMB_APP_LOG_VIEWER_CONTEXT_TOKEN = new UmbContextToken( +export const UMB_APP_LOG_VIEWER_CONTEXT = new UmbContextToken( UmbLogViewerWorkspaceContext.name, ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts index 95d45e01ba..653db2e1f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LoggerResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -9,7 +9,7 @@ export class UmbLogViewerLogLevelOverviewElement extends UmbLitElement { #logViewerContext?: UmbLogViewerWorkspaceContext; constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#logViewerContext?.getSavedSearches(); this.#observeLogLevels(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts index e42b852e00..237968569f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -8,7 +8,7 @@ export class UmbLogViewerLogTypesChartElement extends UmbLitElement { #logViewerContext?: UmbLogViewerWorkspaceContext; constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#logViewerContext?.getLogCount(); this.#observeStuff(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts index d8d63e3f8c..8de16dd426 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -13,7 +13,7 @@ export class UmbLogViewerMessageTemplatesOverviewElement extends UmbLitElement { #logViewerContext?: UmbLogViewerWorkspaceContext; constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#logViewerContext?.getMessageTemplates(0, 10); this.#observeStuff(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts index d907382832..8ed407f0fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -14,7 +14,7 @@ export class UmbLogViewerSavedSearchesOverviewElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#logViewerContext?.getSavedSearches(); this.#observeStuff(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts index 9c5babed5a..244660252d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../logviewer.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -18,7 +18,7 @@ export class UmbLogViewerOverviewViewElement extends UmbLitElement { #logViewerContext?: UmbLogViewerWorkspaceContext; constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#observeErrorCount(); this.#observeCanShowLogs(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts index 589e0aa1b7..63cfb9eac1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UUICheckboxElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; import { debounce } from '@umbraco-cms/backoffice/external/lodash'; @@ -18,7 +18,7 @@ export class UmbLogViewerLogLevelFilterMenuElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#observeLogLevelFilter(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts index de30d985da..c1ed9dd636 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, @@ -58,7 +58,7 @@ export class UmbLogViewerMessageElement extends UmbLitElement { #logViewerContext?: UmbLogViewerWorkspaceContext; constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts index 2449327280..94a6302b7b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UUIScrollContainerElement, UUIPaginationElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -25,7 +25,7 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#observeLogs(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts index c94a3a224b..05966bb38a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts @@ -2,7 +2,7 @@ import { PoolingCOnfig, PoolingInterval, UmbLogViewerWorkspaceContext, - UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, + UMB_APP_LOG_VIEWER_CONTEXT, } from '../../../logviewer.context.js'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -21,7 +21,7 @@ export class UmbLogViewerPollingButtonElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#observePoolingConfig(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts index 3e83fb593a..4fb1bee70b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { Subject, debounceTime, tap } from '@umbraco-cms/backoffice/external/rxjs'; @@ -6,7 +6,7 @@ import { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { query as getQuery, path, toQueryString } from '@umbraco-cms/backoffice/router'; import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalContext, UmbModalToken, @@ -54,13 +54,13 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#observeStuff(); this.#logViewerContext?.getSavedSearches(); }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts index cad0ee6293..91182ee457 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts @@ -1,4 +1,4 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context.js'; +import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -15,7 +15,7 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT, (instance) => { this.#logViewerContext = instance; this.#observeCanShowLogs(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts index 43565e0070..9f6c65013c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts @@ -2,7 +2,7 @@ import { UmbMediaTypeDetailRepository } from '../../repository/detail/media-type import { UMB_MEDIA_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateMediaTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; @@ -10,7 +10,7 @@ export class UmbCreateMediaTypeEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index 6adab67b55..f172161f05 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -5,7 +5,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { type UmbModalManagerContext, type UmbModalContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; import { UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -22,7 +22,7 @@ export class UmbDataTypeCreateOptionsModalElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts index 5be1c981d5..211af780d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts @@ -4,7 +4,7 @@ import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoff import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_ICON_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @@ -39,7 +39,7 @@ export class UmbMediaTypeWorkspaceEditorElement extends UmbLitElement { this.#observeMediaType(); }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index 6c11fbfd0a..e16966698a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -4,7 +4,7 @@ import { css, html, customElement, property, state, ifDefined, nothing } from '@ import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_CONFIRM_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_SETTINGS_MODAL, UMB_WORKSPACE_MODAL, UmbConfirmModalData, @@ -56,7 +56,7 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { #dataTypeDetailRepository = new UmbDataTypeDetailRepository(this); #modalRegistration; - private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT_TOKEN.TYPE; + private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; @state() protected _modalRoute?: string; @@ -110,7 +110,7 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { this._editMediaTypePath = routeBuilder({}); }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (context) => { this._modalManagerContext = context; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts index 390407a932..97c49edb4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts @@ -13,7 +13,7 @@ import { import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; @@ -88,7 +88,7 @@ export class UmbMediaTypeWorkspaceViewEditElement extends UmbLitElement implemen private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); - private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT_TOKEN.TYPE; + private _modalManagerContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; constructor() { super(); @@ -116,7 +116,7 @@ export class UmbMediaTypeWorkspaceViewEditElement extends UmbLitElement implemen this._observeRootGroups(); }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (context) => { this._modalManagerContext = context; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts index 5760770ac2..926e41d7e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts @@ -4,7 +4,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_MEDIA_TREE_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -14,7 +14,7 @@ export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase) { super(host, repositoryAlias, selection); - new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts index 8879b7bdcc..0f342d74f4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts @@ -3,11 +3,7 @@ import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; @@ -15,7 +11,7 @@ export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase) { super(host, repositoryAlias, selection); - new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts index b6bb3ebdc0..e5adb47981 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts @@ -6,7 +6,7 @@ import { UMB_MEDIA_ITEM_STORE_CONTEXT, UmbMediaItemStore } from './media-item.st import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbMediaRepository extends UmbBaseController implements UmbApi { @@ -42,7 +42,7 @@ export class UmbMediaRepository extends UmbBaseController implements UmbApi { this.#itemStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts index 1fd415ae68..8e2d90ee1f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts @@ -4,7 +4,7 @@ import { UmbMemberTypeStore, UMB_MEMBER_TYPE_STORE_CONTEXT } from './member-type import { UmbMemberTypeDetailServerDataSource } from './sources/member-type.detail.server.data.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; export class UmbMemberTypeRepository extends UmbBaseController { #init!: Promise; @@ -31,7 +31,7 @@ export class UmbMemberTypeRepository extends UmbBaseController { this.#treeStore = instance; }), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index acfbdc8235..0a51223015 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -16,7 +16,7 @@ import { import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { PackageDefinitionResponseModel, PackageResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-workspace-package-builder') @@ -36,7 +36,7 @@ export class UmbWorkspacePackageBuilderElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this._notificationContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts index 011147b582..bb7a0261c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts @@ -3,11 +3,7 @@ import { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { PackageDefinitionResponseModel, PackageResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; @customElement('umb-packages-created-overview') export class UmbPackagesCreatedOverviewElement extends UmbLitElement { @@ -35,7 +31,7 @@ export class UmbPackagesCreatedOverviewElement extends UmbLitElement { super.connectedCallback(); this.#getPackages(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index 6b49197e55..283b3ee72d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -1,17 +1,13 @@ import { html, css, nothing, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import { ManifestPackageView, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { PackageResource } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; @customElement('umb-installed-packages-section-view-item') export class UmbInstalledPackagesSectionViewItemElement extends UmbLitElement { @@ -49,10 +45,10 @@ export class UmbInstalledPackagesSectionViewItemElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts index 199743ded9..9f6d5ff308 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts @@ -1,10 +1,10 @@ import { UmbRelationTypeTreeStore, UMB_RELATION_TYPE_TREE_STORE_CONTEXT } from '../tree/index.js'; import { UmbRelationTypeServerDataSource } from './sources/relation-type.server.data.js'; -import { UmbRelationTypeStore, UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN } from './relation-type.store.js'; +import { UmbRelationTypeStore, UMB_RELATION_TYPE_STORE_CONTEXT } from './relation-type.store.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { CreateRelationTypeRequestModel, UpdateRelationTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbRelationTypeRepository extends UmbBaseController implements UmbApi { @@ -28,11 +28,11 @@ export class UmbRelationTypeRepository extends UmbBaseController implements UmbA this.#treeStore = instance; }).asPromise(), - this.consumeContext(UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_RELATION_TYPE_STORE_CONTEXT, (instance) => { this.#detailStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts index 2a8b1a33e8..8547d10d1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts @@ -4,7 +4,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export const UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbRelationTypeStore'); +export const UMB_RELATION_TYPE_STORE_CONTEXT = new UmbContextToken('UmbRelationTypeStore'); /** * @export @@ -21,7 +21,7 @@ export class UmbRelationTypeStore extends UmbStoreBase { constructor(host: UmbControllerHostElement) { super( host, - UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN.toString(), + UMB_RELATION_TYPE_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id), ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts index f3ec9bc63c..0c996a3b39 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts @@ -1,7 +1,7 @@ import { UmbRelationServerDataSource } from './sources/relation.server.data.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbRelationRepository extends UmbBaseController implements UmbApi { @@ -17,7 +17,7 @@ export class UmbRelationRepository extends UmbBaseController implements UmbApi { this.#detailDataSource = new UmbRelationServerDataSource(this._host); this.#init = Promise.all([ - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts index 9e0beb658b..0a04601e61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts @@ -1,10 +1,6 @@ import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { HealthStatusModel, IndexResponseModel, IndexerResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -31,7 +27,7 @@ export class UmbDashboardExamineIndexElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (_instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (_instance) => { this._modalContext = _instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts index cedd91859e..1bda89c9df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts @@ -2,7 +2,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, query, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_EXAMINE_FIELDS_SETTINGS_MODAL, } from '@umbraco-cms/backoffice/modal'; import { @@ -42,7 +42,7 @@ export class UmbDashboardExamineSearcherElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts index 4c0ab780bb..88e1749e8b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts @@ -1,6 +1,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, CSSResultGroup, html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-search-header-app') @@ -10,7 +10,7 @@ export class UmbSearchHeaderAppElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (_instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (_instance) => { this._modalContext = _instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts index 9b38810983..b7b5183944 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -1,10 +1,6 @@ import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { PublishedCacheResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -32,7 +28,7 @@ export class UmbDashboardPublishedStatusElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts index 24ac727cf4..01ebdfe19a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts @@ -2,11 +2,7 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/externa import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; @customElement('umb-extension-root-workspace') export class UmbExtensionRootWorkspaceElement extends UmbLitElement { @@ -19,7 +15,7 @@ export class UmbExtensionRootWorkspaceElement extends UmbLitElement { super.connectedCallback(); this._observeExtensions(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts index 77bd40441c..a7e3cfadf3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts @@ -1,5 +1,5 @@ import { UmbLanguageRepository } from '../repository/language.repository.js'; -import { UMB_APP_LANGUAGE_CONTEXT_TOKEN, UmbAppLanguageContext } from './app-language.context.js'; +import { UMB_APP_LANGUAGE_CONTEXT, UmbAppLanguageContext } from './app-language.context.js'; import { UUIMenuItemEvent, UUIPopoverContainerElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, repeat, ifDefined, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -26,7 +26,7 @@ export class UmbAppLanguageSelectElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_APP_LANGUAGE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_APP_LANGUAGE_CONTEXT, (instance) => { this.#appLanguageContext = instance; this.#observeAppLanguage(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts index ffff1c32b4..c5fbe94e8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts @@ -17,7 +17,7 @@ export class UmbAppLanguageContext extends UmbBaseController implements UmbApi { constructor(host: UmbControllerHost) { super(host); - this.provideContext(UMB_APP_LANGUAGE_CONTEXT_TOKEN, this); + this.provideContext(UMB_APP_LANGUAGE_CONTEXT, this); this.#languageRepository = new UmbLanguageRepository(this); this.#observeLanguages(); @@ -58,4 +58,4 @@ export class UmbAppLanguageContext extends UmbBaseController implements UmbApi { // Default export to enable this as a globalContext extension js: export default UmbAppLanguageContext; -export const UMB_APP_LANGUAGE_CONTEXT_TOKEN = new UmbContextToken('UmbAppLanguageContext'); +export const UMB_APP_LANGUAGE_CONTEXT = new UmbContextToken('UmbAppLanguageContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts index c94169e2a9..ea90e071cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts @@ -5,7 +5,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbItemStore } from '@umbraco-cms/backoffice/store'; -export const UMB_LANGUAGE_ITEM_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbLanguageItemStore'); +export const UMB_LANGUAGE_ITEM_STORE_CONTEXT = new UmbContextToken('UmbLanguageItemStore'); /** * @export @@ -17,7 +17,7 @@ export class UmbLanguageItemStore extends UmbStoreBase { constructor(host: UmbControllerHostElement) { super( host, - UMB_LANGUAGE_ITEM_STORE_CONTEXT_TOKEN.toString(), + UMB_LANGUAGE_ITEM_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.isoCode), ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts index 6f84dbf229..d03a64ad4a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts @@ -1,10 +1,10 @@ import { UmbLanguageServerDataSource } from './sources/language.server.data.js'; -import { UmbLanguageStore, UMB_LANGUAGE_STORE_CONTEXT_TOKEN } from './language.store.js'; +import { UmbLanguageStore, UMB_LANGUAGE_STORE_CONTEXT } from './language.store.js'; import { UmbLanguageItemServerDataSource } from './sources/language-item.server.data.js'; -import { UMB_LANGUAGE_ITEM_STORE_CONTEXT_TOKEN, UmbLanguageItemStore } from './language-item.store.js'; +import { UMB_LANGUAGE_ITEM_STORE_CONTEXT, UmbLanguageItemStore } from './language-item.store.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { LanguageItemResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; @@ -25,15 +25,15 @@ export class UmbLanguageRepository extends UmbBaseController implements UmbItemR this.#itemDataSource = new UmbLanguageItemServerDataSource(this); this.#init = Promise.all([ - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), - this.consumeContext(UMB_LANGUAGE_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_LANGUAGE_STORE_CONTEXT, (instance) => { this.#languageStore = instance; }).asPromise(), - this.consumeContext(UMB_LANGUAGE_ITEM_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_LANGUAGE_ITEM_STORE_CONTEXT, (instance) => { this.#languageItemStore = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts index 007b231328..a3c1e7df5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts @@ -4,7 +4,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export const UMB_LANGUAGE_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbLanguageStore'); +export const UMB_LANGUAGE_STORE_CONTEXT = new UmbContextToken('UmbLanguageStore'); /** * @export @@ -16,11 +16,7 @@ export class UmbLanguageStore extends UmbStoreBase { public readonly data = this._data.asObservable(); constructor(host: UmbControllerHostElement) { - super( - host, - UMB_LANGUAGE_STORE_CONTEXT_TOKEN.toString(), - new UmbArrayState([], (x) => x.isoCode), - ); + super(host, UMB_LANGUAGE_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.isoCode)); } append(language: LanguageResponseModel) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts index c1a5346d58..d5a2412c8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts @@ -1,5 +1,5 @@ import { UmbTagServerDataSource } from './sources/tag.server.data.js'; -import { UmbTagStore, UMB_TAG_STORE_CONTEXT_TOKEN } from './tag.store.js'; +import { UmbTagStore, UMB_TAG_STORE_CONTEXT } from './tag.store.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -15,7 +15,7 @@ export class UmbTagRepository extends UmbBaseController implements UmbApi { this.#dataSource = new UmbTagServerDataSource(this); - this.#init = this.consumeContext(UMB_TAG_STORE_CONTEXT_TOKEN, (instance) => { + this.#init = this.consumeContext(UMB_TAG_STORE_CONTEXT, (instance) => { this.#tagStore = instance; }).asPromise(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts index a2fd690952..661c3fa90a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts @@ -4,7 +4,7 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export const UMB_TAG_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbTagStore'); +export const UMB_TAG_STORE_CONTEXT = new UmbContextToken('UmbTagStore'); /** * @export * @class UmbTagStore @@ -20,7 +20,7 @@ export class UmbTagStore extends UmbStoreBase { * @memberof UmbTagStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_TAG_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id)); + super(host, UMB_TAG_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts index 17234ff0b9..ad6c7745b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts @@ -1,7 +1,7 @@ import { UmbCodeEditorController } from './code-editor.controller.js'; import type { CodeEditorLanguage, CodeEditorSearchOptions, UmbCodeEditorHost } from './code-editor.model.js'; import { CodeEditorTheme } from './code-editor.model.js'; -import { UMB_THEME_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/themes'; +import { UMB_THEME_CONTEXT } from '@umbraco-cms/backoffice/themes'; import { monacoEditorStyles, monacoJumpingCursorHack } from '@umbraco-cms/backoffice/external/monaco-editor'; import { css, @@ -98,7 +98,7 @@ export class UmbCodeEditorElement extends UmbLitElement implements UmbCodeEditor constructor() { super(); - this.consumeContext(UMB_THEME_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_THEME_CONTEXT, (instance) => { this.observe( instance.theme, (themeAlias) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts index 1b8b1c5558..f3fe42c931 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts @@ -6,7 +6,7 @@ import { customElement, property, css, html } from '@umbraco-cms/backoffice/exte import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UMB_DICTIONARY_ITEM_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_PARTIAL_VIEW_PICKER_MODAL, UmbDictionaryItemPickerModalValue, UmbModalManagerContext, @@ -39,7 +39,7 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts index 20fd2681c3..37cf4bfa87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts @@ -1,7 +1,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UMB_PARTIAL_VIEW_PICKER_MODAL, UmbModalContext, @@ -37,7 +37,7 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts index 095d522ee6..e4c2f3e87f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts @@ -1,7 +1,7 @@ import { UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; @@ -9,7 +9,7 @@ export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts index 1f437c1c42..5eb7e72ec0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -3,11 +3,7 @@ import { UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL } from '../snippet-modal/create-fro import { UmbPartialViewCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UmbModalManagerContext, - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @customElement('umb-partial-view-create-options-modal') @@ -21,7 +17,7 @@ export class UmbPartialViewCreateOptionsModalElement extends UmbModalBaseElement constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts index 8d6cf6223f..966f56e0fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts @@ -6,7 +6,7 @@ import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; @customElement('umb-partial-view-workspace-editor') export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { @@ -34,7 +34,7 @@ export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts index 67e3de6dba..7d6a1ead0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts @@ -1,7 +1,7 @@ import { UMB_SCRIPT_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; @@ -9,7 +9,7 @@ export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts index 582c50e29a..c383bf22ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts @@ -2,11 +2,7 @@ import { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.j import { UmbScriptCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UmbModalManagerContext, - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @customElement('umb-script-create-options-modal') @@ -17,7 +13,7 @@ export class UmbScriptCreateOptionsModalElement extends UmbModalBaseElement { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts index 910db339e2..9c5fcabd50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -3,7 +3,7 @@ import { UMB_STYLESHEET_RULE_SETTINGS_MODAL } from './stylesheet-rule-settings-m import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { css, html, customElement, repeat, property } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; // TODO: add sorting when we have a generic sorting component/functionality for ref lists @@ -18,7 +18,7 @@ export class UmbStylesheetRuleInputElement extends FormControlMixin(UmbLitElemen constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (modalContext) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { this.#modalManager = modalContext; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts index d6017d256b..818270d5fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts @@ -1,7 +1,7 @@ import { UMB_STYLESHEET_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbStylesheetCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; @@ -9,7 +9,7 @@ export class UmbStylesheetCreateOptionsEntityAction extends UmbEntityActionBase< constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts index 81381c1bf8..59bf60940a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts @@ -2,11 +2,7 @@ import { UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/ind import { UmbStylesheetCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UmbModalManagerContext, - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @customElement('umb-stylesheet-create-options-modal') @@ -20,7 +16,7 @@ export class UmbStylesheetCreateOptionsModalElement extends UmbModalBaseElement< constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts index ae013b4225..83ac3be422 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts @@ -8,7 +8,7 @@ import { UMB_TEMPLATE_PICKER_MODAL, UMB_TEMPLATE_MODAL, UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { ItemResponseModelBaseModel, TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -81,7 +81,7 @@ export class UmbInputTemplateElement extends FormControlMixin(UmbLitElement) { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts index 68b7d77bcf..0876832f59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts @@ -6,7 +6,7 @@ import { css, html, customElement, state, query, queryAll, ifDefined } from '@um import { UmbModalBaseElement, UMB_DOCUMENT_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; import { @@ -65,7 +65,7 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement this.#templateRepository = new UmbTemplateRepository(this); this.#documentRepository = new UmbDocumentRepository(this); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); this.#init(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts index 1f3b021242..aaa92ec247 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts @@ -7,7 +7,7 @@ import { UmbTemplateQueryBuilderServerDataSource } from './sources/template.quer import type { UmbItemDataSource, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { CreateTemplateRequestModel, TemplateItemResponseModel, @@ -52,7 +52,7 @@ export class UmbTemplateRepository this.#store = instance; }), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts index dac21fdad7..4d13bbef89 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -8,7 +8,7 @@ import { camelCase } from '@umbraco-cms/backoffice/external/lodash'; import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_TEMPLATE_PICKER_MODAL, UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; @@ -45,7 +45,7 @@ export class UmbTemplateWorkspaceEditorElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts index b5f5fe9eda..e893f40c64 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts @@ -2,7 +2,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, CSSResultGroup, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CURRENT_USER_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -19,7 +19,7 @@ export class UmbCurrentUserHeaderAppElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts index 8b25a0a437..bff02807ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts @@ -20,7 +20,7 @@ export class UmbCurrentUserHistoryStore extends UmbStoreBase([], (x) => x.unique), ); if (!('navigation' in window)) return; @@ -61,7 +61,7 @@ export class UmbCurrentUserHistoryStore extends UmbStoreBase( +export const UMB_CURRENT_USER_HISTORY_STORE_CONTEXT = new UmbContextToken( 'UmbCurrentUserHistoryStore', ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts index 71a07a10df..ed64c34311 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts @@ -1,7 +1,7 @@ import { UmbCurrentUserHistoryItem, UmbCurrentUserHistoryStore, - UMB_CURRENT_USER_HISTORY_STORE_CONTEXT_TOKEN, + UMB_CURRENT_USER_HISTORY_STORE_CONTEXT, } from '../current-user-history.store.js'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -17,7 +17,7 @@ export class UmbUserProfileAppHistoryElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_CURRENT_USER_HISTORY_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_CURRENT_USER_HISTORY_STORE_CONTEXT, (instance) => { this.#currentUserHistoryStore = instance; this.#observeHistory(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts index 9ba96391be..c7c67df8dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts @@ -4,7 +4,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbModalManagerContext, UMB_CHANGE_PASSWORD_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; import { UMB_CURRENT_USER_CONTEXT, type UmbCurrentUser } from '@umbraco-cms/backoffice/current-user'; @@ -19,7 +19,7 @@ export class UmbUserProfileAppProfileElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts index 0700f90bb9..c569439d80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts @@ -1,4 +1,4 @@ -import { UmbThemeContext, UMB_THEME_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/themes'; +import { UmbThemeContext, UMB_THEME_CONTEXT } from '@umbraco-cms/backoffice/themes'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -16,7 +16,7 @@ export class UmbUserProfileAppThemesElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_THEME_CONTEXT_TOKEN, (context) => { + this.consumeContext(UMB_THEME_CONTEXT, (context) => { this.#themeContext = context; this.observe( context.theme, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts index fba21ddbfc..82aab2eb2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts @@ -1,5 +1,5 @@ import { UmbUserGroupCollectionFilterModel } from '../../types.js'; -import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN, UmbUserGroupStore } from '../../repository/user-group.store.js'; +import { UMB_USER_GROUP_STORE_CONTEXT, UmbUserGroupStore } from '../../repository/user-group.store.js'; import { UmbUserGroupCollectionServerDataSource } from './user-group-collection.server.data-source.js'; import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; @@ -16,7 +16,7 @@ export class UmbUserGroupCollectionRepository extends UmbBaseController implemen super(host); this.#collectionSource = new UmbUserGroupCollectionServerDataSource(this._host); - this.#init = this.consumeContext(UMB_USER_GROUP_STORE_CONTEXT_TOKEN, (instance) => { + this.#init = this.consumeContext(UMB_USER_GROUP_STORE_CONTEXT, (instance) => { this.#detailStore = instance; }).asPromise(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts index db9c68eea5..d7ba789db4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts @@ -3,11 +3,7 @@ import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbDeleteUserGroupEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; @@ -15,7 +11,7 @@ export class UmbDeleteUserGroupEntityBulkAction extends UmbEntityBulkActionBase< constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { super(host, repositoryAlias, selection); - new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts index 754573fab8..ca32c765b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts @@ -17,10 +17,8 @@ export class UmbUserGroupItemStore extends UmbEntityItemStore( - 'UmbUserGroupItemStore', -); +export const UMB_USER_GROUP_ITEM_STORE_CONTEXT = new UmbContextToken('UmbUserGroupItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts index 26383553b3..de26ba1def 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts @@ -1,6 +1,6 @@ import { UmbUserGroupDetailDataSource } from '../types.js'; import { UmbUserGroupServerDataSource } from './sources/user-group.server.data-source.js'; -import { UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN, UmbUserGroupItemStore } from './user-group-item.store.js'; +import { UMB_USER_GROUP_ITEM_STORE_CONTEXT, UmbUserGroupItemStore } from './user-group-item.store.js'; import { UmbUserGroupItemServerDataSource } from './sources/user-group-item.server.data-source.js'; import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UserGroupItemResponseModel, UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -10,7 +10,7 @@ import { UmbDataSourceErrorResponse, DataSourceResponse, } from '@umbraco-cms/backoffice/repository'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -37,16 +37,16 @@ export class UmbUserGroupRepository this.#init = Promise.all([ /* - this.consumeContext(UMB_USER_GROUP_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_USER_GROUP_STORE_CONTEXT, (instance) => { this.#detailStore = instance; }).asPromise(), */ - this.consumeContext(UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_USER_GROUP_ITEM_STORE_CONTEXT, (instance) => { this.#itemStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.#notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts index 8ca9044e7c..f70b43dd99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts @@ -4,7 +4,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -export const UMB_USER_GROUP_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbUserGroupStore'); +export const UMB_USER_GROUP_STORE_CONTEXT = new UmbContextToken('UmbUserGroupStore'); /** * @export @@ -14,6 +14,6 @@ export const UMB_USER_GROUP_STORE_CONTEXT_TOKEN = new UmbContextToken([], (x) => x.id)); + super(host, UMB_USER_GROUP_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts index 0a011eb75e..aea2a4ce0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts @@ -2,7 +2,7 @@ import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_CREATE_USER_MODAL, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; @@ -12,7 +12,7 @@ export class UmbCreateUserCollectionAction extends UmbCollectionActionBase { constructor(host: UmbControllerHost) { super(host); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts index 46aac1f7a9..8f89d5063e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts @@ -3,7 +3,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CHANGE_PASSWORD_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -13,7 +13,7 @@ export class UmbChangeUserPasswordEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts index d5805553ee..588ed28ed1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts @@ -4,7 +4,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -17,7 +17,7 @@ export class UmbDisableUserEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts index 45ec73e0f5..85fd8d5649 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts @@ -4,7 +4,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -17,7 +17,7 @@ export class UmbEnableUserEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts index 727ba4bd47..11745c49b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts @@ -4,7 +4,7 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL, } from '@umbraco-cms/backoffice/modal'; @@ -17,7 +17,7 @@ export class UmbUnlockUserEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts index 6d0ba00157..74a04fc394 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts @@ -3,11 +3,7 @@ import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { - UmbModalManagerContext, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UMB_CONFIRM_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbUserDeleteEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; @@ -15,7 +11,7 @@ export class UmbUserDeleteEntityBulkAction extends UmbEntityBulkActionBase) { super(host, repositoryAlias, selection); - new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts index b1c33bb2c8..5400af8eb0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts @@ -2,7 +2,7 @@ import { UmbUserRepository } from '../../repository/user.repository.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbSetGroupUserEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; @@ -10,7 +10,7 @@ export class UmbSetGroupUserEntityBulkAction extends UmbEntityBulkActionBase) { super(host, repositoryAlias, selection); - new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(host, UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; //TODO: add user group picker modal diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts index b0008ede7e..3ecee0eedf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts @@ -1,7 +1,7 @@ import { UMB_INVITE_USER_MODAL } from '../modal/index.js'; import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; export class UmbInviteUserCollectionAction extends UmbCollectionActionBase { #modalManagerContext: UmbModalManagerContext | undefined; @@ -9,7 +9,7 @@ export class UmbInviteUserCollectionAction extends UmbCollectionActionBase { constructor(host: UmbControllerHost) { super(host); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts index df138da3b9..0be41309ae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts @@ -2,7 +2,7 @@ import { type UmbEnableUserRepository } from '../../../repository/enable/enable- import { UMB_RESEND_INVITE_TO_USER_MODAL } from '../../index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbResendInviteToUserEntityAction extends UmbEntityActionBase { #modalManager?: UmbModalManagerContext; @@ -10,7 +10,7 @@ export class UmbResendInviteToUserEntityAction extends UmbEntityActionBase { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManager = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts index 93c7065398..61ec621963 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts @@ -4,7 +4,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement, - UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UMB_MODAL_MANAGER_CONTEXT, UMB_CREATE_USER_SUCCESS_MODAL, UmbModalManagerContext, } from '@umbraco-cms/backoffice/modal'; @@ -20,7 +20,7 @@ export class UmbUserCreateModalElement extends UmbModalBaseElement { connectedCallback(): void { super.connectedCallback(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (_instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (_instance) => { this.#modalManagerContext = _instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts index 6b9f3ef9d3..cc81e3a8eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts @@ -5,7 +5,7 @@ import { UUIInputPasswordElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbNotificationDefaultData, UmbNotificationContext, - UMB_NOTIFICATION_CONTEXT_TOKEN, + UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; import { UmbCreateUserSuccessModalData, @@ -28,7 +28,7 @@ export class UmbUserCreateSuccessModalElement extends UmbModalBaseElement< connectedCallback(): void { super.connectedCallback(); - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => (this.#notificationContext = instance)); + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => (this.#notificationContext = instance)); } protected async firstUpdated(): Promise { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts index 1cdf85f57e..a54a8e7dcb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts @@ -1,7 +1,7 @@ -import { UMB_USER_STORE_CONTEXT_TOKEN, UmbUserStore } from './user.store.js'; +import { UMB_USER_STORE_CONTEXT, UmbUserStore } from './user.store.js'; import { UMB_USER_ITEM_STORE_CONTEXT, UmbUserItemStore } from './item/user-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_NOTIFICATION_CONTEXT_TOKEN, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbUserRepositoryBase extends UmbRepositoryBase { @@ -15,7 +15,7 @@ export class UmbUserRepositoryBase extends UmbRepositoryBase { super(host); this.init = Promise.all([ - this.consumeContext(UMB_USER_STORE_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_USER_STORE_CONTEXT, (instance) => { this.detailStore = instance; }).asPromise(), @@ -23,7 +23,7 @@ export class UmbUserRepositoryBase extends UmbRepositoryBase { this.itemStore = instance; }).asPromise(), - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { this.notificationContext = instance; }).asPromise(), ]); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts index 952fbd055d..ae02be34b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts @@ -4,7 +4,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export const UMB_USER_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbUserStore'); +export const UMB_USER_STORE_CONTEXT = new UmbContextToken('UmbUserStore'); /** * @export @@ -14,7 +14,7 @@ export const UMB_USER_STORE_CONTEXT_TOKEN = new UmbContextToken('U */ export class UmbUserStore extends UmbStoreBase { constructor(host: UmbControllerHostElement) { - super(host, UMB_USER_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id)); + super(host, UMB_USER_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); } /** diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts b/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts index c3c769f97c..5d65a25807 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts @@ -2,7 +2,7 @@ import { isApiError, isCancelError, isCancelablePromise } from './apiTypeValidators.function.js'; import { UmbNotificationContext, - UMB_NOTIFICATION_CONTEXT_TOKEN, + UMB_NOTIFICATION_CONTEXT, UmbNotificationOptions, } from '@umbraco-cms/backoffice/notification'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -20,7 +20,7 @@ export class UmbResourceController extends UmbBaseController { this.#promise = promise; - new UmbContextConsumerController(host, UMB_NOTIFICATION_CONTEXT_TOKEN, (_instance) => { + new UmbContextConsumerController(host, UMB_NOTIFICATION_CONTEXT, (_instance) => { this.#notificationContext = _instance; }); } diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts b/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts index 7804270ad3..366abff6d4 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts @@ -4,7 +4,7 @@ import type { IRoutingInfo, IRouterSlot } from '@umbraco-cms/backoffice/external import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalRouteRegistration } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalRouteRegistration } from '@umbraco-cms/backoffice/modal'; const EmptyDiv = document.createElement('div'); @@ -14,7 +14,7 @@ export class UmbRouteContext extends UmbBaseController { #mainRouter: IRouterSlot; #modalRouter: IRouterSlot; #modalRegistrations: UmbModalRouteRegistration[] = []; - #modalContext?: typeof UMB_MODAL_MANAGER_CONTEXT_TOKEN.TYPE; + #modalContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; #modalRoutes: UmbRoutePlusModalKey[] = []; #routerBasePath?: string; #routerActiveLocalPath?: string; @@ -24,8 +24,8 @@ export class UmbRouteContext extends UmbBaseController { super(host); this.#mainRouter = mainRouter; this.#modalRouter = modalRouter; - this.provideContext(UMB_ROUTE_CONTEXT_TOKEN, this); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (context) => { + this.provideContext(UMB_ROUTE_CONTEXT, this); + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (context) => { this.#modalContext = context; this.#generateModalRoutes(); }); @@ -154,4 +154,4 @@ export class UmbRouteContext extends UmbBaseController { }; } -export const UMB_ROUTE_CONTEXT_TOKEN = new UmbContextToken('UmbRouterContext'); +export const UMB_ROUTE_CONTEXT = new UmbContextToken('UmbRouterContext'); diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/context-api.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/context-api.mdx index 1dfa36306a..ed7f7f9ce7 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/context-api.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/context-api.mdx @@ -32,9 +32,9 @@ new UmbContextConsumerController(host, 'requestThisContextAlias', (context) => { Using a Context Token gives you a typed context: ```ts -import { UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (context) => { +this.consumeContext(UMB_NOTIFICATION_CONTEXT, (context) => { // Notice this is a subscription, as context might change or a new one appears, but the value is strongly typed console.log("I've got the context of the right type", context); }); @@ -52,7 +52,7 @@ type MyContext = { bar: number; }; -const MY_CONTEXT_TOKEN = new ContextToken('My.Context.Token'); +const MY_CONTEXT = new ContextToken('My.Context.Token'); ``` #### Context Token with discriminator. @@ -79,39 +79,38 @@ import { ContextToken } from '@umbraco-cms/backoffice/context'; interface MyBaseContext { foo: string; bar: number; -}; +} interface MyPublishableContext extends MyBaseContext { - publish() -}; + publish(); +} -const MY_PUBLISHABLE_CONTEXT_TOKEN = new ContextToken('My.Context.Token', (context): context is MyPublishableContext => { - return 'publish' in context; -}); +const MY_PUBLISHABLE_CONTEXT = new ContextToken( + 'My.Context.Token', + (context): context is MyPublishableContext => { + return 'publish' in context; + }, +); ``` Implementation of context token example: ```ts - const contextElement = new UmbLitElement(); -contextElement.provideContext(MY_PUBLISHABLE_CONTEXT_TOKEN, new MyPublishableContext()); - +contextElement.provideContext(MY_PUBLISHABLE_CONTEXT, new MyPublishableContext()); const consumerElement = new UmbLitElement(); contextElement.appendChild(contextElement); -consumerElement.consumeContext(MY_PUBLISHABLE_CONTEXT_TOKEN, (context) => { +consumerElement.consumeContext(MY_PUBLISHABLE_CONTEXT, (context) => { // context is of type 'MyPublishableContext' console.log("I've got the context of the right type", context); }); - ``` This enables implementors to request a publishable context, without the knowledge about how do identify such, neither they need to know about the Type. In details, the Context API will find the first API matching alias 'My.Context.Token', and never look furhter. If that API does live up to the type discriminator, it will be returned. If not the consumer will never reply. - ### Provide a Context API. From a Umbraco Element or Umbraco Controller: diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx index 298ec0ed24..725b5253c4 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/extending/entity-actions.mdx @@ -131,14 +131,14 @@ If any additional contexts are needed, these can be consumed from the host eleme ```ts import { UmbEntityActionBase } from '@umbraco-cms/entity-action'; import { UmbContextConsumerController } from '@umbraco-cms/controller'; -import { UMB_MODAL_SERVICE_CONTEXT_TOKEN } from '@umbraco-cms/modal'; +import { UMB_MODAL_SERVICE_CONTEXT } from '@umbraco-cms/modal'; import { MyRepository } from './my-repository'; export class MyEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - new UmbContextConsumerController(this.host, UMB_MODAL_SERVICE_CONTEXT_TOKEN, (instance) => { + new UmbContextConsumerController(this.host, UMB_MODAL_SERVICE_CONTEXT, (instance) => { this.#modalService = instance; }); } @@ -184,10 +184,12 @@ const manifest = { label: 'My Entity Bulk Action', repositoryAlias: 'My.Repository', }, - conditions: [{ - alias: 'Umb.Condition.CollectionAlias', - match: 'my-collection-alias', - }], + conditions: [ + { + alias: 'Umb.Condition.CollectionAlias', + match: 'my-collection-alias', + }, + ], }; extensionRegistry.register(manifest); diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/extending/registration/conditions.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/extending/registration/conditions.mdx index 5b8ad78caa..9caf2def5d 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/extending/registration/conditions.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/extending/registration/conditions.mdx @@ -58,7 +58,7 @@ import { UmbConditionControllerArguments, UmbExtensionCondition, } from '@umbraco-cms/backoffice/extension-api'; -import { UMB_SECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/section'; +import { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; type MyConditionConfig = UmbConditionConfigBase & { match: string; diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/modal/modal.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/modal/modal.mdx index fffcca25be..9ab2a75e24 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/modal/modal.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/modal/modal.mdx @@ -181,7 +181,7 @@ class MyElement extends UmbElementMixin(LitElement) { constructor() { super(); - this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_CONTEXT, (instance) => { this.#modalManagerContext = instance; // modalManagerContext is now ready to be used }); diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/modal/story-modal-service-example.element.ts b/src/Umbraco.Web.UI.Client/storybook/stories/modal/story-modal-service-example.element.ts index 4b7bb14968..c873568000 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/modal/story-modal-service-example.element.ts +++ b/src/Umbraco.Web.UI.Client/storybook/stories/modal/story-modal-service-example.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_MANAGER_CONTEXT_TOKEN, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; @customElement('umb-story-modal-context-example') export class UmbStoryModalContextExampleElement extends UmbLitElement { @@ -14,7 +14,7 @@ export class UmbStoryModalContextExampleElement extends UmbLitElement { constructor() { super(); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this._modalContext = instance; }); } diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/umb-element.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/umb-element.mdx index bfca0776f6..9798bee7f7 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/umb-element.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/umb-element.mdx @@ -27,9 +27,9 @@ this.consumeContext('requestThisContextAlias', (context) => { Or use the a Context Token to get a typed context: ```ts -import { UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (context) => { +this.consumeContext(UMB_NOTIFICATION_CONTEXT, (context) => { // Notice this is a subscription, as context might change or a new one appears, but the value is strongly typed console.log("I've got the context", context); }); From ef942a9ee06cd7ca3d7ea2adc0d98a617a0e06d4 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 24 Jan 2024 10:31:07 +0100 Subject: [PATCH 512/786] move grouping methods --- ...i-block-grid-type-configuration.element.ts | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 5a6c73b111..e7355d9e4b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -2,7 +2,10 @@ import type { UmbBlockTypeWithGroupKey, UmbInputBlockTypeElement } from '../../. import '../../../block-type/components/input-block-type/index.js'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property, state, css, repeat, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import { + UmbPropertyEditorConfigCollection, + UmbPropertyValueChangeEvent, +} from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; @@ -80,7 +83,25 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement #deleteItem(e: CustomEvent) { this.value = this._value.filter((block) => block.contentElementTypeKey !== e.detail.contentElementTypeKey); - this.dispatchEvent(new CustomEvent('property-value-change')); + this.dispatchEvent(new UmbPropertyValueChangeEvent()); + } + + #deleteGroup(groupKey: string) { + this.#datasetContext?.setPropertyValue( + 'blockGroups', + this._blockGroups.filter((group) => group.key !== groupKey), + ); + + // Should blocks that belonged to the removed group be deleted as well? + this.value = this._value.filter((block) => block.groupKey !== groupKey); + } + + #changeGroupName(e: UUIInputEvent, groupKey: string) { + const groupName = e.target.value as string; + this.#datasetContext?.setPropertyValue( + 'blockGroups', + this._blockGroups.map((group) => (group.key === groupKey ? { ...group, name: groupName } : group)), + ); } render() { @@ -96,24 +117,6 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement )}`; } - #changeGroupName(e: UUIInputEvent, groupKey: string) { - const groupName = e.target.value as string; - this.#datasetContext?.setPropertyValue( - 'blockGroups', - this._blockGroups.map((group) => (group.key === groupKey ? { ...group, name: groupName } : group)), - ); - } - - #deleteGroup(groupKey: string) { - this.#datasetContext?.setPropertyValue( - 'blockGroups', - this._blockGroups.filter((group) => group.key !== groupKey), - ); - - // Should blocks that belonged to the removed group be deleted as well? - this.value = this._value.filter((block) => block.groupKey !== groupKey); - } - #renderGroupInput(groupKey: string, groupName?: string) { return html` Date: Wed, 24 Jan 2024 10:35:07 +0100 Subject: [PATCH 513/786] remove double manifest --- .../documents/entity-actions/manifests.ts | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts index 6f99c11fad..21a090ec10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts @@ -71,21 +71,6 @@ const entityActions: Array = [ entityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE], }, }, - /* - { - type: 'entityAction', - alias: 'Umb.EntityAction.Document.CultureAndHostnames', - name: 'Culture And Hostnames Document Entity Action', - weight: 400, - api: UmbDocumentCultureAndHostnamesEntityAction, - meta: { - icon: 'icon-home', - label: 'Culture And Hostnames (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, - entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], - }, - }, - */ { type: 'entityAction', alias: 'Umb.EntityAction.Document.PublicAccess', From 850e0036ccbb926b5f9766d0250fd0c1ff340deb Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 24 Jan 2024 10:43:22 +0100 Subject: [PATCH 514/786] dont submit if error --- .../culture-and-hostnames-modal.element.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts index 4c47752351..6b0bec3b54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -30,9 +30,10 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< #handleCancel() { this.modalContext?.reject(); } - #handleSave() { - // TODO validation before submitting - this.#documentRepository.saveCultureAndHostnames(this.#unique!, this.value); + + async #handleSave() { + const { error } = await this.#documentRepository.saveCultureAndHostnames(this.#unique!, this.value); + if (error) return; this.modalContext?.submit(); } From 70a15320c3e543488b343844016f651a1eabfdf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 11:03:23 +0100 Subject: [PATCH 515/786] markdown --- .../src/packages/core/components/index.ts | 2 +- .../property-editor-ui-markdown-editor.element.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index e03884ea26..012bad72d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -17,7 +17,7 @@ export * from './input-date/index.js'; export * from './input-dropdown/index.js'; export * from './input-eye-dropper/index.js'; export * from './input-list-base/index.js'; -export * from './input-markdown-editor/index.js'; +//export * from './input-markdown-editor/index.js'; export * from './input-multi-url/index.js'; export * from './input-number-range/index.js'; export * from './input-radio-button-list/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts index 09a25c5d81..ff7e7f7815 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts @@ -1,9 +1,10 @@ +import type { UmbInputMarkdownElement } from '../../../components/input-markdown-editor/index.js'; +import '../../../components/input-markdown-editor/index.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbInputMarkdownElement } from '@umbraco-cms/backoffice/components'; import { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; /** From 6989ba8a02a83bb07ceaf757bbf7fecde2fb63e5 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 24 Jan 2024 11:07:46 +0100 Subject: [PATCH 516/786] combobox test --- .../culture-and-hostnames-modal.element.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts index 6b0bec3b54..7711fcfa2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts @@ -117,11 +117,18 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< ${this.localize.term('assignDomain_language')} - + .value=${this._options.find((option) => option.selected)?.value as string} + @change=${this.#onChangeLanguage}> + + ${this._options.map( + (option) => + html` ${option.name} `, + )} + + @@ -223,6 +230,10 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< grid-template-columns: 1fr 1fr auto; background-color: var(--uui-interface-surface-alt); } + + uui-combobox { + display: block; + } `, ]; } From 21d9fa434a7978f5af0101f20186faa37ed96a49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 11:34:02 +0100 Subject: [PATCH 517/786] check list --- .../checkbox-list/property-editor-ui-checkbox-list.element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts index ee4a3b8e99..a58aca4a74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts @@ -1,4 +1,5 @@ -import { UmbInputCheckboxListElement } from '../../../components/input-checkbox-list/input-checkbox-list.element.js'; +import type { UmbInputCheckboxListElement } from '../../../components/input-checkbox-list/input-checkbox-list.element.js'; +import '../../../components/input-checkbox-list/input-checkbox-list.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; From 6bbb8e0d59de6a9d4360ddf2d4528922e992bbbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 12:40:39 +0100 Subject: [PATCH 518/786] property-type-based-property --- .../block-workspace-view-edit-properties.element.ts | 10 ++++------ .../src/packages/core/components/index.ts | 3 --- .../src/packages/core/content-type/components/index.ts | 1 + .../components/property-type-based-property/index.ts | 0 .../property-type-based-property.element.ts | 2 +- .../src/packages/core/content-type/index.ts | 1 + 6 files changed, 7 insertions(+), 10 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/index.ts rename src/Umbraco.Web.UI.Client/src/packages/core/{ => content-type}/components/property-type-based-property/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{ => content-type}/components/property-type-based-property/property-type-based-property.element.ts (97%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index a107db35cd..75ea5c7251 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -4,6 +4,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes, + // UmbPropertyTypeBasedPropertyElement, UmbContentTypeModel, } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -47,20 +48,17 @@ export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { return repeat( this._propertyStructure, (property) => property.alias, - (property) => - html` `, + (property) => html` `, ); } static styles = [ UmbTextStyles, css` - .property { + umb-property-type-based-property { border-bottom: 1px solid var(--uui-color-divider); } - .property:last-child { + umb-property-type-based-property:last-child { border-bottom: 0; } `, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index 012bad72d5..9abc8b7014 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -17,7 +17,6 @@ export * from './input-date/index.js'; export * from './input-dropdown/index.js'; export * from './input-eye-dropper/index.js'; export * from './input-list-base/index.js'; -//export * from './input-markdown-editor/index.js'; export * from './input-multi-url/index.js'; export * from './input-number-range/index.js'; export * from './input-radio-button-list/index.js'; @@ -30,8 +29,6 @@ export * from './input-upload-field/index.js'; export * from './multiple-color-picker-input/index.js'; export * from './multiple-text-string-input/index.js'; export * from './popover-layout/index.js'; -export * from './property-type-based-property/index.js'; -export * from './ref-property-editor-ui/index.js'; export * from './table/index.js'; export * from './tooltip-menu/index.js'; export * from './variant-selector/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/index.ts new file mode 100644 index 0000000000..f6658df270 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/index.ts @@ -0,0 +1 @@ +export * from './property-type-based-property/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts index 8260f8f636..77299db2ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/property-type-based-property/property-type-based-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts @@ -1,4 +1,4 @@ -import { UmbPropertyEditorConfig } from '../../property-editor/index.js'; +import { UmbPropertyEditorConfig } from '../../../property-editor/index.js'; import { UmbDataTypeDetailModel, UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts index 1ed13f8155..a8e7305030 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts @@ -2,3 +2,4 @@ export * from './content-type-container-structure-helper.class.js'; export * from './content-type-property-structure-helper.class.js'; export * from './content-type-structure-manager.class.js'; export * from './types.js'; +export * from './components/index.js'; From c6294435b7bffe0f04e45446804eb7273e716462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 12:58:49 +0100 Subject: [PATCH 519/786] workspace components --- .../src/packages/core/components/index.ts | 1 - .../core/property-editor/components/index.ts | 1 + .../components/ref-property-editor-ui/index.ts | 0 .../ref-property-editor-ui.element.ts | 0 .../ref-property-editor-ui.stories.ts | 0 .../src/packages/core/property-editor/index.ts | 1 + .../core/workspace/components/index.ts | 5 +++++ .../components/variant-selector/index.ts | 0 .../variant-selector.element.ts | 18 +++++++++--------- .../variant-selector.stories.ts | 0 .../workspace-action-menu/index.ts | 0 .../workspace-action-menu.element.ts | 0 .../workspace-action/common/index.ts | 0 .../workspace-action/common/save/index.ts | 0 .../common/save/save.action.ts | 2 +- .../{ => components}/workspace-action/index.ts | 0 .../workspace-action/workspace-action-base.ts | 2 +- .../workspace-action.element.ts | 0 .../{ => components}/workspace-editor/index.ts | 0 .../workspace-editor.element.ts | 2 +- .../workspace-editor.stories.ts | 0 .../{ => components}/workspace-footer/index.ts | 0 .../workspace-footer.element.ts | 2 +- .../workspace-footer.stories.ts | 0 .../workspace-split-view/index.ts | 0 .../workspace-split-view.context.ts | 4 ++-- .../workspace-split-view.element.ts | 3 +-- .../src/packages/core/workspace/index.ts | 8 ++------ .../document-workspace-split-view.element.ts | 3 ++- 29 files changed, 27 insertions(+), 25 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/index.ts rename src/Umbraco.Web.UI.Client/src/packages/core/{ => property-editor}/components/ref-property-editor-ui/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{ => property-editor}/components/ref-property-editor-ui/ref-property-editor-ui.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{ => property-editor}/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/index.ts rename src/Umbraco.Web.UI.Client/src/packages/core/{ => workspace}/components/variant-selector/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{ => workspace}/components/variant-selector/variant-selector.element.ts (95%) rename src/Umbraco.Web.UI.Client/src/packages/core/{ => workspace}/components/variant-selector/variant-selector.stories.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action-menu/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action-menu/workspace-action-menu.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action/common/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action/common/save/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action/common/save/save.action.ts (87%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action/workspace-action-base.ts (96%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-action/workspace-action.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-editor/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-editor/workspace-editor.element.ts (98%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-editor/workspace-editor.stories.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-footer/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-footer/workspace-footer.element.ts (95%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-footer/workspace-footer.stories.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-split-view/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-split-view/workspace-split-view.context.ts (94%) rename src/Umbraco.Web.UI.Client/src/packages/core/workspace/{ => components}/workspace-split-view/workspace-split-view.element.ts (95%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index 9abc8b7014..b1939d8726 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -31,4 +31,3 @@ export * from './multiple-text-string-input/index.js'; export * from './popover-layout/index.js'; export * from './table/index.js'; export * from './tooltip-menu/index.js'; -export * from './variant-selector/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/index.ts new file mode 100644 index 0000000000..e5a2aa7cca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/index.ts @@ -0,0 +1 @@ +export * from './ref-property-editor-ui/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/index.ts index 575fe7d99f..8ac291fc4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/index.ts @@ -1,3 +1,4 @@ +export * from './components/index.js'; export * from './config/index.js'; export * from './events/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/index.ts new file mode 100644 index 0000000000..dc0e41c16f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/index.ts @@ -0,0 +1,5 @@ +export * from './workspace-action-menu/index.js'; +export * from './workspace-action/index.js'; +export * from './workspace-editor/index.js'; +export * from './workspace-footer/index.js'; +export * from './workspace-split-view/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.element.ts index 55e5dad438..7e608a8c58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.element.ts @@ -1,6 +1,10 @@ -import { UmbVariantId } from '../../variant/variant-id.class.js'; +import { UmbVariantId } from '../../../variant/variant-id.class.js'; import { UMB_PROPERTY_DATASET_CONTEXT, isNameablePropertyDatasetContext } from '@umbraco-cms/backoffice/property'; -import { UUIInputElement, UUIInputEvent, UUIPopoverContainerElement } from '@umbraco-cms/backoffice/external/uui'; +import { + type UUIInputElement, + UUIInputEvent, + type UUIPopoverContainerElement, +} from '@umbraco-cms/backoffice/external/uui'; import { css, html, @@ -11,13 +15,9 @@ import { ifDefined, query, } from '@umbraco-cms/backoffice/external/lit'; -import { - UmbWorkspaceSplitViewContext, - UMB_WORKSPACE_SPLIT_VIEW_CONTEXT, - ActiveVariant, -} from '@umbraco-cms/backoffice/workspace'; +import { UMB_WORKSPACE_SPLIT_VIEW_CONTEXT, type ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DocumentVariantResponseModel, ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; +import { type DocumentVariantResponseModel, ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-variant-selector') export class UmbVariantSelectorElement extends UmbLitElement { @@ -36,7 +36,7 @@ export class UmbVariantSelectorElement extends UmbLitElement { return this._activeVariants.map((el) => el.culture ?? '') ?? []; } - #splitViewContext?: UmbWorkspaceSplitViewContext; + #splitViewContext?: typeof UMB_WORKSPACE_SPLIT_VIEW_CONTEXT.TYPE; #variantContext?: typeof UMB_PROPERTY_DATASET_CONTEXT.TYPE; @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/variant-selector/variant-selector.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/workspace-action-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action-menu/workspace-action-menu.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/save.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts similarity index 87% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/save.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts index 47ffc11f70..7ed47c5e65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/common/save/save.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts @@ -1,4 +1,4 @@ -import { UmbSaveableWorkspaceContextInterface } from '../../../workspace-context/saveable-workspace-context.interface.js'; +import { UmbSaveableWorkspaceContextInterface } from '../../../../workspace-context/saveable-workspace-context.interface.js'; import { UmbWorkspaceActionBase } from '../../workspace-action-base.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action-base.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action-base.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action-base.ts index 51480ae686..3d24872ea3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action-base.ts @@ -1,4 +1,4 @@ -import { UmbWorkspaceContextInterface, UMB_WORKSPACE_CONTEXT } from '../workspace-context/index.js'; +import { UmbWorkspaceContextInterface, UMB_WORKSPACE_CONTEXT } from '../../workspace-context/index.js'; import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-action/workspace-action.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index 91189577f7..9ba933c009 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -72,7 +72,7 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { component: () => { if (manifest.type === 'workspaceViewCollection') { return import( - '../workspace-content/views/collection/workspace-view-collection.element.js' + '../../workspace-content/views/collection/workspace-view-collection.element.js' ) as unknown as Promise; } return createExtensionElement(manifest); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-editor/workspace-editor.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts index b179ca01e9..97834d551a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts @@ -1,4 +1,4 @@ -import { UMB_SAVEABLE_WORKSPACE_CONTEXT } from '../saveable-workspace.context-token.js'; +import { UMB_SAVEABLE_WORKSPACE_CONTEXT } from '../../saveable-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-footer/workspace-footer.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts index 259993ee1e..c18dfa440d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts @@ -1,5 +1,5 @@ -import { UmbPropertyDatasetContext } from '../../property/property-dataset/index.js'; -import { UMB_VARIANT_WORKSPACE_CONTEXT_TOKEN } from '../index.js'; +import { UmbPropertyDatasetContext } from '../../../property/property-dataset/index.js'; +import { UMB_VARIANT_WORKSPACE_CONTEXT_TOKEN } from '../../index.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts index 12cb3c3ce8..f8d871b563 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.ts @@ -2,7 +2,7 @@ import { UmbWorkspaceSplitViewContext } from './workspace-split-view.context.js' import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; - +import '../variant-selector/index.js'; /** * * Example. Document Workspace would use a Variant-component(variant component would talk directly to the workspace-context) @@ -11,7 +11,6 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; */ @customElement('umb-workspace-split-view') export class UmbWorkspaceSplitViewElement extends UmbLitElement { - // TODO: stop prop drilling this alias. Instead use the workspace context. @property() alias!: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts index 2ddc9d732c..1b12cbf033 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/index.ts @@ -1,14 +1,10 @@ -export * from './saveable-workspace.context-token.js'; +export * from './components/index.js'; export * from './publishable-workspace.context-token.js'; -export * from './workspace-action-menu/index.js'; -export * from './workspace-action/index.js'; +export * from './saveable-workspace.context-token.js'; export * from './workspace-context/index.js'; -export * from './workspace-editor/index.js'; -export * from './workspace-footer/index.js'; export * from './workspace-is-new-redirect-controller/index.js'; export * from './workspace-modal/index.js'; export * from './workspace-property-dataset/index.js'; export * from './workspace-split-view-manager.class.js'; -export * from './workspace-split-view/index.js'; export type { WorkspaceAliasConditionConfig } from './workspace-alias.condition.js'; export type { WorkspaceEntityTypeConditionConfig } from './workspace-entity-type.condition.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index 96d00cefde..dff1683135 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -1,8 +1,9 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import { type ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; + @customElement('umb-document-workspace-split-view') export class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement { // TODO: Refactor: use the split view context token: From a625de06ebe2f55dad9a47747664c9da98ed5dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 13:10:36 +0100 Subject: [PATCH 520/786] checkbox list move --- .../src/packages/core/components/index.ts | 2 +- .../packages/core/property-editor/uis/checkbox-list/index.ts | 1 + .../uis/checkbox-list}/input-checkbox-list/index.ts | 0 .../input-checkbox-list/input-checkbox-list.element.ts | 5 +++-- .../input-checkbox-list/input-checkbox-list.stories.ts | 0 .../property-editor-ui-checkbox-list.element.ts | 4 ++-- .../src/packages/core/property-editor/uis/index.ts | 2 ++ 7 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/index.ts rename src/Umbraco.Web.UI.Client/src/packages/core/{components => property-editor/uis/checkbox-list}/input-checkbox-list/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{components => property-editor/uis/checkbox-list}/input-checkbox-list/input-checkbox-list.element.ts (93%) rename src/Umbraco.Web.UI.Client/src/packages/core/{components => property-editor/uis/checkbox-list}/input-checkbox-list/input-checkbox-list.stories.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts index b1939d8726..50727337dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/index.ts @@ -11,7 +11,7 @@ export * from './extension-slot/index.js'; export * from './footer-layout/index.js'; export * from './header-app/index.js'; export * from './history/index.js'; -export * from './input-checkbox-list/index.js'; +export * from '../property-editor/uis/checkbox-list/input-checkbox-list/index.js'; export * from './input-color/index.js'; export * from './input-date/index.js'; export * from './input-dropdown/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/index.ts new file mode 100644 index 0000000000..03e917dc11 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/index.ts @@ -0,0 +1 @@ +export * from './input-checkbox-list/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.element.ts similarity index 93% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.element.ts index 2813975c2b..1b3e75b0a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.element.ts @@ -1,3 +1,4 @@ +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { css, html, nothing, repeat, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin, UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -8,7 +9,7 @@ export class UmbInputCheckboxListElement extends FormControlMixin(UmbLitElement) * List of items. */ // TODO: Could this use a type that we export to ensure TS failure, or hook this up with a type coming from backend? - @property() + @property({ attribute: false }) public list: Array<{ key: string; checked: boolean; value: string }> = []; #selected: Array = []; @@ -36,7 +37,7 @@ export class UmbInputCheckboxListElement extends FormControlMixin(UmbLitElement) if (e.target.checked) this.selected = [...this.selected, e.target.value]; else this.#removeFromSelection(this.selected.findIndex((key) => e.target.value === key)); - this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true })); + this.dispatchEvent(new UmbChangeEvent()); } #removeFromSelection(index: number) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-checkbox-list/input-checkbox-list.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts index a58aca4a74..25a69ae6d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts @@ -1,5 +1,5 @@ -import type { UmbInputCheckboxListElement } from '../../../components/input-checkbox-list/input-checkbox-list.element.js'; -import '../../../components/input-checkbox-list/input-checkbox-list.element.js'; +import type { UmbInputCheckboxListElement } from './input-checkbox-list/input-checkbox-list.element.js'; +import './input-checkbox-list/input-checkbox-list.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/index.ts new file mode 100644 index 0000000000..0eef45ef3c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/index.ts @@ -0,0 +1,2 @@ +// TODO: Currently we export input-checkbox-list because package-builder uses it, but this should be changed over time, so package builder uses the property editor UI and then this export can be removed. +export * from './checkbox-list/index.js'; From b989415ecb1b451906c3e5e8ddf43846a0f133f0 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:16:22 +0100 Subject: [PATCH 521/786] move to own folder with own repository --- .../documents/culture-and-hostnames/index.ts | 2 + .../manifests.ts | 5 +- .../culture-and-hostnames-modal.element.ts | 58 ++++++++++++------- .../culture-and-hostnames-modal.token.ts | 2 +- .../modal}/index.ts | 0 .../culture-and-hostnames.repository.ts | 49 ++++++++++++++++ .../culture-and-hostnames.server.data.ts | 43 ++++++++++++++ .../culture-and-hostnames/repository/index.ts | 2 + .../repository/manifests.ts | 13 +++++ .../src/packages/documents/documents/index.ts | 2 +- .../packages/documents/documents/manifests.ts | 4 +- .../documents/documents/modals/index.ts | 1 - .../repository/document.repository.ts | 24 -------- .../sources/document.server.data.ts | 22 ------- 14 files changed, 154 insertions(+), 73 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/index.ts rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{modals => culture-and-hostnames}/manifests.ts (52%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{modals/culture-and-hostnames => culture-and-hostnames/modal}/culture-and-hostnames-modal.element.ts (89%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{modals/culture-and-hostnames => culture-and-hostnames/modal}/culture-and-hostnames-modal.token.ts (96%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{modals/culture-and-hostnames => culture-and-hostnames/modal}/index.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/index.ts new file mode 100644 index 0000000000..e130217e61 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/index.ts @@ -0,0 +1,2 @@ +export * from './modal/index.js'; +export * from './repository/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/manifests.ts similarity index 52% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/manifests.ts index 746c4d8a5b..11673b9e78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/manifests.ts @@ -1,3 +1,4 @@ +import { manifests as repositoryManifests } from './repository/manifests.js'; import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; const modals: Array = [ @@ -5,8 +6,8 @@ const modals: Array = [ type: 'modal', alias: 'Umb.Modal.CultureAndHostnames', name: 'Culture And Hostnames Modal', - js: () => import('./culture-and-hostnames/culture-and-hostnames-modal.element.js'), + js: () => import('./modal/culture-and-hostnames-modal.element.js'), }, ]; -export const manifests = [...modals]; +export const manifests = [...modals, ...repositoryManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts similarity index 89% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts index 7711fcfa2c..6c984f2bb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts @@ -1,18 +1,21 @@ -import { UmbDocumentRepository } from '../../repository/document.repository.js'; import { html, customElement, state, css, repeat, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UUIInputEvent, UUIPopoverContainerElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLanguageRepository } from '@umbraco-cms/backoffice/language'; import { DomainPresentationModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbCultureAndHostnamesModalData, UmbCultureAndHostnamesModalValue } from '@umbraco-cms/backoffice/document'; +import { + UmbCultureAndHostnamesModalData, + UmbCultureAndHostnamesModalValue, + UmbDocumentCultureAndHostnamesRepository, +} from '@umbraco-cms/backoffice/document'; @customElement('umb-culture-and-hostnames-modal') export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< UmbCultureAndHostnamesModalData, UmbCultureAndHostnamesModalValue > { - #documentRepository = new UmbDocumentRepository(this); + #documentRepository = new UmbDocumentCultureAndHostnamesRepository(this); #languageRepository = new UmbLanguageRepository(this); #unique?: string | null; @@ -27,15 +30,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< @query('#more-options') popoverContainerElement?: UUIPopoverContainerElement; - #handleCancel() { - this.modalContext?.reject(); - } - - async #handleSave() { - const { error } = await this.#documentRepository.saveCultureAndHostnames(this.#unique!, this.value); - if (error) return; - this.modalContext?.submit(); - } + // Init firstUpdated() { this.#unique = this.data?.unique; @@ -44,7 +39,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< async #getDomains() { if (!this.#unique) return; - const { data } = await this.#documentRepository.getCultureAndHostnames(this.#unique); + const { data } = await this.#documentRepository.readCultureAndHostnames(this.#unique); if (!data) return; this._domains = data.domains.map((domain) => ({ isoCode: domain.isoCode, domainName: domain.domainName })); @@ -68,6 +63,20 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< this._options = options; } + // Modal + + async #handleSave() { + const { error } = await this.#documentRepository.updateCultureAndHostnames(this.#unique!, this.value); + if (error) return; + this.modalContext?.submit(); + } + + #handleCancel() { + this.modalContext?.reject(); + } + + // Events + #onChangeLanguage(e: UUISelectEvent) { const documentIsoCode = e.target.value as string; if (documentIsoCode === 'inherit') { @@ -112,6 +121,8 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< this.value = { ...this.value, domains: this._domains }; } + // Render + render() { return html` @@ -164,19 +175,27 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< value: model.isoCode, selected: domain.isoCode ? domain.isoCode === model.isoCode : model.isDefault, })); - return html` + return html`
this.#changeDomainName(e, index)}> - option.selected)?.value as string} label=${this.localize.term('assignDomain_language')} - .options=${options} - @change=${(e: UUISelectEvent) => this.#changeIsoCode(e, index)}> - + @change=${(e: UUISelectEvent) => this.#changeIsoCode(e, index)}> + + ${options.map( + (option) => + html` ${option.name} `, + )} + + + + this.#remove(index)}> - `; +
`; }, )}`; } @@ -191,7 +210,6 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< id="dropdown" label=${this.localize.term('buttons_select')} look="placeholder" - compact popovertarget="more-options">
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts similarity index 96% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts index 7b8611d82d..052fe2c4b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/culture-and-hostnames-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts @@ -16,6 +16,6 @@ export const UMB_CULTURE_AND_HOSTNAMES_MODAL = new UmbModalToken< >('Umb.Modal.CultureAndHostnames', { modal: { type: 'sidebar', - size: 'small', + size: 'medium', }, }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/culture-and-hostnames/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts new file mode 100644 index 0000000000..2a955a6c31 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -0,0 +1,49 @@ +import { UmbDocumentCultureAndHostnamesServerDataSource } from './culture-and-hostnames.server.data.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; + +export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController implements UmbApi { + #init!: Promise; + + #detailDataSource: UmbDocumentCultureAndHostnamesServerDataSource; + + #notificationContext?: UmbNotificationContext; + + constructor(host: UmbControllerHost) { + super(host); + + this.#detailDataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this); + + this.#init = Promise.all([ + this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { + this.#notificationContext = instance; + }).asPromise(), + ]); + } + + async readCultureAndHostnames(id: string) { + if (!id) throw new Error('Id is missing'); + await this.#init; + + const { data, error } = await this.#detailDataSource.read(id); + if (!error) { + return { data }; + } + return { error }; + } + + async updateCultureAndHostnames(id: string, data: any) { + if (!id) throw new Error('Id is missing'); + if (!data) throw new Error('Data is missing'); + await this.#init; + + const { error } = await this.#detailDataSource.update(id, data); + if (!error) { + const notification = { data: { message: `Cultures and hostnames saved` } }; + this.#notificationContext?.peek('positive', notification); + } + return { error }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts new file mode 100644 index 0000000000..1a6fae85da --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts @@ -0,0 +1,43 @@ +import { DocumentResource, DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for the Document Culture and Hostnames that fetches data from the server + * @export + * @class UmbDocumentCultureAndHostnamesServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbDocumentCultureAndHostnamesServerDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbDocumentCultureAndHostnamesServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbDocumentCultureAndHostnamesServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Fetches the Culture and Hostnames for the given Document id + * @param {string} id + * @memberof UmbDocumentCultureAndHostnamesServerDataSource + */ + async read(id: string) { + if (!id) throw new Error('Id is missing'); + return tryExecuteAndNotify(this.#host, DocumentResource.getDocumentByIdDomains({ id })); + } + + /** + * Updates Culture and Hostnames for the given Document id + * @param {string} id + * @param {DomainsPresentationModelBaseModel} data + * @memberof UmbDocumentCultureAndHostnamesServerDataSource + */ + async update(id: string, data: DomainsPresentationModelBaseModel) { + if (!id) throw new Error('Id is missing'); + return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdDomains({ id, requestBody: data })); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/index.ts new file mode 100644 index 0000000000..76199887dd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/index.ts @@ -0,0 +1,2 @@ +export { UmbDocumentCultureAndHostnamesRepository } from './culture-and-hostnames.repository.js'; +export { UMB_DOCUMENT_CULTURE_AND_HOSTNAMES_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/manifests.ts new file mode 100644 index 0000000000..603ca30ed7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/manifests.ts @@ -0,0 +1,13 @@ +import { UmbDocumentCultureAndHostnamesRepository } from '../repository/index.js'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_DOCUMENT_CULTURE_AND_HOSTNAMES_REPOSITORY_ALIAS = 'Umb.Repository.Document.CultureAndHostnames'; + +const repository: ManifestRepository = { + type: 'repository', + alias: UMB_DOCUMENT_CULTURE_AND_HOSTNAMES_REPOSITORY_ALIAS, + name: 'Document Culture And Hostnames Repository', + api: UmbDocumentCultureAndHostnamesRepository, +}; + +export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts index 572fb2c61e..1afab25c2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts @@ -7,7 +7,7 @@ export * from './recycle-bin/index.js'; export * from './user-permissions/index.js'; export * from './components/index.js'; export * from './entity.js'; -export * from './modals/index.js'; +export * from './culture-and-hostnames/index.js'; export { UMB_DOCUMENT_TREE_ALIAS } from './tree/index.js'; export { UMB_CONTENT_MENU_ALIAS } from './menu.manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts index dbd160f8a9..82edf90e04 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts @@ -9,7 +9,7 @@ import { manifests as propertyEditorManifests } from './property-editors/manifes import { manifests as userPermissionManifests } from './user-permissions/manifests.js'; import { manifests as recycleBinManifests } from './recycle-bin/manifests.js'; import { manifests as trackedReferenceManifests } from './tracked-reference/manifests.js'; -import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as cultureAndHostnamesManifests } from './culture-and-hostnames/manifests.js'; export const manifests = [ ...collectionManifests, @@ -23,5 +23,5 @@ export const manifests = [ ...userPermissionManifests, ...recycleBinManifests, ...trackedReferenceManifests, - ...modalManifests, + ...cultureAndHostnamesManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts deleted file mode 100644 index a25927e33b..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './culture-and-hostnames/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index 7ff6f5cbed..6e76c296c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -267,30 +267,6 @@ export class UmbDocumentRepository extends UmbBaseController implements UmbApi { alert('sort'); } - async getCultureAndHostnames(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - - const { data, error } = await this.#detailDataSource.getDomains(id); - if (!error) { - return { data }; - } - return { error }; - } - - async saveCultureAndHostnames(id: string, data: any) { - if (!id) throw new Error('Id is missing'); - if (!data) throw new Error('Data is missing'); - await this.#init; - - const { error } = await this.#detailDataSource.updateDomains(id, data); - if (!error) { - const notification = { data: { message: `Cultures and hostnames saved` } }; - this.#notificationContext?.peek('positive', notification); - } - return { error }; - } - async setPermissions() { alert('set permissions'); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts index cfdb69abd4..805240d798 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts @@ -8,7 +8,6 @@ import { UpdateDocumentRequestModel, PublishDocumentRequestModel, UnpublishDocumentRequestModel, - DomainsPresentationModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -192,25 +191,4 @@ export class UmbDocumentServerDataSource // TODO: Notice, here we need to implement pagination. return tryExecuteAndNotify(this.#host, DocumentResource.getDocumentAllowedDocumentTypes({ parentId: hackId })); } - - /** - * Fetches the Document Domains from the given Document id - * @param {string} id - * @memberof UmbDocumentTypeServerDataSource - */ - async getDomains(id: string) { - if (!id) throw new Error('Id is missing'); - return tryExecuteAndNotify(this.#host, DocumentResource.getDocumentByIdDomains({ id })); - } - - /** - * Updates the Document Domains for the given Document id - * @param {string} id - * @param {DomainsPresentationModelBaseModel} data - * @memberof UmbDocumentTypeServerDataSource - */ - async updateDomains(id: string, data: DomainsPresentationModelBaseModel) { - if (!id) throw new Error('Id is missing'); - return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdDomains({ id, requestBody: data })); - } } From b185cab2dd36a1dd9a106c2cbbbe756bea9bcb0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 13:18:32 +0100 Subject: [PATCH 522/786] media components and property editors --- .../src/packages/core/property-editor/uis/manifests.ts | 6 +++--- .../src/packages/media/media/components/index.ts | 5 +++-- .../image-cropper-focus-setter.element.ts | 0 .../input-image-cropper/image-cropper-preview.element.ts | 0 .../components/input-image-cropper/image-cropper.element.ts | 0 .../media}/components/input-image-cropper/index.ts | 0 .../input-image-cropper/input-image-cropper.element.ts | 0 .../packages/media/media/components/input-media/index.ts | 1 + .../media/media/property-editors/image-cropper/index.ts | 1 + .../media/property-editors}/image-cropper/manifests.ts | 0 .../property-editor-ui-image-cropper.element.ts | 2 +- .../property-editor-ui-image-cropper.stories.ts | 0 .../image-cropper/property-editor-ui-image-cropper.test.ts | 0 .../property-editors/image-crops-configuration/index.ts | 1 + .../image-crops-configuration/manifests.ts | 0 .../property-editor-ui-image-crops-configuration.element.ts | 0 .../property-editor-ui-image-crops-configuration.stories.ts | 0 .../property-editor-ui-image-crops-configuration.test.ts | 0 .../src/packages/media/media/property-editors/index.ts | 3 +++ .../media/media/property-editors/media-picker/index.ts | 1 + .../media/property-editors}/media-picker/manifests.ts | 0 .../media-picker/property-editor-ui-media-picker.element.ts | 2 +- .../media-picker/property-editor-ui-media-picker.stories.ts | 0 .../media-picker/property-editor-ui-media-picker.test.ts | 0 24 files changed, 15 insertions(+), 7 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/{core => media/media}/components/input-image-cropper/image-cropper-focus-setter.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core => media/media}/components/input-image-cropper/image-cropper-preview.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core => media/media}/components/input-image-cropper/image-cropper.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core => media/media}/components/input-image-cropper/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core => media/media}/components/input-image-cropper/input-image-cropper.element.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/index.ts rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-cropper/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-cropper/property-editor-ui-image-cropper.element.ts (95%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-cropper/property-editor-ui-image-cropper.stories.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-cropper/property-editor-ui-image-cropper.test.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/index.ts rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-crops-configuration/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/index.ts rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/media-picker/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/media-picker/property-editor-ui-media-picker.element.ts (94%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/media-picker/property-editor-ui-media-picker.stories.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/{core/property-editor/uis => media/media/property-editors}/media-picker/property-editor-ui-media-picker.test.ts (100%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts index a828ba2612..ff26554219 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts @@ -15,9 +15,9 @@ import { manifest as markdownEditor } from './markdown-editor/manifests.js'; import { manifest as radioButtonList } from './radio-button-list/manifests.js'; import { manifest as checkboxList } from './checkbox-list/manifests.js'; import { manifest as numberRange } from './number-range/manifests.js'; -import { manifest as mediaPicker } from './media-picker/manifests.js'; -import { manifest as imageCropsConfiguration } from './image-crops-configuration/manifests.js'; -import { manifest as imageCropper } from './image-cropper/manifests.js'; +import { manifest as mediaPicker } from '../../../media/media/property-editors/media-picker/manifests.js'; +import { manifest as imageCropsConfiguration } from '../../../media/media/property-editors/image-crops-configuration/manifests.js'; +import { manifest as imageCropper } from '../../../media/media/property-editors/image-cropper/manifests.js'; import { manifest as uploadField } from './upload-field/manifests.js'; import { manifest as orderDirection } from './order-direction/manifests.js'; import { manifests as collectionView } from './collection-view/manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts index b0cd856c7d..3c48dc1e29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/index.ts @@ -1,3 +1,4 @@ -import './input-media/input-media.element.js'; +import './input-media/index.js'; -export * from './input-media/input-media.element.js'; +export * from './input-media/index.js'; +export * from './input-image-cropper/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-focus-setter.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-focus-setter.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-preview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-preview.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper-preview.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-preview.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/image-cropper.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/input-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/components/input-image-cropper/input-image-cropper.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/index.ts new file mode 100644 index 0000000000..6d1340ddc3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/index.ts @@ -0,0 +1 @@ +export * from './input-media.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/index.ts new file mode 100644 index 0000000000..ac32434996 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/index.ts @@ -0,0 +1 @@ +export * from './property-editor-ui-image-cropper.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/property-editor-ui-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts similarity index 95% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/property-editor-ui-image-cropper.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts index cb354a1844..b70d30f8e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/property-editor-ui-image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts @@ -3,7 +3,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import '../../../components/input-image-cropper/input-image-cropper.element.js'; +import '../../components/input-image-cropper/input-image-cropper.element.js'; /** * @element umb-property-editor-ui-image-cropper diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/property-editor-ui-image-cropper.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/property-editor-ui-image-cropper.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/property-editor-ui-image-cropper.test.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-cropper/property-editor-ui-image-cropper.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/index.ts new file mode 100644 index 0000000000..c68c521c08 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/index.ts @@ -0,0 +1 @@ +export * from './property-editor-ui-image-crops-configuration.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.test.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts new file mode 100644 index 0000000000..badeba99cf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts @@ -0,0 +1,3 @@ +export * from './image-cropper/index.js'; +export * from './image-crops-configuration/index.js'; +export * from './image-picker/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/index.ts new file mode 100644 index 0000000000..7eddcc7572 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/index.ts @@ -0,0 +1 @@ +export * from './property-editor-ui-media-picker.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/property-editor-ui-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.ts similarity index 94% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/property-editor-ui-media-picker.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.ts index 4a43a6cd40..7796508a54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/property-editor-ui-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.ts @@ -1,4 +1,4 @@ -import { UmbInputMediaElement } from '../../../../media/media/components/input-media/input-media.element.js'; +import { UmbInputMediaElement } from '../../components/input-media/input-media.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/property-editor-ui-media-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.stories.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/property-editor-ui-media-picker.stories.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.stories.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/property-editor-ui-media-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.test.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/media-picker/property-editor-ui-media-picker.test.ts rename to src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.test.ts From 2deca4ca25225e1c26d5d674b3aaa3363c03a316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 13:25:58 +0100 Subject: [PATCH 523/786] media corrections --- .../core/picker-input/picker-input.context.ts | 25 ++++++++++++++++--- .../input-media/input-media.element.ts | 2 +- ...property-editor-ui-media-picker.element.ts | 13 +++++----- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts index 0a8a3c91a9..1521ceb875 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts @@ -26,8 +26,27 @@ export class UmbPickerInputContext extends Um selection; selectedItems; - max = Infinity; - min = 0; + /** + * Define a minimum amount of selected items in this input, for this input to be valid. + */ + public get max() { + return this._max; + } + public set max(value) { + this._max = value === undefined ? Infinity : value; + } + private _max = Infinity; + + /** + * Define a maximum amount of selected items in this input, for this input to be valid. + */ + public get min() { + return this._min; + } + public set min(value: number | undefined) { + this._min = value === undefined ? 0 : value; + } + private _min = 0; /* TODO: find a better way to have a getUniqueMethod. If we want to support trees/items of different types, then it need to be bound to the type and can't be a generic method we pass in. */ @@ -71,7 +90,7 @@ export class UmbPickerInputContext extends Um const modalContext = this.modalManager.open(this.modalAlias, { data: { - multiple: this.max === 1 ? false : true, + multiple: this._max === 1 ? false : true, ...pickerData, }, value: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 5de762fce7..583d262e1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -36,7 +36,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { public get min(): number { return this.#pickerContext.min; } - public set min(value: number) { + public set min(value: number | undefined) { this.#pickerContext.min = value; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.ts index 7796508a54..f4f5b4f60f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.element.ts @@ -1,7 +1,8 @@ -import { UmbInputMediaElement } from '../../components/input-media/input-media.element.js'; +import type { UmbInputMediaElement } from '../../components/input-media/input-media.element.js'; +import '../../components/input-media/input-media.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** @@ -26,14 +27,14 @@ export class UmbPropertyEditorUIMediaPickerElement extends UmbLitElement impleme const minMax: Record = validationLimit.value; - this._limitMin = minMax.min; - this._limitMax = minMax.max; + this._limitMin = minMax.min ?? 0; + this._limitMax = minMax.max ?? Infinity; } @state() - private _limitMin?: number; + private _limitMin: number = 0; @state() - private _limitMax?: number; + private _limitMax: number = Infinity; private _onChange(event: CustomEvent) { this.value = (event.target as UmbInputMediaElement).selectedIds; From 1ac2dcfe6670ab35324d375aaf25cb90001ccf7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 13:26:27 +0100 Subject: [PATCH 524/786] media correction --- .../src/packages/core/picker-input/picker-input.context.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts index 1521ceb875..1ba5479a5d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts @@ -43,7 +43,7 @@ export class UmbPickerInputContext extends Um public get min() { return this._min; } - public set min(value: number | undefined) { + public set min(value) { this._min = value === undefined ? 0 : value; } private _min = 0; From 2b4c0f3085f2890e0d1a4bec26c6fa95068addb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 13:27:09 +0100 Subject: [PATCH 525/786] export paths --- .../src/packages/media/media/property-editors/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts index badeba99cf..e02961a606 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/index.ts @@ -1,3 +1,3 @@ export * from './image-cropper/index.js'; export * from './image-crops-configuration/index.js'; -export * from './image-picker/index.js'; +export * from './media-picker/index.js'; From c4ac56bdc4d7951d9cb3101874afb231d2a54cfb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 13:27:19 +0100 Subject: [PATCH 526/786] add entityType to action event and rename --- .../src/packages/core/action/action.event.ts | 24 ------------------- .../src/packages/core/action/index.ts | 1 - .../core/entity-action/entity-action.event.ts | 23 ++++++++++++++++++ .../src/packages/core/tree/event/index.ts | 1 + 4 files changed, 24 insertions(+), 25 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts deleted file mode 100644 index 98a6a7713b..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.event.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { UmbControllerEvent } from '@umbraco-cms/backoffice/controller-api'; - -export interface UmbActionEventArgs { - unique: string; - parentUnique: string | null; // TODO: remove this when we have endpoints to support mapping a new item without reloading the parent tree item -} - -export class UmbActionEvent extends UmbControllerEvent { - #args: UmbActionEventArgs; - - public constructor(type: string, args: UmbActionEventArgs) { - super(type); - this.#args = args; - } - - getUnique(): string { - return this.#args.unique; - } - - // TODO: this can be removed when the server supports reloading a tree item without reloading the parent - getParentUnique(): string | null { - return this.#args.parentUnique; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts index 05f892981b..79e8f1b8b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/index.ts @@ -1,4 +1,3 @@ export * from './repository-action.js'; export * from './action.interface.js'; export * from './action-event.context.js'; -export * from './action.event.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts new file mode 100644 index 0000000000..4eafc96b78 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.event.ts @@ -0,0 +1,23 @@ +import { UmbControllerEvent } from '@umbraco-cms/backoffice/controller-api'; + +export interface UmbEntityActionEventArgs { + unique: string; + entityType: string; +} + +export class UmbEntityActionEvent extends UmbControllerEvent { + #args: UmbEntityActionEventArgs; + + public constructor(type: string, args: UmbEntityActionEventArgs) { + super(type); + this.#args = args; + } + + getEntityType(): string { + return this.#args.entityType; + } + + getUnique(): string { + return this.#args.unique; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts new file mode 100644 index 0000000000..7dfd86c752 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts @@ -0,0 +1 @@ +export * from './reload-tree-item-request.event.js'; From 2e46926adefb781d439b18e26bfb4b371ef0fb0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 13:27:38 +0100 Subject: [PATCH 527/786] fix min setter --- .../media/media/components/input-media/input-media.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 583d262e1c..5de762fce7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -36,7 +36,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { public get min(): number { return this.#pickerContext.min; } - public set min(value: number | undefined) { + public set min(value: number) { this.#pickerContext.min = value; } From df615d59a665165bf471c77a17cc2d4d00fb1caf Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 13:28:21 +0100 Subject: [PATCH 528/786] pass entity type to entity action --- .../entity-action-list.element.ts | 2 +- .../entity-action/entity-action.element.ts | 23 ++++++++++++++++++- .../core/entity-action/entity-action.ts | 4 +++- .../src/packages/core/entity-action/index.ts | 1 + 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts index ba1ba45f2d..30321523c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts @@ -30,7 +30,7 @@ export class UmbEntityActionListElement extends UmbLitElement { type="entityAction" default-element="umb-entity-action" .filter=${this._filter} - .props=${{ unique: this.unique }}>
+ .props=${{ unique: this.unique, entityType: this.entityType }}> ` : ''; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts index 84656822a9..4e79806f99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts @@ -7,6 +7,20 @@ import { createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; @customElement('umb-entity-action') export class UmbEntityActionElement extends UmbLitElement { + private _entityType?: string | null; + @property({ type: String }) + public get entityType() { + return this._entityType; + } + public set entityType(value: string | undefined | null) { + const oldValue = this._entityType; + this._entityType = value; + if (oldValue !== this._entityType) { + this.#createApi(); + this.requestUpdate('entityType', oldValue); + } + } + private _unique?: string | null; @property({ type: String }) public get unique() { @@ -37,10 +51,17 @@ export class UmbEntityActionElement extends UmbLitElement { } async #createApi() { + // only create the api if we have all the required properties if (!this._manifest) return; if (this._unique === undefined) return; + if (!this._entityType) return; - this.#api = await createExtensionApi(this._manifest, [this, this._manifest.meta.repositoryAlias, this.unique]); + this.#api = await createExtensionApi(this._manifest, [ + this, + this._manifest.meta.repositoryAlias, + this.unique, + this.entityType, + ]); // TODO: Fix so when we use a HREF it does not refresh the page? this._href = await this.#api.getHref?.(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts index 17ecb2eed6..c62a45d01b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts @@ -6,11 +6,13 @@ export interface UmbEntityAction extends UmbAction extends UmbActionBase { + entityType: string; unique: string; repositoryAlias: string; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias); + this.entityType = entityType; this.unique = unique; this.repositoryAlias = repositoryAlias; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/index.ts index 3bc2e27029..194dedab02 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/index.ts @@ -2,3 +2,4 @@ export * from './entity-action-list.element.js'; export * from './entity-action.element.js'; export * from './entity-action.js'; export * from './common/index.js'; +export * from './entity-action.event.js'; From 801322d120c8e4eb02a89ac564b856108877e252 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 13:28:43 +0100 Subject: [PATCH 529/786] export event --- src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts index a3c11cfc66..7b0c296661 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts @@ -22,4 +22,7 @@ export * from './data-source/index.js'; // Folder export * from './folder/index.js'; +// Event +export * from './event/index.js'; + export { UmbTreeRepositoryBase } from './tree-repository-base.js'; From 12398d501b12f8b383379d2b0997ab0ba9b9cc86 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 13:29:00 +0100 Subject: [PATCH 530/786] register reload entity action --- .../packages/core/data-type/tree/manifests.ts | 3 ++- .../tree/reload-tree-item/manifests.ts | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts index bee8b4e5ec..0e25aa220c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts @@ -1,4 +1,5 @@ import { manifests as folderManifests } from './folder/manifests.js'; +import { manifests as reloadManifests } from './reload-tree-item/manifests.js'; import { UmbDataTypeTreeRepository } from './data-type-tree.repository.js'; import { UmbDataTypeTreeStore } from './data-type-tree.store.js'; import type { @@ -44,4 +45,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests, ...reloadManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts new file mode 100644 index 0000000000..c5c965fa9c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts @@ -0,0 +1,24 @@ +import { + UMB_DATA_TYPE_ENTITY_TYPE, + UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, + UMB_DATA_TYPE_ROOT_ENTITY_TYPE, +} from '../../entity.js'; +import { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UmbReloadTreeItemChildrenEntityAction } from './reload-tree-item-children.action.js'; +import { type ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.DataType.ReloadTreeItem', + name: 'Reload Data Type Tree Item Entity Action', + weight: 900, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload...', + repositoryAlias: UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS, + entityTypes: [UMB_DATA_TYPE_ENTITY_TYPE, UMB_DATA_TYPE_ROOT_ENTITY_TYPE, UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], + }, + }, +]; From 4bf35a91ba39ec3108d526f07ec8e84263bcf896 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 13:29:44 +0100 Subject: [PATCH 531/786] add reload entity action that dispatches an event on the action event context --- .../reload-tree-item-children.action.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts new file mode 100644 index 0000000000..e689c598ed --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts @@ -0,0 +1,27 @@ +import { type UmbCopyDataTypeRepository } from '../../repository/copy/data-type-copy.repository.js'; +import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_ACTION_EVENT_CONTEXT, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import { UmbReloadTreeItemRequestEvent } from '@umbraco-cms/backoffice/tree'; + +export class UmbReloadTreeItemChildrenEntityAction extends UmbEntityActionBase { + #actionEventContext?: UmbActionEventContext; + + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); + + this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { + this.#actionEventContext = instance; + }); + } + + async execute() { + if (!this.#actionEventContext) throw new Error('Action Event context is not available'); + this.#actionEventContext.dispatchEvent( + new UmbReloadTreeItemRequestEvent({ + unique: this.unique, + entityType: this.entityType, + }), + ); + } +} From b82394a7e288fe633c6c95b3141d9bf158cbd0b6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 13:30:46 +0100 Subject: [PATCH 532/786] add reload event class --- .../reload-tree-item/reload-tree-item-children.action.ts | 4 ++-- .../core/tree/event/reload-tree-item-request.event.ts | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/event/reload-tree-item-request.event.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts index e689c598ed..138d8a5015 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts @@ -2,7 +2,7 @@ import { type UmbCopyDataTypeRepository } from '../../repository/copy/data-type- import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_ACTION_EVENT_CONTEXT, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; -import { UmbReloadTreeItemRequestEvent } from '@umbraco-cms/backoffice/tree'; +import { UmbReloadTreeItemRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; export class UmbReloadTreeItemChildrenEntityAction extends UmbEntityActionBase { #actionEventContext?: UmbActionEventContext; @@ -18,7 +18,7 @@ export class UmbReloadTreeItemChildrenEntityAction extends UmbEntityActionBase Date: Wed, 24 Jan 2024 13:31:08 +0100 Subject: [PATCH 533/786] listen for the reload request event in a tree item context --- .../tree-item-base/tree-item-base.context.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index 81c6d5fb4c..b6190bfb46 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -9,6 +9,9 @@ import { UmbBooleanState, UmbDeepState, UmbStringState } from '@umbraco-cms/back import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UMB_ACTION_EVENT_CONTEXT, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action'; +import { UmbReloadTreeItemRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; export type UmbTreeItemUniqueFunction = ( x: TreeItemType, @@ -52,6 +55,7 @@ export class UmbTreeItemContextBase treeContext?: UmbTreeContextBase; #sectionContext?: UmbSectionContext; #sectionSidebarContext?: UmbSectionSidebarContext; + #actionEventContext?: UmbActionEventContext; #getUniqueFunction: UmbTreeItemUniqueFunction; constructor(host: UmbControllerHost, getUniqueFunction: UmbTreeItemUniqueFunction) { @@ -129,6 +133,18 @@ export class UmbTreeItemContextBase this.#observeIsSelected(); this.#observeHasChildren(); }); + + this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { + this.#actionEventContext = instance; + this.#actionEventContext.removeEventListener( + UmbReloadTreeItemRequestEntityActionEvent.TYPE, + this.#onReloadRequest as EventListener, + ); + this.#actionEventContext.addEventListener( + UmbReloadTreeItemRequestEntityActionEvent.TYPE, + this.#onReloadRequest as EventListener, + ); + }); } getTreeItem() { @@ -206,6 +222,13 @@ export class UmbTreeItemContextBase }); } + #onReloadRequest = (event: UmbEntityActionEvent) => { + if (this.unique === undefined) return; + if (event.getUnique() !== this.unique) return; + if (event.getEntityType() !== this.entityType) return; + this.requestChildren(); + }; + // TODO: use router context constructPath(pathname: string, entityType: string, unique: string | null) { return `section/${pathname}/workspace/${entityType}/edit/${unique}`; From e9e073778d536dbf6c2e9dafc8f692b7ce341858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 13:42:29 +0100 Subject: [PATCH 534/786] UmbWorkspaceSplitViewContext --- .../workspace-split-view/workspace-split-view.context.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts index 12560b88c5..35c49dc064 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts @@ -1,10 +1,10 @@ import { UMB_VARIANT_WORKSPACE_CONTEXT } from '../../workspace-context/index.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { type UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; export class UmbWorkspaceSplitViewContext extends UmbBaseController { #workspaceContext?: typeof UMB_VARIANT_WORKSPACE_CONTEXT.TYPE; From c9cb041975727df1b87c6c78571c5d33f714dea3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 13:44:05 +0100 Subject: [PATCH 535/786] accept entityType as argument --- .../core/data-type/entity-actions/copy/copy.action.ts | 4 ++-- .../core/data-type/entity-actions/create/create.action.ts | 4 ++-- .../core/data-type/entity-actions/move/move.action.ts | 4 ++-- .../packages/core/entity-action/common/copy/copy.action.ts | 4 ++-- .../core/entity-action/common/delete/delete.action.ts | 4 ++-- .../packages/core/entity-action/common/move/move.action.ts | 4 ++-- .../core/entity-action/common/rename/rename.action.ts | 4 ++-- .../common/sort-children-of/sort-children-of.action.ts | 4 ++-- .../packages/core/entity-action/common/trash/trash.action.ts | 4 ++-- .../entity-action/create-folder/create-folder.action.ts | 4 ++-- .../entity-action/delete-folder/delete-folder.action.ts | 4 ++-- .../entity-action/folder-update/folder-update.action.ts | 4 ++-- .../dictionary/entity-actions/create/create.action.ts | 4 ++-- .../dictionary/entity-actions/export/export.action.ts | 4 ++-- .../dictionary/entity-actions/import/import.action.ts | 4 ++-- .../dictionary/dictionary/entity-actions/reload.action.ts | 4 ++-- .../document-types/entity-actions/create/create.action.ts | 4 ++-- .../documents/entity-actions/create-blueprint.action.ts | 4 ++-- .../documents/entity-actions/create/create.action.ts | 4 ++-- .../documents/entity-actions/culture-and-hostnames.action.ts | 4 ++-- .../entity-actions/permissions/permissions.action.ts | 4 ++-- .../documents/entity-actions/public-access.action.ts | 4 ++-- .../documents/documents/entity-actions/publish.action.ts | 4 ++-- .../documents/documents/entity-actions/rollback.action.ts | 4 ++-- .../documents/documents/entity-actions/unpublish.action.ts | 4 ++-- .../media/media-types/entity-actions/create/create.action.ts | 4 ++-- .../relations/relation-types/entity-actions/create.action.ts | 4 ++-- .../languages/entity-actions/language-create-entity-action.ts | 4 ++-- .../partial-views/entity-actions/create/create.action.ts | 4 ++-- .../templating/scripts/entity-actions/create/create.action.ts | 4 ++-- .../stylesheets/entity-actions/create/create.action.ts | 4 ++-- .../templates/entity-actions/create/create.action.ts | 4 ++-- .../change-password/change-user-password.action.ts | 4 ++-- .../user/user/entity-actions/disable/disable-user.action.ts | 4 ++-- .../user/user/entity-actions/enable/enable-user.action.ts | 4 ++-- .../user/user/entity-actions/unlock/unlock-user.action.ts | 4 ++-- .../entity-action/resend-invite/resend-invite.action.ts | 4 ++-- 37 files changed, 74 insertions(+), 74 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts index bc50ca6c71..4311e7c675 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts @@ -11,8 +11,8 @@ import { export class UmbCopyDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts index df5ec45503..00ae6d0f3e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts @@ -7,8 +7,8 @@ import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbrac export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts index 1ecd58718e..3786b8d9da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts @@ -11,8 +11,8 @@ import { export class UmbMoveDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts index eca7e06460..a032704347 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts @@ -2,8 +2,8 @@ import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCopyEntityAction }> extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts index 8be1c44ed9..79a93eb029 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts @@ -13,8 +13,8 @@ export class UmbDeleteEntityAction< > extends UmbEntityActionBase { #modalManager?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManager = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts index 8f7f6c49a1..feac2ed27c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts @@ -4,8 +4,8 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api // TODO: investigate what we need to finish the generic move action. We would need to open a picker, which requires a modal token, // maybe we can use kinds to make a specific manifest to the move action. export class UmbMoveEntityAction }> extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts index 42621775d2..7100dd50d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -7,8 +7,8 @@ import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbrac export class UmbRenameEntityAction extends UmbEntityActionBase> { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts index 5170df11cf..bd658e96bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts @@ -4,8 +4,8 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api export class UmbSortChildrenOfEntityAction< T extends { sortChildrenOf(): Promise }, > extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts index 4b6c8bb08c..1b790bde59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts @@ -13,8 +13,8 @@ export class UmbTrashEntityAction< > extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts index 28a474da8a..ea44034400 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts @@ -7,8 +7,8 @@ import { type UmbFolderRepository, UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/ export class UmbCreateFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts index a1bc34892c..2f0d4e4798 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts @@ -11,8 +11,8 @@ import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts index e3e2b4b78e..8d2a024a4f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts @@ -9,8 +9,8 @@ export class UmbFolderUpdateEntityAction< > extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); new UmbContextConsumerController(this._host, UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts index 7eed91c078..461c995f75 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts @@ -6,8 +6,8 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api export default class UmbCreateDictionaryEntityAction extends UmbEntityActionBase { static styles = [UmbTextStyles]; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts index ca5eb554bf..e602e08fd0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts @@ -13,8 +13,8 @@ export default class UmbExportDictionaryEntityAction extends UmbEntityActionBase #modalContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts index 06cde9e29e..cf41e0a1ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts @@ -15,8 +15,8 @@ export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase #modalContext?: UmbModalManagerContext; #treeStore?: UmbDictionaryTreeStore; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts index 95ef56cffa..316f7f1123 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts @@ -6,8 +6,8 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api export default class UmbReloadDictionaryEntityAction extends UmbEntityActionBase { static styles = [UmbTextStyles]; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts index 5c3cc0ad17..9a309fe197 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts @@ -7,8 +7,8 @@ import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbrac export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts index 88685471a5..5b85f28c38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts @@ -3,8 +3,8 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCreateDocumentBlueprintEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index abd6f5b4cc..cb434da7a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -10,8 +10,8 @@ import { export class UmbCreateDocumentEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts index 01932ae60e..3e1560936d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts @@ -3,8 +3,8 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts index 21714c9c0d..b8e77991ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts @@ -10,8 +10,8 @@ import { export class UmbDocumentPermissionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts index 0d4b7eafda..45b770996c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts @@ -3,8 +3,8 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts index d00aba2a98..32a99627a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts @@ -3,8 +3,8 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts index d6c8e6ff2a..e30a449a33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts @@ -3,8 +3,8 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbRollbackDocumentEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts index 1940fa8862..474a41f1c3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts @@ -3,8 +3,8 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts index 43565e0070..c7224b25b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts @@ -7,8 +7,8 @@ import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbrac export class UmbCreateMediaTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts index 8a03974269..9fc883014b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts @@ -4,8 +4,8 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api export class UmbCreateRelationTypeEntityAction extends UmbEntityActionBase { // TODO: Could EntityActions take the manifest instead, for more flexibility? - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts index aae26d3732..4da1312571 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts @@ -4,8 +4,8 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api export class UmbLanguageCreateEntityAction extends UmbEntityActionBase { // TODO: Could EntityActions take the manifest instead, for more flexibility? - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } async execute() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts index 095d522ee6..0658b065b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts @@ -6,8 +6,8 @@ import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbrac export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts index 67e3de6dba..8e2f168865 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts @@ -6,8 +6,8 @@ import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbrac export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts index d6017d256b..3eb25b0620 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts @@ -6,8 +6,8 @@ import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbrac export class UmbStylesheetCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManagerContext = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts index 4dc38218e1..542d05d609 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts @@ -2,8 +2,8 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCreateEntityAction }> extends UmbEntityActionBase { - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); } // TODO: can we make this a generic create action diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts index 46aac1f7a9..72eeee1cd6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts @@ -10,8 +10,8 @@ import { export class UmbChangeUserPasswordEntityAction extends UmbEntityActionBase { #modalManager?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManager = instance; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts index d5805553ee..e5c1ab5c7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts @@ -12,8 +12,8 @@ export class UmbDisableUserEntityAction extends UmbEntityActionBase { #modalManager?: UmbModalManagerContext; - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { - super(host, repositoryAlias, unique); + constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { + super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { this.#modalManager = instance; From 6d7a496abb0e15be6b8c666919b1858b3e1e79b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:03:27 +0100 Subject: [PATCH 536/786] manifests --- .../core/property-editor/uis/manifests.ts | 6 ------ .../src/packages/media/media/manifests.ts | 18 ++++++++++-------- .../media/media/property-editors/manifests.ts | 5 +++++ 3 files changed, 15 insertions(+), 14 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts index ff26554219..cfb2398405 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts @@ -15,9 +15,6 @@ import { manifest as markdownEditor } from './markdown-editor/manifests.js'; import { manifest as radioButtonList } from './radio-button-list/manifests.js'; import { manifest as checkboxList } from './checkbox-list/manifests.js'; import { manifest as numberRange } from './number-range/manifests.js'; -import { manifest as mediaPicker } from '../../../media/media/property-editors/media-picker/manifests.js'; -import { manifest as imageCropsConfiguration } from '../../../media/media/property-editors/image-crops-configuration/manifests.js'; -import { manifest as imageCropper } from '../../../media/media/property-editors/image-cropper/manifests.js'; import { manifest as uploadField } from './upload-field/manifests.js'; import { manifest as orderDirection } from './order-direction/manifests.js'; import { manifests as collectionView } from './collection-view/manifests.js'; @@ -47,9 +44,6 @@ export const manifests: Array = [ radioButtonList, checkboxList, numberRange, - mediaPicker, - imageCropsConfiguration, - imageCropper, uploadField, orderDirection, iconPicker, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts index 43a93dafbb..6f0c737519 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/manifests.ts @@ -1,19 +1,21 @@ import { manifests as collectionViewManifests } from './collection-view/manifests.js'; -import { manifests as repositoryManifests } from './repository/manifests.js'; -import { manifests as menuItemManifests } from './menu-item/manifests.js'; -import { manifests as treeManifests } from './tree/manifests.js'; -import { manifests as workspaceManifests } from './workspace/manifests.js'; import { manifests as entityActionsManifests } from './entity-actions/manifests.js'; import { manifests as entityBulkActionsManifests } from './entity-bulk-actions/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as propertyEditorsManifests } from './property-editors/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; import { manifests as userPermissionManifests } from './user-permissions/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; export const manifests = [ ...collectionViewManifests, - ...repositoryManifests, - ...menuItemManifests, - ...treeManifests, - ...workspaceManifests, ...entityActionsManifests, ...entityBulkActionsManifests, + ...menuItemManifests, + ...propertyEditorsManifests, + ...repositoryManifests, + ...treeManifests, ...userPermissionManifests, + ...workspaceManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/manifests.ts new file mode 100644 index 0000000000..f38929e732 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/manifests.ts @@ -0,0 +1,5 @@ +import { manifest as mediaPicker } from '../../../media/media/property-editors/media-picker/manifests.js'; +import { manifest as imageCropsConfiguration } from '../../../media/media/property-editors/image-crops-configuration/manifests.js'; +import { manifest as imageCropper } from '../../../media/media/property-editors/image-cropper/manifests.js'; + +export const manifests = [mediaPicker, imageCropsConfiguration, imageCropper]; From d0007be910c7fd4c8107a86ec33cd1111054e11b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 14:03:28 +0100 Subject: [PATCH 537/786] pass entity type to doc type folder action --- .../document-types/entity-actions/create/create.action.ts | 1 + .../create/modal/document-type-create-options-modal.element.ts | 1 + .../document-types/entity-actions/create/modal/index.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts index 9a309fe197..01a97fb6d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts @@ -22,6 +22,7 @@ export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase( From 84c46b45c5315685302cca520a0e60412ae416aa Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 14:03:39 +0100 Subject: [PATCH 538/786] clean up --- .../stylesheet-create-options-modal.element.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts index 81381c1bf8..4988aeb101 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts @@ -2,11 +2,7 @@ import { UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/ind import { UmbStylesheetCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UMB_MODAL_MANAGER_CONTEXT_TOKEN, - UmbModalManagerContext, - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @customElement('umb-stylesheet-create-options-modal') @@ -14,17 +10,8 @@ export class UmbStylesheetCreateOptionsModalElement extends UmbModalBaseElement< UmbStylesheetCreateOptionsModalData, string > { - #modalManager?: UmbModalManagerContext; #createFolderAction?: UmbCreateFolderEntityAction; - constructor() { - super(); - - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this.#modalManager = instance; - }); - } - connectedCallback(): void { super.connectedCallback(); From 09238161ac353aec38ab4fb048b696fef5a4b847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:08:17 +0100 Subject: [PATCH 539/786] name rule --- ...enforce-element-suffix-on-element-name.cjs | 41 +++++++++++++++++++ .../eslint-local-rules.cjs | 5 ++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-element-suffix-on-element-name.cjs diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-element-suffix-on-element-name.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-element-suffix-on-element-name.cjs new file mode 100644 index 0000000000..267e0a2fdd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-element-suffix-on-element-name.cjs @@ -0,0 +1,41 @@ +/** @type {import('eslint').Rule.RuleModule} */ +module.exports = { + meta: { + type: 'suggestion', + docs: { + description: 'Enforce Custom Element names to start with "umb-".', + category: 'Naming', + recommended: true, + }, + schema: [], + }, + create: function (context) { + return { + CallExpression(node) { + // check if the expression is @customElement decorator + const isCustomElementDecorator = + node.callee.type === 'Identifier' && + node.callee.name === 'customElement' && + node.arguments.length === 1 && + node.arguments[0].type === 'Literal' && + typeof node.arguments[0].value === 'string'; + + if (isCustomElementDecorator) { + const elementName = node.arguments[0].value; + + // check if the element name starts with 'umb-' + const isElementNameValid = elementName.startsWith('umb-'); + + if (!isElementNameValid) { + context.report({ + node, + message: 'Custom Element name should start with "umb-".', + // There is no fixer on purpose because it's not safe to automatically rename the element name. + // Renaming should be done manually with consideration of potential impacts. + }); + } + } + }, + }; + }, +}; diff --git a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs index 1f7e56aea0..c5257765a9 100644 --- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs +++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs @@ -2,8 +2,10 @@ const badTypeImportRule = require('./devops/eslint/rules/bad-type-import.cjs'); const enforceElementSuffixOnElementClassNameRule = require('./devops/eslint/rules/enforce-element-suffix-on-element-class-name.cjs'); +const enforceElementSuffixOnElementNameRule = require('./devops/eslint/rules/enforce-element-suffix-on-element-name.cjs'); const enforceUmbracoExternalImportsRule = require('./devops/eslint/rules/enforce-umbraco-external-imports.cjs'); const ensureRelativeImportUseJsExtensionRule = require('./devops/eslint/rules/ensure-relative-import-use-js-extension.cjs'); +const exportedStringConstantNaming = require('./devops/eslint/rules/exported-string-constant-naming.cjs'); const noDirectApiImportRule = require('./devops/eslint/rules/no-direct-api-import.cjs'); const preferImportAliasesRule = require('./devops/eslint/rules/prefer-import-aliases.cjs'); const preferStaticStylesLastRule = require('./devops/eslint/rules/prefer-static-styles-last.cjs'); @@ -12,11 +14,12 @@ const umbClassPrefixRule = require('./devops/eslint/rules/umb-class-prefix.cjs') module.exports = { 'bad-type-import': badTypeImportRule, 'enforce-element-suffix-on-element-class-name': enforceElementSuffixOnElementClassNameRule, + 'enforce-element-suffix-on-element-name': enforceElementSuffixOnElementNameRule, 'enforce-umbraco-external-imports': enforceUmbracoExternalImportsRule, 'ensure-relative-import-use-js-extension': ensureRelativeImportUseJsExtensionRule, + 'exported-string-constant-naming': exportedStringConstantNaming, 'no-direct-api-import': noDirectApiImportRule, 'prefer-import-aliases': preferImportAliasesRule, 'prefer-static-styles-last': preferStaticStylesLastRule, 'umb-class-prefix': umbClassPrefixRule, - 'exported-string-constant-naming': require('./devops/eslint/rules/exported-string-constant-naming.cjs'), }; From c3bbdab6572348abaa3c98775d1a07e1fa07744e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:08:23 +0100 Subject: [PATCH 540/786] import order --- .../templates/components/template-card/template-card.stories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts index 2ef5daf227..7ce63c66c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/web-components'; +import type { UmbTemplateCardElement } from './template-card.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './template-card.element.js'; -import type { UmbTemplateCardElement } from './template-card.element.js'; const meta: Meta = { title: 'Components/Template Card', From 247d13d6fe9fd928595913a39acd9a5a341daa6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:08:55 +0100 Subject: [PATCH 541/786] import sort --- .../dashboard-examine-management.stories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts index ea47837579..e4bdaf68c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts @@ -1,7 +1,7 @@ -import { Meta, Story } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; +import { Meta, Story } from '@storybook/web-components'; -import type { UmbDashboardExamineManagementElement } from './dashboard-examine-management.element.js'; +//import type { UmbDashboardExamineManagementElement } from './dashboard-examine-management.element.js'; import './dashboard-examine-management.element.js'; import type { UmbDashboardExamineOverviewElement } from './views/section-view-examine-overview.js'; From a4e130cfa6bd1b2d8fe40e9901fc13852087f639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:09:32 +0100 Subject: [PATCH 542/786] imports --- .../dashboard-examine-management.stories.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts index e4bdaf68c9..2ce9c7490a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts @@ -1,17 +1,13 @@ -import { html } from '@umbraco-cms/backoffice/external/lit'; import { Meta, Story } from '@storybook/web-components'; - //import type { UmbDashboardExamineManagementElement } from './dashboard-examine-management.element.js'; import './dashboard-examine-management.element.js'; - import type { UmbDashboardExamineOverviewElement } from './views/section-view-examine-overview.js'; import './views/section-view-examine-overview.js'; - import type { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers.js'; import './views/section-view-examine-indexers.js'; - import type { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers.js'; import './views/section-view-examine-searchers.js'; +import { html } from '@umbraco-cms/backoffice/external/lit'; export default { title: 'Dashboards/Examine Management', From f592b45060063b241345eb33546d21b2a7d4565f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:10:04 +0100 Subject: [PATCH 543/786] imports --- .../src/packages/documents/documents/workspace/manifests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts index 476fd19b97..0bab8a6794 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentSaveAndPublishWorkspaceAction } from './actions/save-and-publish.action.js'; -import { UmbDocumentSaveAndPreviewWorkspaceAction } from './actions/save-and-preview.action.js'; -import { UmbSaveAndScheduleDocumentWorkspaceAction } from './actions/save-and-schedule.action.js'; +//import { UmbDocumentSaveAndPreviewWorkspaceAction } from './actions/save-and-preview.action.js'; +//import { UmbSaveAndScheduleDocumentWorkspaceAction } from './actions/save-and-schedule.action.js'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; import type { ManifestWorkspace, From 4ed7d3bf244846ec79917ea11bf1481467af2b9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:11:12 +0100 Subject: [PATCH 544/786] clean imports --- .../documents/workspace/document-workspace.context.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index bb95a7f518..ca039123c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -7,16 +7,11 @@ import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/ import { UmbEditableWorkspaceContextBase, UmbWorkspaceSplitViewManager, - UmbVariantableWorkspaceContextInterface, - UmbPublishableWorkspaceContextInterface, + type UmbVariantableWorkspaceContextInterface, + type UmbPublishableWorkspaceContextInterface, } from '@umbraco-cms/backoffice/workspace'; import type { CreateDocumentRequestModel, DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { - appendToFrozenArray, - partialUpdateFrozenArray, - UmbObjectState, - UmbObserverController, -} from '@umbraco-cms/backoffice/observable-api'; +import { appendToFrozenArray, partialUpdateFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; type EntityType = DocumentResponseModel; From eaad73ad8a6135334933084d8c819a0944645048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:13:05 +0100 Subject: [PATCH 545/786] out comment some more --- .../input-document-granular-permission.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts index dc1dc72b0f..78c7d0375b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts @@ -69,9 +69,9 @@ export class UmbInputDocumentGranularPermissionElement extends FormControlMixin( }, }); - modalContext?.onSubmit().then((value) => { - //this.#setSelection(selection); - }); + //modalContext?.onSubmit().then((value) => { + //this.#setSelection(selection); + //}); } async #removeItem(item: DocumentItemResponseModel) { From 5caae3fedfd07c1f89894d6a61e97349b53f55b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:15:01 +0100 Subject: [PATCH 546/786] remove unused import --- .../src/packages/core/store/file-system-item.store.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts index 4bc832856f..e07380c774 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts @@ -1,5 +1,4 @@ import { UmbStoreBase } from './store-base.js'; -import { UmbItemStore } from './item-store.interface.js'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; From 43d211525cf0036e3df993353fc85f93a677a418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:17:37 +0100 Subject: [PATCH 547/786] rename rule --- src/Umbraco.Web.UI.Client/.eslintrc.json | 4 +++- ...lement-name.cjs => enforce-umb-prefix-on-element-name.cjs} | 0 src/Umbraco.Web.UI.Client/eslint-local-rules.cjs | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) rename src/Umbraco.Web.UI.Client/devops/eslint/rules/{enforce-element-suffix-on-element-name.cjs => enforce-umb-prefix-on-element-name.cjs} (100%) diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index 6ccad7596e..25788cb1b3 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -41,6 +41,7 @@ "local-rules/bad-type-import": "error", "local-rules/no-direct-api-import": "warn", "local-rules/prefer-import-aliases": "error", + "local-rules/enforce-umb-prefix-on-element-name": "error", "local-rules/enforce-element-suffix-on-element-class-name": "error", "local-rules/umb-class-prefix": "error", "local-rules/prefer-static-styles-last": "warn", @@ -51,7 +52,8 @@ "exceptions": ["@umbraco-cms", "@open-wc/testing", "@storybook", "msw", "."] } ], - "local-rules/exported-string-constant-naming": ["error", + "local-rules/exported-string-constant-naming": [ + "error", { "excludedFileNames": ["umbraco-package", "input-tiny-mce.defaults"] // TODO: what to do about the tiny mce defaults? } diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-element-suffix-on-element-name.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs similarity index 100% rename from src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-element-suffix-on-element-name.cjs rename to src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs diff --git a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs index c5257765a9..6f720a1a7d 100644 --- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs +++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs @@ -2,7 +2,7 @@ const badTypeImportRule = require('./devops/eslint/rules/bad-type-import.cjs'); const enforceElementSuffixOnElementClassNameRule = require('./devops/eslint/rules/enforce-element-suffix-on-element-class-name.cjs'); -const enforceElementSuffixOnElementNameRule = require('./devops/eslint/rules/enforce-element-suffix-on-element-name.cjs'); +const enforceUmbPrefixOnElementNameRule = require('./devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs'); const enforceUmbracoExternalImportsRule = require('./devops/eslint/rules/enforce-umbraco-external-imports.cjs'); const ensureRelativeImportUseJsExtensionRule = require('./devops/eslint/rules/ensure-relative-import-use-js-extension.cjs'); const exportedStringConstantNaming = require('./devops/eslint/rules/exported-string-constant-naming.cjs'); @@ -14,7 +14,7 @@ const umbClassPrefixRule = require('./devops/eslint/rules/umb-class-prefix.cjs') module.exports = { 'bad-type-import': badTypeImportRule, 'enforce-element-suffix-on-element-class-name': enforceElementSuffixOnElementClassNameRule, - 'enforce-element-suffix-on-element-name': enforceElementSuffixOnElementNameRule, + 'enforce-umb-prefix-on-element-name': enforceUmbPrefixOnElementNameRule, 'enforce-umbraco-external-imports': enforceUmbracoExternalImportsRule, 'ensure-relative-import-use-js-extension': ensureRelativeImportUseJsExtensionRule, 'exported-string-constant-naming': exportedStringConstantNaming, From 345638156948b3027de469b4b0db90337e5e1c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:19:01 +0100 Subject: [PATCH 548/786] fix element name --- .../media-type-workspace-view-edit-properties.element.ts | 4 ++-- .../media-type-workspace-view-edit-property.element.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index e7616aa919..c5d1e1f216 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -177,7 +177,7 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen (types) => types.containers?.find((containers) => containers.id === property.containerId), ); - return html` { this._propertyStructureHelper.removeProperty(property.id!); }}> - `; + `; }, )}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index e16966698a..c375d6c6b8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -15,11 +15,11 @@ import { generateAlias } from '@umbraco-cms/backoffice/utils'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; /** - * @element media-type-workspace-view-edit-property + * @element umb-media-type-workspace-view-edit-property * @description - Element for displaying a property in an workspace. * @slot editor - Slot for rendering the Property Editor */ -@customElement('media-type-workspace-view-edit-property') +@customElement('umb-media-type-workspace-view-edit-property') export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { private _property?: PropertyTypeModelBaseModel | undefined; /** @@ -478,6 +478,6 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { declare global { interface HTMLElementTagNameMap { - 'media-type-workspace-view-edit-property': UmbMediaTypeWorkspacePropertyElement; + 'umb-media-type-workspace-view-edit-property': UmbMediaTypeWorkspacePropertyElement; } } From 12616c91a99806bfe530c43d89429e5afcf18474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:21:07 +0100 Subject: [PATCH 549/786] rename document-type-workspace-view-edit-property --- .../document-type-workspace-view-edit-properties.element.ts | 4 ++-- .../document-type-workspace-view-edit-property.element.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index 682a48130c..cbb79ff7d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -180,7 +180,7 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle (types) => types.containers?.find((containers) => containers.id === property.containerId), ); - return html` { this._propertyStructureHelper.removeProperty(property.id!); }}> - `; + `; }, )} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index 695d495ab7..fbdbed4c0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -15,11 +15,11 @@ import { generateAlias } from '@umbraco-cms/backoffice/utils'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; /** - * @element document-type-workspace-view-edit-property + * @element umb-document-type-workspace-view-edit-property * @description - Element for displaying a property in an workspace. * @slot editor - Slot for rendering the Property Editor */ -@customElement('document-type-workspace-view-edit-property') +@customElement('umb-document-type-workspace-view-edit-property') export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { private _property?: PropertyTypeModelBaseModel | undefined; /** @@ -478,6 +478,6 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { declare global { interface HTMLElementTagNameMap { - 'document-type-workspace-view-edit-property': UmbDocumentTypeWorkspacePropertyElement; + 'umb-document-type-workspace-view-edit-property': UmbDocumentTypeWorkspacePropertyElement; } } From d35596ce4224d2ba6b4fb28e2aa8ae01e76de5a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:21:15 +0100 Subject: [PATCH 550/786] allow for test elements --- .../eslint/rules/enforce-umb-prefix-on-element-name.cjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs index 267e0a2fdd..e95f2df752 100644 --- a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs +++ b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs @@ -23,8 +23,8 @@ module.exports = { if (isCustomElementDecorator) { const elementName = node.arguments[0].value; - // check if the element name starts with 'umb-' - const isElementNameValid = elementName.startsWith('umb-'); + // check if the element name starts with 'umb-', or 'test-', to be allow tests to have custom elements: + const isElementNameValid = elementName.startsWith('umb-') ?? elementName.startsWith('test-'); if (!isElementNameValid) { context.report({ From e2e51374f5f16004cbc83bf5fc09b1889fb3d8f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 14:30:36 +0100 Subject: [PATCH 551/786] correct rule --- .../devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs index e95f2df752..5db023e932 100644 --- a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs +++ b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs @@ -24,7 +24,7 @@ module.exports = { const elementName = node.arguments[0].value; // check if the element name starts with 'umb-', or 'test-', to be allow tests to have custom elements: - const isElementNameValid = elementName.startsWith('umb-') ?? elementName.startsWith('test-'); + const isElementNameValid = elementName.startsWith('umb-') ? true : elementName.startsWith('test-'); if (!isElementNameValid) { context.report({ From 09e99cdb005486b4b9c7f337c010d7574f9ae994 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:32:22 +0100 Subject: [PATCH 552/786] restructure --- .../culture-and-hostnames-modal.element.ts | 198 ++++++++---------- .../culture-and-hostnames.repository.ts | 11 +- 2 files changed, 97 insertions(+), 112 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts index 6c984f2bb3..7b231d0f7b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts @@ -22,7 +22,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< #languageModel: Array = []; @state() - private _options: Array
`; + } + + #renderDomainSection() { + return html` + + Valid domain names are: "example.com", "www.example.com", "example.com:8080", or "https://www.example.com/".
Furthermore + also one-level paths in domains are supported, eg. "example.com/en" or "/en". +
+ ${this.#renderDomains()} ${this.#renderAddNewDomainButton()} +
`; + } + #renderDomains() { - return html` ${repeat( - this._domains, - (domain) => domain, - (domain, index) => { - const options = this.#languageModel.map((model) => ({ - name: model.name, - value: model.isoCode, - selected: domain.isoCode ? domain.isoCode === model.isoCode : model.isDefault, - })); - return html`
+ if (!this._domains?.length) return; + return html`
+ ${repeat( + this._domains, + (domain) => domain.isoCode, + (domain, index) => html` this.#changeDomainName(e, index)}> + .value=${domain.domainName} + @change=${(e: UUIInputEvent) => this.#onChangeDomainHostname(e, index)}> option.selected)?.value as string} + .value=${domain.isoCode as string} label=${this.localize.term('assignDomain_language')} - @change=${(e: UUISelectEvent) => this.#changeIsoCode(e, index)}> - - ${options.map( - (option) => - html` ${option.name} `, - )} - + @change=${(e: UUISelectEvent) => this.#onChangeDomainLanguage(e, index)}> + ${this.#renderLanguageModelOptions()} - - - this.#remove(index)}> + this.#onRemoveDomain(index)}> + -
`; - }, + `, + )} +
`; + } + + #renderLanguageModelOptions() { + return html`${repeat( + this.#languageModel, + (model) => model.isoCode, + (model) => html`${model.name}`, )}`; } @@ -205,7 +196,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< this.#addDomain()}> + @click=${() => this.#onAddDomain()}> - this.#addDomain(true)}> + this.#onAddDomain(true)}> Add current domain @@ -238,19 +229,12 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< flex-grow: 0; } - uui-select { - display: grid; - } - - .domain { - display: grid; + #domains { + margin-top: var(--uui-size-layout-1); margin-bottom: var(--uui-size-2); + display: grid; grid-template-columns: 1fr 1fr auto; - background-color: var(--uui-interface-surface-alt); - } - - uui-combobox { - display: block; + grid-gap: var(--uui-size-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index 2a955a6c31..be0959b385 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -3,18 +3,19 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController implements UmbApi { #init!: Promise; - #detailDataSource: UmbDocumentCultureAndHostnamesServerDataSource; + #dataSource: UmbDocumentCultureAndHostnamesServerDataSource; #notificationContext?: UmbNotificationContext; constructor(host: UmbControllerHost) { super(host); - this.#detailDataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this); + this.#dataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this); this.#init = Promise.all([ this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { @@ -27,19 +28,19 @@ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController if (!id) throw new Error('Id is missing'); await this.#init; - const { data, error } = await this.#detailDataSource.read(id); + const { data, error } = await this.#dataSource.read(id); if (!error) { return { data }; } return { error }; } - async updateCultureAndHostnames(id: string, data: any) { + async updateCultureAndHostnames(id: string, data: DomainsPresentationModelBaseModel) { if (!id) throw new Error('Id is missing'); if (!data) throw new Error('Data is missing'); await this.#init; - const { error } = await this.#detailDataSource.update(id, data); + const { error } = await this.#dataSource.update(id, data); if (!error) { const notification = { data: { message: `Cultures and hostnames saved` } }; this.#notificationContext?.peek('positive', notification); From 1ddda35b1c5dcabb83667f8801299b565c845fdc Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 24 Jan 2024 15:04:49 +0100 Subject: [PATCH 553/786] rename token --- .../repository/culture-and-hostnames.repository.ts | 6 +++--- .../culture-and-hostnames/culture-and-hostnames.action.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index be0959b385..04bf7b6b4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -1,7 +1,7 @@ import { UmbDocumentCultureAndHostnamesServerDataSource } from './culture-and-hostnames.server.data.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; +import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -18,8 +18,8 @@ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController this.#dataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this); this.#init = Promise.all([ - this.consumeContext(UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => { - this.#notificationContext = instance; + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { + this.#notificationContext = instance as UmbNotificationContext; }).asPromise(), ]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts index 9521403d4a..8fd3b2bbbf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts @@ -1,7 +1,7 @@ import { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/modal'; +import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UMB_CULTURE_AND_HOSTNAMES_MODAL } from '@umbraco-cms/backoffice/document'; export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { @@ -10,8 +10,8 @@ export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionB constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { super(host, repositoryAlias, unique); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { - this.#modalContext = instance; + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { + this.#modalContext = instance as UmbModalManagerContext; }); } From e0a38f5c267bc3ff8afc6c2b2556cb8d433da222 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 15:09:54 +0100 Subject: [PATCH 554/786] different way to load tinyMCE and its plugins --- .../input-tiny-mce/input-tiny-mce.element.ts | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index d868cd5d79..054c8a1577 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -3,10 +3,10 @@ import { pastePreProcessHandler } from './input-tiny-mce.handlers.js'; import { availableLanguages } from './input-tiny-mce.languages.js'; import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { type Editor, type RawEditorOptions, renderEditor } from '@umbraco-cms/backoffice/external/tinymce'; -import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import { type Editor, type RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; +import { type TinyMcePluginArguments, type UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestTinyMcePlugin, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { type ManifestTinyMcePlugin, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { PropertyValueMap, css, @@ -32,6 +32,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { @state() private _tinyConfig: RawEditorOptions = {}; + #renderEditor?: typeof import('@umbraco-cms/backoffice/external/tinymce').renderEditor; #mediaHelper = new UmbMediaHelper(); #plugins: Array UmbTinyMcePluginBase> = []; #editorRef?: Editor | null = null; @@ -58,7 +59,12 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { protected async firstUpdated(_changedProperties: PropertyValueMap | Map): Promise { super.firstUpdated(_changedProperties); - await this.#loadPlugins(); + + // Here we want to start the loading of everything at first, not one at a time, which is why this code is not using await. + const loadEditor = import('@umbraco-cms/backoffice/external/tinymce').then((tinyMce) => { + this.#renderEditor = tinyMce.renderEditor; + }); + await Promise.all([loadEditor, ...(await this.#loadPlugins())]); await this.#setTinyConfig(); } @@ -81,16 +87,28 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { const observable = umbExtensionsRegistry?.extensionsOfType('tinyMcePlugin'); const manifests = (await firstValueFrom(observable)) as ManifestTinyMcePlugin[]; + const promises = []; for (const manifest of manifests) { - const plugin = manifest.js - ? await loadManifestApi(manifest.js) - : manifest.api - ? await loadManifestApi(manifest.api) - : undefined; - if (plugin) { - this.#plugins.push(plugin); + if (manifest.js) { + promises.push( + loadManifestApi(manifest.js).then((plugin) => { + if (plugin) { + this.#plugins.push(plugin); + } + }), + ); + } + if (manifest.api) { + promises.push( + loadManifestApi(manifest.api).then((plugin) => { + if (plugin) { + this.#plugins.push(plugin); + } + }), + ); } } + return promises; } async getFormatStyles(stylesheetPaths: Array) { @@ -214,7 +232,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { this.#editorRef.destroy(); } - const editors = await renderEditor(this._tinyConfig); + const editors = await this.#renderEditor(this._tinyConfig); this.#editorRef = editors.pop(); } @@ -346,7 +364,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { /* Solves issue 1019 by lowering un-needed z-index on header.*/ .tox.tox-tinymce .tox-editor-header { - z-index:0; + z-index: 0; } `, ]; From 308c47b194539d0b989e2b2017c90d70c9b72826 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 24 Jan 2024 15:26:06 +0100 Subject: [PATCH 555/786] move to folder, fix delete bug --- .../documents/culture-and-hostnames/manifests.ts | 13 ------------- .../culture-and-hostnames/index.ts | 0 .../culture-and-hostnames/manifests.ts | 13 +++++++++++-- .../modal/culture-and-hostnames-modal.element.ts | 11 ++++++++--- .../modal/culture-and-hostnames-modal.token.ts | 0 .../culture-and-hostnames/modal/index.ts | 0 .../repository/culture-and-hostnames.repository.ts | 0 .../repository/culture-and-hostnames.server.data.ts | 0 .../culture-and-hostnames/repository/index.ts | 0 .../culture-and-hostnames/repository/manifests.ts | 0 .../documents/documents/entity-actions/index.ts | 1 + .../src/packages/documents/documents/index.ts | 2 +- .../src/packages/documents/documents/manifests.ts | 2 -- 13 files changed, 21 insertions(+), 21 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/manifests.ts rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts (97%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/modal/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/repository/culture-and-hostnames.repository.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/repository/index.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/{ => entity-actions}/culture-and-hostnames/repository/manifests.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/manifests.ts deleted file mode 100644 index 11673b9e78..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/manifests.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { manifests as repositoryManifests } from './repository/manifests.js'; -import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; - -const modals: Array = [ - { - type: 'modal', - alias: 'Umb.Modal.CultureAndHostnames', - name: 'Culture And Hostnames Modal', - js: () => import('./modal/culture-and-hostnames-modal.element.js'), - }, -]; - -export const manifests = [...modals, ...repositoryManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts index 06a93cac69..40c0dd6b4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UmbDocumentCultureAndHostnamesEntityAction } from './culture-and-hostnames.action.js'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { @@ -19,4 +19,13 @@ const entityActions: Array = [ }, ]; -export const manifests = [...entityActions]; +const manifestModals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.CultureAndHostnames', + name: 'Culture And Hostnames Modal', + js: () => import('./modal/culture-and-hostnames-modal.element.js'), + }, +]; + +export const manifests = [...entityActions, ...manifestModals]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts similarity index 97% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts index 7b231d0f7b..c656517820 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts @@ -1,6 +1,11 @@ import { html, customElement, state, css, repeat, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { + UMB_CONFIRM_MODAL, + UMB_MODAL_MANAGER_CONTEXT, + UmbModalBaseElement, + UmbModalManagerContext, +} from '@umbraco-cms/backoffice/modal'; import { UUIInputEvent, UUIPopoverContainerElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLanguageRepository } from '@umbraco-cms/backoffice/language'; import { DomainPresentationModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -87,7 +92,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< this._domains = this._domains.map((domain, i) => (index === i ? { ...domain, domainName } : domain)); } - #onRemoveDomain(index: number) { + async #onRemoveDomain(index: number) { this._domains = this._domains.filter((d, i) => index !== i); } @@ -175,7 +180,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< look="outline" color="danger" label=${this.localize.term('assignDomain_remove')} - @change=${() => this.#onRemoveDomain(index)}> + @click=${() => this.#onRemoveDomain(index)}> `, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/modal/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.repository.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/index.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/index.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/culture-and-hostnames/repository/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/index.ts new file mode 100644 index 0000000000..a25927e33b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/index.ts @@ -0,0 +1 @@ +export * from './culture-and-hostnames/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts index 1afab25c2e..50f3d55158 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/index.ts @@ -7,7 +7,7 @@ export * from './recycle-bin/index.js'; export * from './user-permissions/index.js'; export * from './components/index.js'; export * from './entity.js'; -export * from './culture-and-hostnames/index.js'; +export * from './entity-actions/index.js'; export { UMB_DOCUMENT_TREE_ALIAS } from './tree/index.js'; export { UMB_CONTENT_MENU_ALIAS } from './menu.manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts index 82edf90e04..ba7ad261ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/manifests.ts @@ -9,7 +9,6 @@ import { manifests as propertyEditorManifests } from './property-editors/manifes import { manifests as userPermissionManifests } from './user-permissions/manifests.js'; import { manifests as recycleBinManifests } from './recycle-bin/manifests.js'; import { manifests as trackedReferenceManifests } from './tracked-reference/manifests.js'; -import { manifests as cultureAndHostnamesManifests } from './culture-and-hostnames/manifests.js'; export const manifests = [ ...collectionManifests, @@ -23,5 +22,4 @@ export const manifests = [ ...userPermissionManifests, ...recycleBinManifests, ...trackedReferenceManifests, - ...cultureAndHostnamesManifests, ]; From 7e6abfc4296815123fb228fa405beeab7dcea88f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Wed, 24 Jan 2024 17:14:22 +0100 Subject: [PATCH 556/786] fix split view, again --- .../workspace-split-view/workspace-split-view.element.ts | 2 +- .../workspace/document-workspace-split-view.element.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts index 12cb3c3ce8..1b680b9010 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view/workspace-split-view.element.ts @@ -46,7 +46,7 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement { display: block; width: 100%; height: 100%; - min-height: 0; + min-width: 0; } :host(:not(:last-child)) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index 96d00cefde..073fd6e307 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -67,8 +67,7 @@ export class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement { } #splitViews { - display: grid; - grid-template-columns: 50% 50%; + display: flex; width: 100%; height: calc(100% - var(--umb-footer-layout-height)); } From 24f1d7b1441554abc8adf7abd69f725b6e0ac4a6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 19:02:12 +0100 Subject: [PATCH 557/786] pass entity type to create options modal + create folder entity action --- .../partial-views/entity-actions/create/create.action.ts | 1 + .../partial-views/entity-actions/create/options-modal/index.ts | 1 + .../options-modal/partial-view-create-options-modal.element.ts | 1 + .../templating/scripts/entity-actions/create/create.action.ts | 1 + .../scripts/entity-actions/create/options-modal/index.ts | 1 + .../create/options-modal/script-create-options-modal.element.ts | 1 + .../stylesheets/entity-actions/create/create.action.ts | 1 + .../stylesheets/entity-actions/create/options-modal/index.ts | 1 + .../options-modal/stylesheet-create-options-modal.element.ts | 1 + 9 files changed, 9 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts index 0658b065b7..92b154e0b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts @@ -21,6 +21,7 @@ export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase this.#modalManagerContext?.open(UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL, { data: { parentUnique: this.unique, + entityType: this.entityType, }, }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts index eb6016ae1a..0b9c86730b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/index.ts @@ -2,6 +2,7 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbPartialViewCreateOptionsModalData { parentUnique: string | null; + entityType: string; } export const UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL = new UmbModalToken( diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts index 1f437c1c42..a0f762b79d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -38,6 +38,7 @@ export class UmbPartialViewCreateOptionsModalElement extends UmbModalBaseElement // @ts-ignore // TODO: allow null for entity actions. Some actions can be executed on the root item this.data.parentUnique, + this.data.entityType, ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts index 8e2f168865..6d3b4b1001 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts @@ -21,6 +21,7 @@ export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase( diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts index 582c50e29a..3accdfe3d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts @@ -34,6 +34,7 @@ export class UmbScriptCreateOptionsModalElement extends UmbModalBaseElement( diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts index 4988aeb101..bb5e668bd4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts @@ -24,6 +24,7 @@ export class UmbStylesheetCreateOptionsModalElement extends UmbModalBaseElement< // @ts-ignore // TODO: allow null for entity actions. Some actions can be executed on the root item this.data.parentUnique, + this.data.entityType, ); } From 2610ad97cd210202179d9f1d377406dea65a2842 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 19:04:07 +0100 Subject: [PATCH 558/786] add children to label --- .../packages/core/data-type/tree/reload-tree-item/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts index c5c965fa9c..c5345d22a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts @@ -16,7 +16,7 @@ export const manifests: Array = [ api: UmbReloadTreeItemChildrenEntityAction, meta: { icon: 'icon-refresh', - label: 'Reload...', + label: 'Reload children...', repositoryAlias: UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DATA_TYPE_ENTITY_TYPE, UMB_DATA_TYPE_ROOT_ENTITY_TYPE, UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], }, From e5e4ba2034f2d3d5614ba54d05f82ecdcc059987 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 19:14:14 +0100 Subject: [PATCH 559/786] move entity action to core tree module --- .../core/data-type/tree/reload-tree-item/manifests.ts | 6 +++--- .../src/packages/core/tree/event/index.ts | 1 - .../core/tree/event/reload-tree-item-request.event.ts | 9 --------- .../src/packages/core/tree/index.ts | 7 +++++-- .../core/tree/reload-tree-item-children/index.ts | 2 ++ .../reload-tree-item-children-request.event.ts | 9 +++++++++ .../reload-tree-item-children.action.ts | 6 +++--- .../core/tree/tree-item-base/tree-item-base.context.ts | 6 +++--- 8 files changed, 25 insertions(+), 21 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/event/reload-tree-item-request.event.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts rename src/Umbraco.Web.UI.Client/src/packages/core/{data-type/tree/reload-tree-item => tree/reload-tree-item-children}/reload-tree-item-children.action.ts (77%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts index c5345d22a6..19c1e46657 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts @@ -4,14 +4,14 @@ import { UMB_DATA_TYPE_ROOT_ENTITY_TYPE, } from '../../entity.js'; import { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; -import { UmbReloadTreeItemChildrenEntityAction } from './reload-tree-item-children.action.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; import { type ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ { type: 'entityAction', - alias: 'Umb.EntityAction.DataType.ReloadTreeItem', - name: 'Reload Data Type Tree Item Entity Action', + alias: 'Umb.EntityAction.DataType.Tree.ReloadTreeItemChildren', + name: 'Reload Data Type Tree Item Children Entity Action', weight: 900, api: UmbReloadTreeItemChildrenEntityAction, meta: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts deleted file mode 100644 index 7dfd86c752..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './reload-tree-item-request.event.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/reload-tree-item-request.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/reload-tree-item-request.event.ts deleted file mode 100644 index 8e31f536be..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/event/reload-tree-item-request.event.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { UmbEntityActionEvent, UmbEntityActionEventArgs } from '@umbraco-cms/backoffice/entity-action'; - -export class UmbReloadTreeItemRequestEntityActionEvent extends UmbEntityActionEvent { - static readonly TYPE = 'reload-tree-item-request'; - - constructor(args: UmbEntityActionEventArgs) { - super(UmbReloadTreeItemRequestEntityActionEvent.TYPE, args); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts index 7b0c296661..c502da8f77 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/index.ts @@ -22,7 +22,10 @@ export * from './data-source/index.js'; // Folder export * from './folder/index.js'; -// Event -export * from './event/index.js'; +// +export { + UmbReloadTreeItemChildrenEntityAction, + UmbReloadTreeItemChildrenRequestEntityActionEvent, +} from './reload-tree-item-children/index.js'; export { UmbTreeRepositoryBase } from './tree-repository-base.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/index.ts new file mode 100644 index 0000000000..14a1621de6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/index.ts @@ -0,0 +1,2 @@ +export { UmbReloadTreeItemChildrenEntityAction } from './reload-tree-item-children.action.js'; +export { UmbReloadTreeItemChildrenRequestEntityActionEvent } from './reload-tree-item-children-request.event.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts new file mode 100644 index 0000000000..7c51f52e74 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts @@ -0,0 +1,9 @@ +import { UmbEntityActionEvent, UmbEntityActionEventArgs } from '@umbraco-cms/backoffice/entity-action'; + +export class UmbReloadTreeItemChildrenRequestEntityActionEvent extends UmbEntityActionEvent { + static readonly TYPE = 'reload-tree-item-children-request'; + + constructor(args: UmbEntityActionEventArgs) { + super(UmbReloadTreeItemChildrenRequestEntityActionEvent.TYPE, args); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts index 138d8a5015..f1a5bab504 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/reload-tree-item-children.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts @@ -1,8 +1,8 @@ -import { type UmbCopyDataTypeRepository } from '../../repository/copy/data-type-copy.repository.js'; +import { type UmbCopyDataTypeRepository } from '../../data-type/repository/copy/data-type-copy.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_ACTION_EVENT_CONTEXT, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; -import { UmbReloadTreeItemRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; export class UmbReloadTreeItemChildrenEntityAction extends UmbEntityActionBase { #actionEventContext?: UmbActionEventContext; @@ -18,7 +18,7 @@ export class UmbReloadTreeItemChildrenEntityAction extends UmbEntityActionBase = ( x: TreeItemType, @@ -137,11 +137,11 @@ export class UmbTreeItemContextBase this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { this.#actionEventContext = instance; this.#actionEventContext.removeEventListener( - UmbReloadTreeItemRequestEntityActionEvent.TYPE, + UmbReloadTreeItemChildrenRequestEntityActionEvent.TYPE, this.#onReloadRequest as EventListener, ); this.#actionEventContext.addEventListener( - UmbReloadTreeItemRequestEntityActionEvent.TYPE, + UmbReloadTreeItemChildrenRequestEntityActionEvent.TYPE, this.#onReloadRequest as EventListener, ); }); From be4a284448c2bebd628488224a95aa5577b3a04a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 19:24:20 +0100 Subject: [PATCH 560/786] add reload tree item children to dictionary tree --- .../packages/core/data-type/tree/manifests.ts | 2 +- .../manifests.ts | 2 +- .../dictionary/dictionary/entities.ts | 2 -- .../dictionary/entity-actions/manifests.ts | 2 +- .../packages/dictionary/dictionary/entity.ts | 5 +++++ .../dictionary/menu-item/manifests.ts | 2 +- .../tree/dictionary-tree.repository.ts | 2 +- .../dictionary/dictionary/tree/manifests.ts | 5 +++-- .../reload-tree-item-children/manifests.ts | 20 +++++++++++++++++++ .../packages/dictionary/section.manifest.ts | 2 +- 10 files changed, 34 insertions(+), 10 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/{reload-tree-item => reload-tree-item-children}/manifests.ts (98%) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entities.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts index 0e25aa220c..6ab730ac33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/manifests.ts @@ -1,5 +1,5 @@ import { manifests as folderManifests } from './folder/manifests.js'; -import { manifests as reloadManifests } from './reload-tree-item/manifests.js'; +import { manifests as reloadManifests } from './reload-tree-item-children/manifests.js'; import { UmbDataTypeTreeRepository } from './data-type-tree.repository.js'; import { UmbDataTypeTreeStore } from './data-type-tree.store.js'; import type { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item-children/manifests.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item-children/manifests.ts index 19c1e46657..2aca5cd675 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/reload-tree-item-children/manifests.ts @@ -12,7 +12,7 @@ export const manifests: Array = [ type: 'entityAction', alias: 'Umb.EntityAction.DataType.Tree.ReloadTreeItemChildren', name: 'Reload Data Type Tree Item Children Entity Action', - weight: 900, + weight: 10, api: UmbReloadTreeItemChildrenEntityAction, meta: { icon: 'icon-refresh', diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entities.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entities.ts deleted file mode 100644 index b07e1f48a9..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entities.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const UMB_DICTIONARY_ROOT_ENTITY_TYPE = 'dictionary-root'; -export const UMB_DICTIONARY_ENTITY_TYPE = 'dictionary-item'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts index c797c718e9..fc40e49434 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts @@ -1,5 +1,5 @@ import { UMB_DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests.js'; -import { UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entities.js'; +import { UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entity.js'; import UmbReloadDictionaryEntityAction from './reload.action.js'; import UmbImportDictionaryEntityAction from './import/import.action.js'; import UmbExportDictionaryEntityAction from './export/export.action.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity.ts new file mode 100644 index 0000000000..a2c3b1a5d7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity.ts @@ -0,0 +1,5 @@ +export const UMB_DICTIONARY_ROOT_ENTITY_TYPE = 'dictionary-root'; +export const UMB_DICTIONARY_ENTITY_TYPE = 'dictionary-item'; + +export type UmbDictionaryEntityType = typeof UMB_DICTIONARY_ENTITY_TYPE; +export type UmbDictionaryRootEntityType = typeof UMB_DICTIONARY_ROOT_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu-item/manifests.ts index ac644d838e..f787f054e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu-item/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_DICTIONARY_ENTITY_TYPE } from '../entities.js'; +import { UMB_DICTIONARY_ENTITY_TYPE } from '../entity.js'; import { UMB_DICTIONARY_TREE_ALIAS } from '../tree/index.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts index 9a65449f54..20be5feebb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts @@ -1,4 +1,4 @@ -import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entities.js'; +import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDictionaryTreeServerDataSource } from './dictionary-tree.server.data-source.js'; import { UmbDictionaryTreeItemModel, UmbDictionaryTreeRootModel } from './types.js'; import { UMB_DICTIONARY_TREE_STORE_CONTEXT } from './dictionary-tree.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/manifests.ts index e2e0185c3c..4f0604baff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/manifests.ts @@ -1,6 +1,7 @@ -import { UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entities.js'; +import { UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDictionaryTreeRepository } from './dictionary-tree.repository.js'; import { UmbDictionaryTreeStore } from './dictionary-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..3c39492a29 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,20 @@ +import { UMB_DICTIONARY_ROOT_ENTITY_TYPE, UMB_DICTIONARY_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DICTIONARY_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import { type ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Dictionary.Tree.ReloadTreeItemChildren', + name: 'Reload Dictionary Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: UMB_DICTIONARY_REPOSITORY_ALIAS, + entityTypes: [UMB_DICTIONARY_ROOT_ENTITY_TYPE, UMB_DICTIONARY_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts index 9ea2fde786..c100510717 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section.manifest.ts @@ -1,4 +1,4 @@ -import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from './dictionary/entities.js'; +import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from './dictionary/entity.js'; import type { ManifestDashboard, ManifestSection, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const sectionAlias = 'Umb.Section.Dictionary'; From 39410036a6196d740b7cbc587ace21326496deff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 19:26:13 +0100 Subject: [PATCH 561/786] mark model types --- .../core/extension-registry/models/index.ts | 72 +++++++++---------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts index b50808c37d..c5378f48cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts @@ -32,7 +32,7 @@ import type { ManifestWorkspaceView } from './workspace-view.model.js'; import type { ManifestWorkspaceViewCollection } from './workspace-view-collection.model.js'; import type { ManifestUserPermission } from './user-permission.model.js'; import type { ManifestUserGranularPermission } from './user-granular-permission.model.js'; -import { ManifestCollectionAction } from './collection-action.model.js'; +import type { ManifestCollectionAction } from './collection-action.model.js'; import type { ManifestBase, ManifestBundle, @@ -40,41 +40,41 @@ import type { ManifestEntryPoint, } from '@umbraco-cms/backoffice/extension-api'; -export * from './collection.models.js'; -export * from './collection-action.model.js'; -export * from './collection-view.model.js'; -export * from './dashboard-collection.model.js'; -export * from './dashboard.model.js'; -export * from './entity-action.model.js'; -export * from './entity-bulk-action.model.js'; -export * from './external-login-provider.model.js'; -export * from './global-context.model.js'; -export * from './header-app.model.js'; -export * from './health-check.model.js'; -export * from './localization.model.js'; -export * from './menu-item.model.js'; -export * from './menu.model.js'; -export * from './modal.model.js'; -export * from './package-view.model.js'; -export * from './property-action.model.js'; -export * from './property-editor.model.js'; -export * from './repository.model.js'; -export * from './section-sidebar-app.model.js'; -export * from './section-view.model.js'; -export * from './section.model.js'; -export * from './store.model.js'; -export * from './theme.model.js'; -export * from './tinymce-plugin.model.js'; -export * from './tree-item.model.js'; -export * from './tree.model.js'; -export * from './user-granular-permission.model.js'; -export * from './user-permission.model.js'; -export * from './user-profile-app.model.js'; -export * from './workspace-action.model.js'; -export * from './workspace-context.model.js'; -export * from './workspace-view.model.js'; -export * from './workspace-view-collection.model.js'; -export * from './workspace.model.js'; +export type * from './collection.models.js'; +export type * from './collection-action.model.js'; +export type * from './collection-view.model.js'; +export type * from './dashboard-collection.model.js'; +export type * from './dashboard.model.js'; +export type * from './entity-action.model.js'; +export type * from './entity-bulk-action.model.js'; +export type * from './external-login-provider.model.js'; +export type * from './global-context.model.js'; +export type * from './header-app.model.js'; +export type * from './health-check.model.js'; +export type * from './localization.model.js'; +export type * from './menu-item.model.js'; +export type * from './menu.model.js'; +export type * from './modal.model.js'; +export type * from './package-view.model.js'; +export type * from './property-action.model.js'; +export type * from './property-editor.model.js'; +export type * from './repository.model.js'; +export type * from './section-sidebar-app.model.js'; +export type * from './section-view.model.js'; +export type * from './section.model.js'; +export type * from './store.model.js'; +export type * from './theme.model.js'; +export type * from './tinymce-plugin.model.js'; +export type * from './tree-item.model.js'; +export type * from './tree.model.js'; +export type * from './user-granular-permission.model.js'; +export type * from './user-permission.model.js'; +export type * from './user-profile-app.model.js'; +export type * from './workspace-action.model.js'; +export type * from './workspace-context.model.js'; +export type * from './workspace-view.model.js'; +export type * from './workspace-view-collection.model.js'; +export type * from './workspace.model.js'; export type ManifestTypes = | ManifestBundle From 0412a7cb2a75c4b9f8b1a84a4b2476591b573575 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 19:26:23 +0100 Subject: [PATCH 562/786] remove old reload action --- .../dictionary/entity-actions/manifests.ts | 14 -------------- .../dictionary/entity-actions/reload.action.ts | 16 ---------------- 2 files changed, 30 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts index fc40e49434..dc40b382be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/manifests.ts @@ -1,6 +1,5 @@ import { UMB_DICTIONARY_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entity.js'; -import UmbReloadDictionaryEntityAction from './reload.action.js'; import UmbImportDictionaryEntityAction from './import/import.action.js'; import UmbExportDictionaryEntityAction from './export/export.action.js'; import UmbCreateDictionaryEntityAction from './create/create.action.js'; @@ -60,19 +59,6 @@ const entityActions: Array = [ entityTypes: [UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE], }, }, - { - type: 'entityAction', - alias: 'Umb.EntityAction.Dictionary.Reload', - name: 'Reload Dictionary Entity Action', - weight: 200, - api: UmbReloadDictionaryEntityAction, - meta: { - icon: 'icon-refresh', - label: 'Reload', - repositoryAlias: UMB_DICTIONARY_REPOSITORY_ALIAS, - entityTypes: [UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE], - }, - }, { type: 'entityAction', alias: 'Umb.EntityAction.Dictionary.Delete', diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts deleted file mode 100644 index 316f7f1123..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { UmbDictionaryRepository } from '../repository/dictionary.repository.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; - -export default class UmbReloadDictionaryEntityAction extends UmbEntityActionBase { - static styles = [UmbTextStyles]; - - constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { - super(host, repositoryAlias, unique, entityType); - } - - async execute() { - alert('refresh'); - } -} From d3e086ca700fc5b308d05b0583101095d421812c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 19:28:51 +0100 Subject: [PATCH 563/786] append type to import --- .../collection/components/collection-view-bundle.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts index 10e529fb22..cdd4d492d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts @@ -1,5 +1,5 @@ import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from '../default/collection-default.context.js'; -import { ManifestCollectionView } from '../../extension-registry/models/collection-view.model.js'; +import type { ManifestCollectionView } from '../../extension-registry/models/collection-view.model.js'; import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; From fb873c12200f11bd83b10bd24c0decd5f655812d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 19:40:47 +0100 Subject: [PATCH 564/786] consistent-type-exports and imports rule --- src/Umbraco.Web.UI.Client/.eslintrc.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index 25788cb1b3..8b9cfa72ac 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -39,13 +39,13 @@ "import/no-unresolved": "off", "import/order": "warn", "local-rules/bad-type-import": "error", + "local-rules/enforce-element-suffix-on-element-class-name": "error", + "local-rules/enforce-umb-prefix-on-element-name": "error", + "local-rules/ensure-relative-import-use-js-extension": "error", "local-rules/no-direct-api-import": "warn", "local-rules/prefer-import-aliases": "error", - "local-rules/enforce-umb-prefix-on-element-name": "error", - "local-rules/enforce-element-suffix-on-element-class-name": "error", - "local-rules/umb-class-prefix": "error", "local-rules/prefer-static-styles-last": "warn", - "local-rules/ensure-relative-import-use-js-extension": "error", + "local-rules/umb-class-prefix": "error", "local-rules/enforce-umbraco-external-imports": [ "error", { @@ -60,7 +60,10 @@ ], "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-explicit-any": "warn", - "@typescript-eslint/no-unused-vars": "warn" + "@typescript-eslint/no-unused-vars": "warn", + "@typescript-eslint/consistent-type-exports": "error", + "@typescript-eslint/consistent-type-imports": "error", + "@typescript-eslint/no-import-type-side-effects": "warn" }, "settings": { "import/parsers": { From b777eccce065fb4afc69b091457044ddd4e4bab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 19:43:11 +0100 Subject: [PATCH 565/786] correct some types --- .../src/shared/router/variant-router-slot.element.ts | 4 ++-- .../shared/utils/component-has-manifest-property.function.ts | 2 +- .../src/shared/utils/selection-manager/selection.manager.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts index 5082053103..5f631aeed6 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/variant-router-slot.element.ts @@ -1,7 +1,7 @@ import { UmbRouterSlotElement } from './router-slot.element.js'; import { customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { UmbRoute } from '@umbraco-cms/backoffice/router'; +import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import type { UmbRoute } from '@umbraco-cms/backoffice/router'; function variantIdsToString(variantIds: UmbVariantId[]): string { return variantIds.map((id) => id.toString()).join('_&_'); diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/component-has-manifest-property.function.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/component-has-manifest-property.function.ts index 95bb4c05eb..0316d08536 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/component-has-manifest-property.function.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/component-has-manifest-property.function.ts @@ -1,4 +1,4 @@ -import { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; export function componentHasManifestProperty( component: HTMLElement, diff --git a/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts b/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts index e273849bd7..9451be884d 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/utils/selection-manager/selection.manager.ts @@ -1,5 +1,5 @@ import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbArrayState, UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; From 67102799705a8300f18ca6a49ebfbe668321ebff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 19:44:25 +0100 Subject: [PATCH 566/786] fix more types --- src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts | 4 ++-- .../src/shared/router/router-slot.element.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts b/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts index 366abff6d4..4ccf9d156a 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/route.context.ts @@ -2,9 +2,9 @@ import type { UmbRoute } from './route.interface.js'; import { createRoutePathBuilder } from './generate-route-path-builder.function.js'; import type { IRoutingInfo, IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalRouteRegistration } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, type UmbModalRouteRegistration } from '@umbraco-cms/backoffice/modal'; const EmptyDiv = document.createElement('div'); diff --git a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts index ecb82db0d6..bf06a735a2 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/router/router-slot.element.ts @@ -1,9 +1,9 @@ import '@umbraco-cms/backoffice/external/router-slot'; import { UmbRouterSlotInitEvent } from './router-slot-init.event.js'; import { UmbRouterSlotChangeEvent } from './router-slot-change.event.js'; -import { css, html, PropertyValueMap, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, type PropertyValueMap, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbRouteContext, UmbRoute, IRouterSlot } from '@umbraco-cms/backoffice/router'; +import { UmbRouteContext, type UmbRoute, type IRouterSlot } from '@umbraco-cms/backoffice/router'; /** * @element umb-router-slot From 48b9299b581857d560fa486dc16351e7d8060ac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 19:54:31 +0100 Subject: [PATCH 567/786] correct type imports --- .../src/apps/app/app.context.ts | 4 ++-- .../src/apps/app/app.element.ts | 3 ++- .../src/apps/backoffice/backoffice.context.ts | 2 +- .../src/apps/backoffice/backoffice.stories.ts | 2 +- .../backoffice-header-apps.element.ts | 3 ++- .../backoffice-header-sections.element.ts | 5 +++-- .../components/backoffice-header.element.ts | 3 ++- .../components/backoffice-main.element.ts | 6 ++++-- ...server-extension-registrator.controller.ts | 7 ++++--- .../consent/installer-consent.element.ts | 11 ++++++---- .../consent/installer-consent.stories.ts | 2 +- .../database/installer-database.element.ts | 17 ++++++++------- .../database/installer-database.stories.ts | 2 +- .../error/installer-error.element.ts | 8 ++++--- .../error/installer-error.stories.ts | 2 +- .../src/apps/installer/installer.context.ts | 7 ++++--- .../src/apps/installer/installer.element.ts | 3 ++- .../src/apps/installer/installer.stories.ts | 2 +- .../installer-installing.element.ts | 3 ++- .../installer-installing.stories.ts | 2 +- .../shared/layout/installer-layout.element.ts | 3 ++- .../shared/layout/installer-layout.stories.ts | 2 +- .../installer/user/installer-user.element.ts | 6 ++++-- .../installer/user/installer-user.stories.ts | 2 +- .../apps/upgrader/upgrader-view.element.ts | 5 +++-- .../src/apps/upgrader/upgrader.element.ts | 3 ++- .../src/libs/class-api/context-base.class.ts | 4 ++-- .../libs/class-api/controller-base.class.ts | 2 +- .../consume/context-consumer.controller.ts | 4 ++-- .../consume/context-consumer.test.ts | 3 ++- .../context-api/consume/context-consumer.ts | 5 +++-- .../consume/context-request.event.test.ts | 3 ++- .../provide/context-provide.event.test.ts | 3 ++- .../provide/context-provide.event.ts | 2 +- .../provide/context-provider.controller.ts | 2 +- .../provide/context-provider.element.ts | 6 ++++-- .../context-api/provide/context-provider.ts | 5 +++-- .../controller-host-provider.element.ts | 3 ++- .../controller-host-provider.test.ts | 3 ++- .../controller-api/controller-host.mixin.ts | 2 +- .../libs/controller-api/controller.test.ts | 4 ++-- .../src/libs/element-api/element.mixin.ts | 11 +++++----- .../condition-controller-arguments.type.ts | 2 +- .../extension-condition.interface.ts | 2 +- ...e-extension-initializer.controller.test.ts | 5 +++-- .../base-extension-initializer.controller.ts | 14 ++++++------- ...-extensions-initializer.controller.test.ts | 10 +++++---- .../base-extensions-initializer.controller.ts | 4 ++-- .../extension-api-initializer.controller.ts | 2 +- .../extension-api-initializer.test.ts | 9 +++----- ...xtension-element-initializer.controller.ts | 6 +++--- .../extension-element-initializer.test.ts | 3 ++- .../extensions-api-initializer.controller.ts | 4 ++-- ...ensions-manifest-initializer.controller.ts | 4 ++-- .../create-extension-api.function.ts | 4 ++-- .../functions/create-extension-api.test.ts | 4 ++-- .../create-extension-element.function.ts | 2 +- .../create-extension-element.test.ts | 2 +- .../bundle-extension-initializer.ts | 4 ++-- .../entry-point-extension-initializer.ts | 4 ++-- .../models/entry-point.interface.ts | 2 +- .../registry/extension.registry.ts | 5 +++-- .../localize.controller.test.ts | 5 +++-- .../localization-api/localize.controller.ts | 7 ++++--- .../src/libs/observable-api/observer.ts | 2 +- .../utils/create-observable-part.function.ts | 7 ++++--- .../src/mocks/data/audit-log.data.ts | 5 +++-- .../mocks/data/data-type/data-type.data.ts | 2 +- .../src/mocks/data/data-type/data-type.db.ts | 5 +++-- .../data/document-type/document-type.data.ts | 7 ++++--- .../data/document-type/document-type.db.ts | 5 +++-- .../src/mocks/data/document.data.ts | 9 ++++---- .../src/mocks/data/entity-tree.data.ts | 4 ++-- .../data/entity/entity-detail.manager.ts | 2 +- .../data/entity/entity-folder.manager.ts | 4 ++-- .../mocks/data/entity/entity-item.manager.ts | 2 +- .../mocks/data/entity/entity-tree.manager.ts | 4 ++-- .../src/mocks/data/examine.data.ts | 7 ++++--- .../data/file-system/file-system-base.ts | 2 +- .../file-system/file-system-detail.manager.ts | 4 ++-- .../file-system/file-system-folder.manager.ts | 4 ++-- .../file-system/file-system-item.manager.ts | 4 ++-- .../file-system/file-system-tree.manager.ts | 5 +++-- .../src/mocks/data/health-check.data.ts | 5 +++-- .../src/mocks/data/languages.data.ts | 2 +- .../src/mocks/data/log-viewer.data.ts | 2 +- .../src/mocks/data/logs.data.ts | 3 ++- .../mocks/data/media-type/media-type.data.ts | 2 +- .../mocks/data/media-type/media-type.db.ts | 5 +++-- .../src/mocks/data/media.data.ts | 2 +- .../src/mocks/data/member-group.data.ts | 4 ++-- .../src/mocks/data/member-type.data.ts | 2 +- .../data/partial-view/partial-view.data.ts | 2 +- .../data/partial-view/partial-view.db.ts | 5 +++-- .../src/mocks/data/script/script.data.ts | 2 +- .../src/mocks/data/script/script.db.ts | 3 ++- .../data/static-file/static-file.data.ts | 2 +- .../mocks/data/static-file/static-file.db.ts | 3 ++- .../mocks/data/stylesheet/stylesheet.data.ts | 2 +- .../mocks/data/stylesheet/stylesheet.db.ts | 3 ++- .../src/mocks/data/template.data.ts | 7 ++++--- .../src/mocks/data/tracked-reference.data.ts | 2 +- .../mocks/data/user-group/user-group.data.ts | 2 +- .../mocks/data/user-group/user-group.db.ts | 2 +- .../src/mocks/data/user/user.data.ts | 3 ++- .../src/mocks/data/user/user.db.ts | 7 ++++--- .../src/mocks/data/utils.ts | 2 +- .../src/mocks/handlers/audit-log.handlers.ts | 2 +- .../mocks/handlers/data-type/copy.handlers.ts | 2 +- .../handlers/data-type/detail.handlers.ts | 2 +- .../mocks/handlers/data-type/move.handlers.ts | 2 +- .../src/mocks/handlers/dictionary.handlers.ts | 2 +- .../handlers/document-type/detail.handlers.ts | 2 +- .../handlers/examine-management.handlers.ts | 2 +- .../mocks/handlers/health-check.handlers.ts | 5 +++-- .../src/mocks/handlers/install.handlers.ts | 5 +++-- .../src/mocks/handlers/language.handlers.ts | 2 +- .../src/mocks/handlers/log-viewer.handlers.ts | 2 +- .../handlers/media-type/detail.handlers.ts | 2 +- .../mocks/handlers/modelsbuilder.handlers.ts | 5 +++-- .../src/mocks/handlers/package.handlers.ts | 2 +- .../handlers/partial-view/detail.handlers.ts | 2 +- .../handlers/partial-view/folder.handlers.ts | 2 +- .../handlers/partial-view/rename.handlers.ts | 2 +- .../handlers/redirect-management.handlers.ts | 7 ++++--- .../src/mocks/handlers/rte-embed.handlers.ts | 3 ++- .../mocks/handlers/script/detail.handlers.ts | 2 +- .../mocks/handlers/script/folder.handlers.ts | 2 +- .../mocks/handlers/script/rename.handlers.ts | 2 +- .../src/mocks/handlers/server.handlers.ts | 7 ++++--- .../handlers/stylesheet/detail.handlers.ts | 2 +- .../handlers/stylesheet/folder.handlers.ts | 2 +- .../handlers/stylesheet/rename.handlers.ts | 2 +- .../src/mocks/handlers/tag-handlers.ts | 2 +- .../src/mocks/handlers/telemetry.handlers.ts | 5 +++-- .../src/mocks/handlers/template.handlers.ts | 2 +- .../handlers/tracked-reference.handlers.ts | 2 +- .../handlers/user/change-password.handlers.ts | 2 +- .../mocks/handlers/user/disable.handlers.ts | 2 +- .../mocks/handlers/user/enable.handlers.ts | 2 +- .../mocks/handlers/user/invite.handlers.ts | 2 +- .../mocks/handlers/user/unlock.handlers.ts | 2 +- .../repository/audit-log.repository.ts | 7 ++++--- .../repository/audit-log.server.data.ts | 3 ++- ...ditor-ui-block-grid-column-span.element.ts | 2 +- ...ditor-ui-block-grid-column-span.stories.ts | 2 +- .../property-editor-ui-block-grid.element.ts | 4 ++-- .../property-editor-ui-block-grid.stories.ts | 2 +- ...ui-block-grid-layout-stylesheet.element.ts | 4 ++-- ...ui-block-grid-layout-stylesheet.stories.ts | 2 +- ...i-block-grid-type-configuration.element.ts | 4 ++-- ...i-block-grid-type-configuration.stories.ts | 2 +- .../block-grid-workspace.modal-token.ts | 5 +++-- ...id-type-workspace-view-advanced.element.ts | 2 +- ...-grid-type-workspace-view-areas.element.ts | 2 +- ...id-type-workspace-view-settings.element.ts | 4 ++-- .../block-list-block.element.ts | 2 +- .../inline-list-block.element.ts | 3 ++- .../property-editor-ui-block-list.element.ts | 17 +++++++-------- .../property-editor-ui-block-list.stories.ts | 2 +- ...i-block-list-type-configuration.element.ts | 4 ++-- ...i-block-list-type-configuration.stories.ts | 2 +- .../src/packages/block/block-list/types.ts | 2 +- .../block-list-workspace.modal-token.ts | 5 +++-- .../block-list-type-workspace-view.element.ts | 2 +- .../block-rte-workspace.modal-token.ts | 5 +++-- .../block-rte-type-workspace-view.element.ts | 2 +- .../input-block-type.element.ts | 2 +- .../input-block-type.stories.ts | 2 +- ...-block-type-group-configuration.element.ts | 4 ++-- ...-block-type-group-configuration.stories.ts | 2 +- .../block-type-workspace-editor.element.ts | 3 ++- .../workspace/block-type-workspace.context.ts | 12 ++++++----- .../workspace/block-type-workspace.element.ts | 6 ++++-- .../block/block/context/block.context.ts | 2 +- .../block/manager/block-manager.context.ts | 9 ++++---- .../block-catalogue-modal.element.ts | 2 +- .../block/workspace/block-element-manager.ts | 5 +++-- ...-element-property-dataset.context-token.ts | 2 +- .../block-element-property-dataset.context.ts | 9 ++++---- .../workspace/block-workspace.context.ts | 7 ++++--- .../workspace/block-workspace.element.ts | 6 ++++-- .../workspace/block-workspace.modal-token.ts | 3 ++- ...k-workspace-view-edit-no-router.element.ts | 4 ++-- ...-workspace-view-edit-properties.element.ts | 9 ++++---- .../block-workspace-view-edit-tab.element.ts | 5 +++-- .../edit/block-workspace-view-edit.element.ts | 14 +++++++------ .../core/action/action-event.context.ts | 2 +- .../packages/core/action/action.interface.ts | 2 +- .../packages/core/action/repository-action.ts | 2 +- .../collection-action-button.element.ts | 9 +++----- .../collection/collection-alias.condition.ts | 2 +- .../collection-view.manager.test.ts | 3 ++- .../collection/collection-view.manager.ts | 7 ++++--- .../core/collection/collection.element.ts | 5 +++-- .../collection-action-bundle.element.ts | 3 ++- .../collection-selection-actions.element.ts | 5 +++-- .../collection-view-bundle.element.ts | 3 ++- .../collection-pagination.element.ts | 5 +++-- .../dashboard-collection.stories.ts | 2 +- .../default/collection-default.context.ts | 14 +++++++------ .../default/collection-default.element.ts | 3 ++- .../src/packages/core/collection/types.ts | 6 +++--- .../backoffice-modal-container.element.ts | 10 +++++---- ...ckoffice-notification-container.element.ts | 8 ++++--- .../body-layout/body-layout.stories.ts | 2 +- .../code-block/code-block.stories.ts | 2 +- .../components/dropdown/dropdown.element.ts | 5 +++-- .../empty-state/empty-state.stories.ts | 2 +- .../entity-actions-bundle.element.ts | 3 ++- .../extension-slot/extension-slot.element.ts | 3 ++- .../extension-slot/extension-slot.test.ts | 5 +++-- .../footer-layout/footer-layout.stories.ts | 2 +- .../header-app/header-app-button.element.ts | 8 ++++--- .../header-app/header-app.stories.ts | 2 +- .../history/history-list.stories.ts | 2 +- .../input-color/input-color.element.ts | 3 ++- .../input-color/input-color.stories.ts | 2 +- .../input-date/input-date.element.ts | 3 ++- .../input-date/input-date.stories.ts | 2 +- .../input-dropdown-list.element.ts | 3 ++- .../input-dropdown-list.stories.ts | 2 +- .../input-eye-dropper.element.ts | 3 ++- .../input-eye-dropper.stories.ts | 2 +- .../input-list-base/input-list-base.ts | 7 ++++--- .../input-markdown.element.ts | 11 ++++++---- .../input-markdown.stories.ts | 2 +- .../input-multi-url.element.ts | 4 ++-- .../input-multi-url.stories.ts | 2 +- .../input-number-range.stories.ts | 2 +- .../input-radio-button-list.element.ts | 3 ++- .../input-radio-button-list.stories.ts | 2 +- .../input-section/input-section.element.ts | 3 ++- .../input-section/input-section.stories.ts | 2 +- .../input-slider/input-slider.element.ts | 3 ++- .../input-slider/input-slider.stories.ts | 2 +- .../input-tiny-mce/input-tiny-mce.element.ts | 21 ++++++++----------- .../input-tiny-mce/tiny-mce-plugin.ts | 2 +- .../input-toggle/input-toggle.element.ts | 3 ++- .../input-toggle/input-toggle.stories.ts | 2 +- .../input-tree-picker-source.element.ts | 5 +++-- .../input-upload-field.element.ts | 3 ++- .../input-upload-field.stories.ts | 2 +- .../multiple-color-picker-input.element.ts | 2 +- ...ultiple-color-picker-item-input.element.ts | 10 +++++---- ...input-multiple-text-string-item.element.ts | 6 ++++-- .../input-multiple-text-string.element.ts | 8 ++++--- .../core/components/table/table.stories.ts | 2 +- .../tooltip-menu/tooltip-menu.stories.ts | 2 +- .../property-type-based-property.element.ts | 7 ++++--- ...t-type-container-structure-helper.class.ts | 8 +++---- ...nt-type-property-structure-helper.class.ts | 8 +++---- .../content-type-structure-manager.class.ts | 9 ++++---- .../src/packages/core/content-type/types.ts | 2 +- .../input-culture-select.element.ts | 5 +++-- .../input-culture-select.stories.ts | 2 +- .../culture/repository/culture.repository.ts | 4 ++-- .../core/culture/repository/manifests.ts | 2 +- .../repository/sources/culture.server.data.ts | 2 +- .../core/culture/repository/sources/index.ts | 2 +- .../data-type-input.context.ts | 4 ++-- .../property-editor-config.element.ts | 2 +- .../property-editor-config.stories.ts | 2 +- .../ref-data-type/ref-data-type.stories.ts | 2 +- .../entity-actions/copy/copy.action.ts | 7 ++++--- .../entity-actions/copy/manifests.ts | 2 +- .../entity-actions/create/create.action.ts | 7 ++++--- .../entity-actions/create/manifests.ts | 2 +- .../data-type-create-options-modal.element.ts | 2 +- .../data-type/entity-actions/manifests.ts | 2 +- .../entity-actions/move/manifests.ts | 2 +- .../entity-actions/move/move.action.ts | 7 ++++--- ...ker-flow-data-type-picker-modal.element.ts | 5 +++-- .../data-type-picker-flow-modal.element.ts | 12 ++++++----- ...property-editor-ui-picker-modal.element.ts | 8 ++++--- ...property-editor-ui-picker-modal.stories.ts | 2 +- .../copy/data-type-copy.repository.ts | 9 +++++--- .../copy/data-type-copy.server.data-source.ts | 2 +- .../detail/data-type-detail.repository.ts | 7 ++++--- .../data-type-detail.server.data-source.ts | 9 ++++---- .../detail/data-type-detail.store.ts | 4 ++-- .../data-type/repository/detail/manifests.ts | 2 +- .../item/data-type-item.repository.ts | 2 +- .../item/data-type-item.server.data.ts | 3 ++- .../repository/item/data-type-item.store.ts | 4 ++-- .../move/data-type-move.repository.ts | 9 +++++--- .../move/data-type-move.server.data-source.ts | 2 +- .../tree/data-type-tree.repository.ts | 6 +++--- .../tree/data-type-tree.server.data-source.ts | 5 +++-- .../data-type/tree/data-type-tree.store.ts | 6 +++--- .../folder/data-type-folder.repository.ts | 7 ++++--- .../data-type-folder.server.data-source.ts | 2 +- .../core/data-type/tree/folder/types.ts | 4 ++-- .../src/packages/core/data-type/tree/types.ts | 2 +- .../src/packages/core/data-type/types.ts | 2 +- .../data-type-workspace-editor.element.ts | 5 +++-- .../workspace/data-type-workspace.context.ts | 12 ++++++----- .../data-type-workspace.modal-token.ts | 5 +++-- .../workspace/data-type-workspace.stories.ts | 2 +- ...ata-type-details-workspace-view.element.ts | 7 ++++--- ...ata-type-details-workspace-view.stories.ts | 2 +- .../workspace-view-data-type-info.element.ts | 4 ++-- .../workspace-view-data-type-info.stories.ts | 2 +- .../core/debug/context-debug.controller.ts | 2 +- .../src/packages/core/debug/debug.element.ts | 11 ++++++---- .../debug/modals/debug/debug-modal.element.ts | 3 ++- .../entity-action/common/copy/copy.action.ts | 2 +- .../common/delete/delete.action.ts | 7 ++++--- .../entity-action/common/move/move.action.ts | 2 +- .../common/rename/modal/manifests.ts | 2 +- .../rename/modal/rename-modal.element.ts | 4 ++-- .../common/rename/rename-repository-base.ts | 11 +++++----- .../common/rename/rename.action.ts | 7 ++++--- .../core/entity-action/common/rename/types.ts | 4 ++-- .../sort-children-of.action.ts | 2 +- .../common/trash/trash.action.ts | 7 ++++--- .../entity-action-list.element.ts | 2 +- .../entity-action/entity-action.element.ts | 4 ++-- .../core/entity-action/entity-action.ts | 5 +++-- .../entity-bulk-action.element.ts | 4 ++-- .../entity-bulk-action/entity-bulk-action.ts | 3 ++- .../conditions/menu-alias.condition.ts | 2 +- .../conditions/section-alias.condition.ts | 2 +- .../conditions/switch.condition.ts | 4 ++-- .../extension-registry/conditions/types.ts | 2 +- .../interfaces/tree-item-element.interface.ts | 2 +- .../models/collection-action.model.ts | 2 +- .../models/dashboard.model.ts | 2 +- .../models/section-sidebar-app.model.ts | 2 +- .../models/section-view.model.ts | 2 +- .../extension-registry/models/store.model.ts | 6 +++--- .../models/tree-item.model.ts | 2 +- .../models/workspace-context.model.ts | 2 +- .../models/workspace-view-collection.model.ts | 2 +- .../models/workspace-view.model.ts | 2 +- .../core/extension-registry/registry.ts | 3 ++- .../ui-culture-input.element.ts | 6 ++++-- .../packages/core/localization/manifests.ts | 4 ++-- .../registry/localization.registry.test.ts | 3 ++- .../registry/localization.registry.ts | 8 ++++--- .../stories/localize.element.stories.ts | 2 +- .../menu-item-layout.element.ts | 3 ++- .../src/packages/core/menu/menu.element.ts | 2 +- .../code-editor/code-editor-modal.element.ts | 3 ++- .../code-editor/code-editor-modal.stories.ts | 4 ++-- .../common/confirm/confirm-modal.element.ts | 2 +- .../common/confirm/confirm-modal.stories.ts | 2 +- .../embedded-media-modal.element.ts | 7 ++++--- .../embedded-media-modal.stories.ts | 4 ++-- .../icon-picker/icon-picker-modal.element.ts | 3 ++- .../icon-picker/icon-picker-modal.stories.ts | 4 ++-- .../link-picker/link-picker-modal.element.ts | 10 ++++----- .../link-picker/link-picker-modal.stories.ts | 2 +- .../property-settings-modal.context.ts | 4 ++-- .../property-settings-modal.element.ts | 10 +++++---- .../section-picker-modal.element.ts | 8 ++++--- .../common/template/template-modal.element.ts | 10 +++++---- .../tree-picker/tree-picker-modal.element.ts | 5 +++-- .../core/modal/modal-element.element.ts | 2 +- .../modal-route-registration.controller.ts | 2 +- .../core/modal/modal-route-registration.ts | 6 +++--- .../src/packages/core/modal/modal.context.ts | 2 +- .../src/packages/core/modal/modal.element.ts | 20 +++++++++++------- .../token/create-dictionary-modal.token.ts | 2 +- .../token/data-type-picker-modal.token.ts | 5 +++-- .../core/modal/token/debug-modal.token.ts | 2 +- .../dictionary-item-picker-modal.token.ts | 5 +++-- .../token/document-picker-modal.token.ts | 5 +++-- .../token/document-type-picker-modal.token.ts | 5 +++-- .../token/import-dictionary-modal.token.ts | 2 +- .../token/language-picker-modal.token.ts | 2 +- .../token/media-tree-picker-modal.token.ts | 5 +++-- .../token/media-type-picker-modal.token.ts | 5 +++-- .../token/member-type-picker-modal.token.ts | 5 +++-- .../packages/core/modal/token/modal-token.ts | 2 +- .../token/property-settings-modal.token.ts | 2 +- .../token/template-picker-modal.token.ts | 5 +++-- .../token/user-group-picker-modal.token.ts | 3 ++- .../modal/token/user-picker-modal.token.ts | 5 +++-- .../notification-layout-default.stories.ts | 2 +- .../notification-layout-default.test.ts | 7 ++++--- .../core/notification/notification-handler.ts | 2 +- .../notification/notification.context.test.ts | 3 ++- .../stories/notification.stories.ts | 2 +- ...ry-notification-default-example.element.ts | 5 +++-- .../object-type/input-object-type.element.ts | 3 ++- .../object-type/object-type.repository.ts | 4 ++-- .../core/picker-input/picker-input.context.ts | 9 ++++---- .../clear/property-action-clear.element.ts | 3 ++- .../clear/property-action-clear.stories.ts | 2 +- .../copy/property-action-copy.element.ts | 5 +++-- .../copy/property-action-copy.stories.ts | 2 +- .../property-action-menu.element.ts | 11 ++++++---- .../ref-property-editor-ui.stories.ts | 2 +- ...property-editor-config-collection.class.ts | 4 ++-- .../config/property-editor-config.type.ts | 2 +- .../input-checkbox-list.element.ts | 3 ++- .../input-checkbox-list.stories.ts | 2 +- ...roperty-editor-ui-checkbox-list.element.ts | 2 +- ...roperty-editor-ui-checkbox-list.stories.ts | 2 +- ...on-view-bulk-action-permissions.element.ts | 7 ++++--- ...on-view-bulk-action-permissions.stories.ts | 2 +- ...ction-view-column-configuration.element.ts | 7 ++++--- ...ction-view-column-configuration.stories.ts | 2 +- ...ction-view-layout-configuration.element.ts | 12 ++++++----- ...ction-view-layout-configuration.stories.ts | 2 +- ...tor-ui-collection-view-order-by.element.ts | 7 ++++--- ...tor-ui-collection-view-order-by.stories.ts | 2 +- ...perty-editor-ui-collection-view.element.ts | 4 ++-- ...perty-editor-ui-collection-view.stories.ts | 2 +- ...property-editor-ui-color-editor.element.ts | 4 ++-- ...property-editor-ui-color-picker.element.ts | 4 ++-- ...property-editor-ui-color-picker.stories.ts | 2 +- .../property-editor-ui-date-picker.element.ts | 5 +++-- .../property-editor-ui-date-picker.stories.ts | 2 +- .../property-editor-ui-date-picker.test.ts | 2 +- .../property-editor-ui-dropdown.element.ts | 4 ++-- .../property-editor-ui-dropdown.stories.ts | 2 +- .../property-editor-ui-eye-dropper.element.ts | 4 ++-- .../property-editor-ui-eye-dropper.stories.ts | 2 +- .../property-editor-ui-icon-picker.element.ts | 5 +++-- .../property-editor-ui-icon-picker.stories.ts | 2 +- .../label/property-editor-ui-label.element.ts | 2 +- .../label/property-editor-ui-label.stories.ts | 2 +- ...perty-editor-ui-markdown-editor.element.ts | 6 +++--- ...perty-editor-ui-markdown-editor.stories.ts | 2 +- ...y-editor-ui-member-group-picker.element.ts | 4 ++-- ...y-editor-ui-member-group-picker.stories.ts | 2 +- ...roperty-editor-ui-member-picker.element.ts | 4 ++-- ...roperty-editor-ui-member-picker.stories.ts | 2 +- ...erty-editor-ui-multi-url-picker.element.ts | 6 +++--- ...erty-editor-ui-multi-url-picker.stories.ts | 2 +- ...-editor-ui-multiple-text-string.element.ts | 6 +++--- ...-editor-ui-multiple-text-string.stories.ts | 2 +- ...property-editor-ui-number-range.element.ts | 4 ++-- ...property-editor-ui-number-range.stories.ts | 2 +- .../property-editor-ui-number.element.ts | 2 +- .../property-editor-ui-number.stories.ts | 2 +- ...perty-editor-ui-order-direction.element.ts | 7 ++++--- ...perty-editor-ui-order-direction.stories.ts | 2 +- ...property-editor-ui-overlay-size.element.ts | 6 +++--- ...property-editor-ui-overlay-size.stories.ts | 2 +- ...rty-editor-ui-radio-button-list.element.ts | 2 +- ...rty-editor-ui-radio-button-list.stories.ts | 2 +- .../property-editor-ui-slider.element.ts | 4 ++-- .../property-editor-ui-slider.stories.ts | 2 +- .../property-editor-ui-text-box.element.ts | 4 ++-- .../property-editor-ui-text-box.stories.ts | 2 +- .../property-editor-ui-textarea.element.ts | 4 ++-- .../property-editor-ui-textarea.stories.ts | 2 +- ...ui-block-rte-type-configuration.element.ts | 7 ++++--- ...ui-block-rte-type-configuration.stories.ts | 2 +- ...ny-mce-dimensions-configuration.stories.ts | 4 ++-- ...-mce-maximagesize-configuration.element.ts | 2 +- ...-mce-maximagesize-configuration.stories.ts | 4 ++-- ...y-mce-stylesheets-configuration.element.ts | 7 ++++--- ...y-mce-stylesheets-configuration.stories.ts | 4 ++-- ...-tiny-mce-toolbar-configuration.element.ts | 8 ++++--- ...-tiny-mce-toolbar-configuration.stories.ts | 4 ++-- .../plugins/tiny-mce-code-editor.plugin.ts | 8 ++++--- .../plugins/tiny-mce-embeddedmedia.plugin.ts | 8 ++++--- .../plugins/tiny-mce-linkpicker.plugin.ts | 10 +++++---- .../plugins/tiny-mce-macropicker.plugin.ts | 9 +++++--- .../plugins/tiny-mce-mediapicker.plugin.ts | 10 +++++---- .../property-editor-ui-tiny-mce.element.ts | 4 ++-- .../property-editor-ui-toggle.element.ts | 4 ++-- .../property-editor-ui-toggle.stories.ts | 2 +- ...or-ui-tree-picker-source-picker.element.ts | 12 ++++++++--- ...or-ui-tree-picker-source-picker.stories.ts | 2 +- ...-tree-picker-source-type-picker.element.ts | 6 +++--- .../property-editor-ui-tree-picker.stories.ts | 2 +- ...property-editor-ui-upload-field.element.ts | 2 +- ...property-editor-ui-upload-field.stories.ts | 2 +- .../property-editor-ui-user-picker.element.ts | 4 ++-- .../property-editor-ui-user-picker.stories.ts | 2 +- .../property-editor-ui-value-type.element.ts | 2 +- .../property-editor-ui-value-type.stories.ts | 2 +- ...able-property-dataset-context.interface.ts | 2 +- ...nameable-property-dataset-context.token.ts | 4 ++-- .../property-dataset-base-context.ts | 2 +- .../property-dataset-context.token.ts | 2 +- .../property-layout.stories.ts | 2 +- .../property/property/property.context.ts | 14 +++++++------ .../property/property/property.element.ts | 9 ++++---- .../property/property/property.stories.ts | 2 +- .../collection-repository.interface.ts | 2 +- ...ata-source-paged-response-data.function.ts | 4 ++-- ...nd-data-source-paged-response-data.test.ts | 4 ++-- ...tend-data-source-response-data.function.ts | 4 ++-- .../extend-data-source-response-data.test.ts | 2 +- .../detail/detail-data-source.interface.ts | 4 ++-- .../detail/detail-repository-base.ts | 15 ++++++------- .../detail/detail-repository.interface.ts | 2 +- .../item/item-data-source.interface.ts | 2 +- .../repository/item/item-repository-base.ts | 10 ++++----- .../item/item-repository.interface.ts | 4 ++-- .../repository/move-repository.interface.ts | 2 +- .../core/repository/repository-base.ts | 2 +- .../core/section/section-default.element.ts | 8 ++++--- .../section-main-views.element.ts | 5 +++-- .../section-main/section-main.stories.ts | 2 +- .../section-sidebar-context-menu.element.ts | 3 ++- ...idebar-menu-with-entity-actions.element.ts | 5 +++-- ...idebar-menu-with-entity-actions.stories.ts | 2 +- .../section-sidebar-menu.element.ts | 5 +++-- .../section-sidebar-menu.stories.ts | 2 +- .../section-sidebar.context.ts | 2 +- .../section-sidebar.stories.ts | 2 +- .../core/sorter/sorter.controller.test.ts | 2 +- .../packages/core/sorter/sorter.controller.ts | 2 +- .../core/sorter/stories/sorter.stories.ts | 2 +- .../stories/test-sorter-controller.element.ts | 3 ++- .../packages/core/store/detail-store-base.ts | 4 ++-- .../core/store/detail-store.interface.ts | 2 +- .../packages/core/store/entity-item.store.ts | 4 ++-- .../core/store/file-system-item.store.ts | 2 +- .../packages/core/store/item-store-base.ts | 5 +++-- .../core/store/item-store.interface.ts | 2 +- .../src/packages/core/store/store-base.ts | 8 +++---- .../packages/core/store/store-connector.ts | 9 ++++---- .../packages/core/store/store.interface.ts | 4 ++-- .../temporary-file-manager.class.ts | 2 +- .../temporary-file.repository.ts | 2 +- .../temporary-file.server.data-source.ts | 2 +- .../src/packages/core/themes/theme.context.ts | 8 ++++--- .../input-tree/input-tree.element.ts | 6 +++--- .../input-tree/input-tree.stories.ts | 2 +- .../data-source/tree-data-source.interface.ts | 4 ++-- .../tree-server-data-source-base.ts | 4 ++-- .../entity-tree-item.context.ts | 4 ++-- .../entity-tree-item.element.ts | 7 ++++--- .../packages/core/tree/entity-tree-store.ts | 6 +++--- .../file-system-tree-item.context.ts | 4 ++-- .../file-system-tree-item.element.ts | 7 ++++--- .../core/tree/file-system-tree.store.ts | 6 +++--- .../create-folder/create-folder.action.ts | 2 +- .../delete-folder/delete-folder.action.ts | 7 ++++--- .../folder-update/folder-update.action.ts | 2 +- .../folder/folder-data-source.interface.ts | 6 +++--- .../tree/folder/folder-repository-base.ts | 13 ++++++------ .../folder/folder-repository.interface.ts | 4 ++-- .../modal/folder-create-modal.element.ts | 2 +- .../folder/modal/folder-create-modal.token.ts | 2 +- .../folder/modal/folder-modal-element-base.ts | 2 +- .../modal/folder-update-modal.element.ts | 2 +- .../folder/modal/folder-update-modal.token.ts | 2 +- .../tree-item-base/tree-item-base.context.ts | 8 +++---- .../tree-item-base/tree-item-base.element.ts | 2 +- .../tree-item-base/tree-item-base.stories.ts | 2 +- .../tree-item.context.interface.ts | 4 ++-- .../tree-item-default/tree-item.element.ts | 4 ++-- .../tree-menu-item-default.element.ts | 5 +++-- .../core/tree/tree-repository-base.ts | 10 ++++----- .../core/tree/tree-repository.interface.ts | 6 +++--- .../core/tree/tree-store.interface.ts | 4 ++-- .../src/packages/core/tree/tree.context.ts | 12 +++++------ .../src/packages/core/tree/tree.element.ts | 4 ++-- .../src/packages/core/tree/tree.stories.ts | 2 +- .../unique-tree-item.context.ts | 4 ++-- .../unique-tree-item.element.ts | 7 ++++--- .../packages/core/tree/unique-tree-store.ts | 6 +++--- .../src/packages/core/umbraco-package.ts | 2 +- .../variant-selector.stories.ts | 2 +- .../workspace-action-menu.element.ts | 2 +- .../common/save/save.action.ts | 2 +- .../workspace-action/workspace-action-base.ts | 5 +++-- .../workspace-action.element.ts | 2 +- .../workspace-editor.element.ts | 5 +++-- .../workspace-editor.stories.ts | 2 +- .../workspace-footer.element.ts | 3 ++- .../workspace-footer.stories.ts | 2 +- .../workspace-split-view.context.ts | 4 ++-- .../publishable-workspace.context-token.ts | 2 +- .../saveable-workspace.context-token.ts | 2 +- .../workspace/workspace-alias.condition.ts | 2 +- .../workspace-view-collection.element.ts | 4 ++-- .../editable-workspace-context-base.ts | 7 ++++--- .../entity-manager-controller.ts | 14 +++++++------ ...y-structure-workspace-context.interface.ts | 2 +- .../saveable-workspace-context.interface.ts | 2 +- ...rkspace-invariantable-context.interface.ts | 6 +++--- ...workspace-variantable-context.interface.ts | 4 ++-- .../workspace-entity-type.condition.ts | 2 +- .../workspace-is-new-redirect-controller.ts | 4 ++-- .../workspace/workspace-modal/manifests.ts | 2 +- .../workspace-modal.element.ts | 5 +++-- ...iant-workspace-property-dataset-context.ts | 11 +++++----- .../core/workspace/workspace.element.ts | 2 +- ...shboard-localization-dictionary.element.ts | 4 ++-- .../create/create-dictionary-modal.element.ts | 5 +++-- .../entity-actions/create/create.action.ts | 4 ++-- .../export/export-dictionary-modal.element.ts | 5 +++-- .../entity-actions/export/export.action.ts | 7 ++++--- .../import/import-dictionary-modal.element.ts | 13 ++++++------ .../entity-actions/import/import.action.ts | 10 +++++---- .../entity-actions/reload.action.ts | 4 ++-- .../dictionary/dictionary/menu.manifests.ts | 2 +- .../repository/dictionary.repository.ts | 5 +++-- .../dictionary/repository/dictionary.store.ts | 4 ++-- .../dictionary/repository/manifests.ts | 2 +- .../dictionary-detail.server.data-source.ts | 9 ++++---- .../tree/dictionary-tree.repository.ts | 6 +++--- .../dictionary-tree.server.data-source.ts | 5 +++-- .../dictionary/tree/dictionary-tree.store.ts | 2 +- .../dictionary-workspace-editor.element.ts | 3 ++- .../workspace/dictionary-workspace.context.ts | 2 +- .../workspace/dictionary-workspace.stories.ts | 2 +- ...orkspace-view-dictionary-editor.element.ts | 5 +++-- ...orkspace-view-dictionary-editor.stories.ts | 2 +- .../dashboard-redirect-management.element.ts | 10 +++++---- .../dashboard-redirect-management.stories.ts | 2 +- .../document-blueprint.detail.store.ts | 2 +- .../input-document-type.context.ts | 4 ++-- .../entity-actions/create/create.action.ts | 7 ++++--- .../entity-actions/create/manifests.ts | 2 +- ...ument-type-create-options-modal.element.ts | 2 +- .../entity-actions/manifests.ts | 2 +- ...-editor-ui-document-type-picker.element.ts | 2 +- ...-editor-ui-document-type-picker.stories.ts | 2 +- .../detail/document-type-detail.repository.ts | 4 ++-- ...document-type-detail.server.data-source.ts | 11 +++++----- .../detail/document-type-detail.store.ts | 4 ++-- .../repository/detail/manifests.ts | 2 +- .../item/document-type-item.repository.ts | 4 ++-- .../item/document-type-item.server.data.ts | 3 ++- .../item/document-type-item.store.ts | 4 ++-- .../repository/item/manifests.ts | 2 +- .../document-types/repository/item/types.ts | 2 +- .../tree/document-type-tree.repository.ts | 6 +++--- .../document-type.tree.server.data-source.ts | 5 +++-- .../tree/document-type.tree.store.ts | 6 +++--- .../folder/document-type-folder.repository.ts | 7 ++++--- ...document-type-folder.server.data-source.ts | 2 +- .../document-types/tree/folder/types.ts | 4 ++-- .../documents/document-types/tree/types.ts | 4 ++-- .../documents/document-types/types.ts | 6 +++--- .../document-type-workspace-editor.element.ts | 6 ++++-- .../document-type-workspace-sorter.ts | 4 ++-- .../document-type-workspace.context.ts | 9 ++++---- .../document-type-workspace.element.ts | 2 +- .../document-type-workspace.stories.ts | 2 +- ...-workspace-view-edit-properties.element.ts | 12 ++++++----- ...pe-workspace-view-edit-property.element.ts | 8 ++++--- ...nt-type-workspace-view-edit-tab.element.ts | 9 ++++---- ...cument-type-workspace-view-edit.element.ts | 20 ++++++++++-------- ...nt-type-workspace-view-settings.element.ts | 4 ++-- ...t-type-workspace-view-structure.element.ts | 4 ++-- ...t-type-workspace-view-templates.element.ts | 4 ++-- .../documents/collection/manifests.ts | 2 +- ...ent-table-actions-column-layout.element.ts | 2 +- .../document-table-collection-view.element.ts | 9 ++++---- ...ut-document-granular-permission.element.ts | 8 ++++--- .../input-document/input-document.stories.ts | 2 +- .../entity-actions/create-blueprint.action.ts | 4 ++-- .../create/create-document-modal.element.ts | 7 ++++--- .../entity-actions/create/create.action.ts | 5 +++-- .../entity-actions/create/manifests.ts | 2 +- .../culture-and-hostnames.action.ts | 4 ++-- .../documents/entity-actions/manifests.ts | 2 +- .../entity-actions/permissions/manifests.ts | 2 +- .../permissions/permissions-modal.element.ts | 11 +++++----- .../permissions/permissions.action.ts | 7 ++++--- .../entity-actions/public-access.action.ts | 4 ++-- .../entity-actions/publish.action.ts | 4 ++-- .../entity-actions/rollback.action.ts | 4 ++-- .../entity-actions/unpublish.action.ts | 4 ++-- .../entity-bulk-actions/copy/copy.action.ts | 4 ++-- .../entity-bulk-actions/manifests.ts | 2 +- .../entity-bulk-actions/move/move.action.ts | 4 ++-- .../documents/documents/menu.manifests.ts | 2 +- ...document-property-dataset-context.token.ts | 2 +- .../document-property-dataset-context.ts | 11 +++++----- ...perty-editor-ui-document-picker.element.ts | 2 +- ...perty-editor-ui-document-picker.stories.ts | 2 +- .../document-recycle-bin-tree.repository.ts | 6 +++--- ...ent-recycle-bin-tree.server.data-source.ts | 5 +++-- .../tree/document-recycle-bin-tree.store.ts | 2 +- .../repository/document-item.store.ts | 4 ++-- .../repository/document.repository.ts | 15 +++++++------ .../documents/repository/document.store.ts | 4 ++-- .../sources/document-item.server.data.ts | 3 ++- .../sources/document.server.data.ts | 11 +++++----- .../document-tracked-reference.repository.ts | 2 +- .../tracked-reference/repository/manifests.ts | 2 +- .../tree/document-tree.repository.ts | 6 +++--- .../tree/document-tree.server.data-source.ts | 5 +++-- .../documents/tree/document-tree.store.ts | 2 +- .../tree-item/document-tree-item.context.ts | 2 +- .../tree-item/document-tree-item.element.ts | 4 ++-- .../documents/documents/tree/types.ts | 2 +- .../document-permission.repository.ts | 2 +- .../user-permissions/repository/manifests.ts | 2 +- .../document-workspace-editor.element.ts | 4 ++-- .../document-workspace-split-view.element.ts | 2 +- .../document-workspace.context-token.ts | 2 +- .../workspace/document-workspace.element.ts | 6 ++++-- .../workspace/document-workspace.stories.ts | 2 +- ...-workspace-view-edit-properties.element.ts | 5 +++-- ...ocument-workspace-view-edit-tab.element.ts | 2 +- .../document-workspace-view-edit.element.ts | 11 +++++----- ...ent-workspace-view-info-history.element.ts | 5 +++-- ...t-workspace-view-info-reference.element.ts | 4 ++-- .../document-workspace-view-info.element.ts | 4 ++-- .../document-workspace-view-info.stories.ts | 2 +- .../dashboard-health-check.element.ts | 8 ++++--- .../dashboard-health-check.stories.ts | 2 +- .../health-check-dashboard.context.ts | 2 +- .../health-check/health-check.context.ts | 7 ++++--- .../views/health-check-action.element.ts | 5 +++-- ...health-check-group-box-overview.element.ts | 10 +++++---- .../views/health-check-group.element.ts | 12 ++++++----- .../views/health-check-overview.element.ts | 5 +++-- .../donut-chart/donut-chart.element.ts | 2 +- .../donut-chart/donut-chart.stories.ts | 2 +- .../log-viewer-date-range-selector.element.ts | 5 +++-- .../repository/log-viewer.repository.ts | 7 ++++--- .../sources/log-viewer.server.data.ts | 9 ++++---- .../log-viewer/workspace/logviewer.context.ts | 14 +++++++------ .../logviewer/logviewer-workspace.element.ts | 3 ++- .../log-viewer-log-level-overview.element.ts | 5 +++-- .../log-viewer-log-types-chart.element.ts | 5 +++-- ...ewer-message-templates-overview.element.ts | 5 +++-- ...-viewer-saved-searches-overview.element.ts | 5 +++-- .../overview/log-overview-view.element.ts | 5 +++-- .../log-viewer-level-tag.element.ts | 4 ++-- ...og-viewer-log-level-filter-menu.element.ts | 5 +++-- .../components/log-viewer-message.element.ts | 8 ++++--- .../log-viewer-messages-list.element.ts | 8 ++++--- .../log-viewer-polling-button.element.ts | 7 ++++--- .../log-viewer-search-input-modal.element.ts | 4 ++-- .../log-viewer-search-input.element.ts | 14 +++++++------ .../views/search/log-search-view.element.ts | 3 ++- .../input-media-type.context.ts | 4 ++-- .../entity-actions/create/create.action.ts | 7 ++++--- .../entity-actions/create/manifests.ts | 2 +- ...media-type-create-options-modal.element.ts | 2 +- .../repository/detail/manifests.ts | 2 +- .../detail/media-type-detail.repository.ts | 4 ++-- .../media-type-detail.server.data-source.ts | 11 +++++----- .../detail/media-type-detail.store.ts | 4 ++-- .../media-types/repository/item/manifests.ts | 2 +- .../item/media-type-item.repository.ts | 4 ++-- .../media-type-item.server.data-source.ts | 3 ++- .../repository/item/media-type-item.store.ts | 4 ++-- .../media-types/repository/item/types.ts | 2 +- .../media/media-types/repository/utils.ts | 2 +- .../folder/media-type-folder.repository.ts | 7 ++++--- .../media-type-folder.server.data-source.ts | 2 +- .../media/media-types/tree/folder/types.ts | 4 ++-- .../tree/media-type-tree.repository.ts | 6 +++--- .../media-type-tree.server.data-source.ts | 5 +++-- .../media-types/tree/media-type-tree.store.ts | 6 +++--- .../packages/media/media-types/tree/types.ts | 4 ++-- .../src/packages/media/media-types/types.ts | 4 ++-- .../media-type-workspace-editor.element.ts | 10 +++++---- .../workspace/media-type-workspace.context.ts | 7 ++++--- ...-workspace-view-edit-properties.element.ts | 12 ++++++----- ...pe-workspace-view-edit-property.element.ts | 8 ++++--- ...ia-type-workspace-view-edit-tab.element.ts | 9 ++++---- .../media-type-workspace-view-edit.element.ts | 20 ++++++++++-------- ...a-type-workspace-view-structure.element.ts | 4 ++-- .../media-grid-collection-view.element.ts | 5 +++-- .../media-table-collection-view.element.ts | 3 ++- .../image-cropper-focus-setter.element.ts | 5 +++-- .../image-cropper.element.ts | 5 +++-- .../input-image-cropper.element.ts | 2 +- .../input-media/input-media.context.ts | 4 ++-- .../input-media/input-media.stories.ts | 2 +- .../entity-bulk-actions/copy/copy.action.ts | 2 +- .../media/entity-bulk-actions/manifests.ts | 2 +- .../entity-bulk-actions/move/move.action.ts | 5 +++-- .../entity-bulk-actions/trash/trash.action.ts | 5 +++-- .../src/packages/media/media/index.ts | 2 +- ...roperty-editor-ui-image-cropper.element.ts | 2 +- ...roperty-editor-ui-image-cropper.stories.ts | 2 +- ...or-ui-image-crops-configuration.element.ts | 2 +- ...or-ui-image-crops-configuration.stories.ts | 2 +- ...property-editor-ui-media-picker.stories.ts | 2 +- .../media/repository/media-item.store.ts | 4 ++-- .../media/repository/media.repository.ts | 15 +++++++------ .../media/media/repository/media.store.ts | 2 +- .../media-detail.server.data-source.ts | 2 +- .../sources/media-item.server.data-source.ts | 3 ++- .../media/media/tree/media-tree.repository.ts | 6 +++--- .../media/media/tree/media-tree.store.ts | 2 +- .../workspace/media-workspace.context.ts | 7 ++++--- .../workspace/media-workspace.element.ts | 2 +- .../workspace/media-workspace.stories.ts | 2 +- .../edit/media-edit-workspace-view.element.ts | 2 +- .../edit/media-edit-workspace-view.stories.ts | 2 +- .../info/media-info-workspace-view.element.ts | 2 +- .../info/media-info-workspace-view.stories.ts | 2 +- .../src/packages/media/menu.manifests.ts | 2 +- .../dashboard-members-welcome.stories.ts | 2 +- .../detail/member-group-detail.repository.ts | 2 +- .../detail/member-group-detail.store.ts | 2 +- .../tree/member-group-tree.repository.ts | 6 +++--- .../member-group-tree.server.data-source.ts | 5 +++-- .../tree/member-group-tree.store.ts | 2 +- .../packages/members/member-groups/types.ts | 2 +- .../member-group-workspace.stories.ts | 2 +- .../input-member-type.context.ts | 4 ++-- .../repository/member-type.repository.ts | 11 ++++++---- .../repository/member-type.store.ts | 2 +- .../sources/member-type.detail.server.data.ts | 2 +- .../tree/member-type-tree.repository.ts | 6 +++--- .../member-type-tree.server.data-source.ts | 5 +++-- .../tree/member-type-tree.store.ts | 2 +- .../packages/members/member-types/types.ts | 2 +- .../member-type-workspace.element.ts | 2 +- .../input-member/input-member.stories.ts | 2 +- .../detail/member-detail.repository.ts | 2 +- .../repository/detail/member-detail.store.ts | 2 +- .../members/tree/member-tree.repository.ts | 6 +++--- .../tree/member-tree.server.data-source.ts | 4 ++-- .../members/members/tree/member-tree.store.ts | 2 +- .../src/packages/members/members/types.ts | 2 +- .../workspace/member-workspace.context.ts | 2 +- .../workspace/member-workspace.stories.ts | 2 +- .../src/packages/members/menu.manifests.ts | 2 +- .../workspace-package-builder.element.ts | 8 ++++--- .../created-packages-section-view.element.ts | 5 +++-- .../packages-created-overview.element.ts | 8 ++++--- ...lled-packages-section-view-item.element.ts | 11 ++++++---- ...installed-packages-section-view.element.ts | 2 +- ...kages-market-place-section-view.element.ts | 2 +- .../package/repository/package.repository.ts | 8 ++++--- .../package/repository/package.store.ts | 2 +- .../repository/server-extension.controller.ts | 4 ++-- .../src/packages/packages/types.ts | 2 +- .../entity-actions/create.action.ts | 4 ++-- .../entity-actions/manifests.ts | 2 +- .../relation-types/repository/manifests.ts | 2 +- .../repository/relation-type.repository.ts | 15 +++++++------ .../repository/relation-type.store.ts | 2 +- .../sources/relation-type.server.data.ts | 7 ++++--- .../tree/relation-type-tree.repository.ts | 6 +++--- .../relation-type-tree.server.data-source.ts | 5 +++-- .../tree/relation-type-tree.store.ts | 2 +- .../relation-type-workspace-editor.element.ts | 5 +++-- .../relation-type-workspace.stories.ts | 2 +- ...pe-workspace-view-relation-type.element.ts | 4 ++-- ...pe-workspace-view-relation-type.stories.ts | 2 +- ...ace-view-relation-type-relation.element.ts | 6 +++--- ...ace-view-relation-type-relation.stories.ts | 2 +- .../relations/repository/manifests.ts | 2 +- .../repository/relation.repository.ts | 7 ++++--- .../dashboard-examine-management.element.ts | 4 ++-- .../dashboard-examine-management.stories.ts | 2 +- .../fields-settings-modal.element.ts | 5 +++-- .../views/section-view-examine-indexers.ts | 8 ++++--- .../views/section-view-examine-overview.ts | 5 +++-- .../views/section-view-examine-searchers.ts | 10 +++++---- .../search/umb-search-header-app.element.ts | 6 ++++-- .../dashboard-models-builder.element.ts | 5 +++-- .../dashboard-models-builder.stories.ts | 2 +- ...dashboard-performance-profiling.stories.ts | 2 +- .../dashboard-published-status.element.ts | 5 +++-- .../dashboard-published-status.stories.ts | 2 +- .../dashboard-settings-welcome.stories.ts | 2 +- .../telemetry/dashboard-telemetry.element.ts | 5 +++-- .../telemetry/dashboard-telemetry.stories.ts | 2 +- .../extension-root-workspace.element.ts | 6 ++++-- .../extension-root-workspace.stories.ts | 2 +- .../app-language-select.element.ts | 7 ++++--- .../app-language.context.ts | 6 +++--- .../app-language-select/manifests.ts | 2 +- .../input-language-picker.stories.ts | 2 +- .../language-create-entity-action.ts | 4 ++-- .../languages/entity-actions/manifests.ts | 2 +- .../language-picker-modal.element.ts | 7 ++++--- .../repository/language-item.store.ts | 4 ++-- .../repository/language.repository.ts | 15 +++++++------ .../languages/repository/language.store.ts | 4 ++-- .../sources/language-item.server.data.ts | 5 +++-- .../sources/language.server.data.ts | 7 ++++--- ...root-table-delete-column-layout.element.ts | 2 +- .../language-root-workspace.element.ts | 4 ++-- .../language-workspace-editor.element.ts | 5 +++-- ...language-details-workspace-view.element.ts | 7 ++++--- .../src/packages/settings/menu.manifests.ts | 2 +- .../packages/settings/section.manifests.ts | 3 +-- .../input-static-file.stories.ts | 2 +- .../modals/static-file-picker-modal.token.ts | 5 +++-- ...ty-editor-ui-static-file-picker.element.ts | 4 ++-- ...ty-editor-ui-static-file-picker.stories.ts | 2 +- .../tree/static-file-tree.repository.ts | 6 +++--- .../static-file-tree.server.data-source.ts | 4 ++-- .../tree/static-file-tree.store.ts | 2 +- .../src/packages/static-file/tree/types.ts | 2 +- .../tags-input/tags-input.element.ts | 5 +++-- .../tags-input/tags-input.stories.ts | 2 +- ...rty-editor-ui-tags-storage-type.element.ts | 4 ++-- ...rty-editor-ui-tags-storage-type.stories.ts | 2 +- .../tags/property-editor-ui-tags.element.ts | 4 ++-- .../tags/property-editor-ui-tags.stories.ts | 2 +- .../tags/repository/tag.repository.ts | 7 ++++--- .../src/packages/tags/repository/tag.store.ts | 2 +- .../code-editor/code-editor.controller.ts | 2 +- .../code-editor/code-editor.element.ts | 5 +++-- .../code-editor/code-editor.stories.ts | 5 +++-- .../templating/code-editor/themes/index.ts | 2 +- .../templating-insert-menu.element.ts | 14 +++++++------ .../src/packages/templating/menu.manifests.ts | 2 +- .../insert-choose-type-sidebar.element.ts | 7 ++++--- .../insert-section-input.element.ts | 3 ++- .../packages/templating/modals/manifests.ts | 2 +- .../partial-view-picker-modal.element.ts | 9 +++----- .../entity-actions/create/create.action.ts | 5 +++-- .../entity-actions/create/manifests.ts | 2 +- ...rtial-view-create-options-modal.element.ts | 5 +++-- .../create-from-snippet-modal.ts | 2 +- .../partial-views/entity-actions/manifests.ts | 2 +- .../entity-actions/rename/manifests.ts | 2 +- .../rename/rename-partial-view.repository.ts | 4 ++-- .../rename-partial-view.server.data-source.ts | 7 ++++--- .../partial-views/repository/manifests.ts | 2 +- .../partial-view-detail.repository.ts | 4 ++-- .../partial-view-detail.server.data-source.ts | 13 ++++++------ .../repository/partial-view-detail.store.ts | 4 ++-- .../folder/partial-view-folder.repository.ts | 7 ++++--- .../partial-view-folder.server.data-source.ts | 5 +++-- .../tree/partial-view-tree.repository.ts | 6 +++--- .../partial-view-tree.server.data-source.ts | 7 ++++--- .../tree/partial-view-tree.store.ts | 6 +++--- .../templating/partial-views/tree/types.ts | 2 +- .../templating/partial-views/types.ts | 2 +- .../partial-view-workspace-editor.element.ts | 7 ++++--- .../partial-view-workspace.context.ts | 3 ++- .../partial-view-workspace.element.ts | 2 +- .../entity-actions/create/create.action.ts | 5 +++-- .../entity-actions/create/manifests.ts | 2 +- .../script-create-options-modal.element.ts | 5 +++-- .../scripts/entity-actions/manifests.ts | 2 +- .../entity-actions/rename/manifests.ts | 2 +- .../rename/rename-script.repository.ts | 4 ++-- .../rename-script.server.data-source.ts | 7 ++++--- .../scripts/repository/manifests.ts | 2 +- .../repository/script-detail.repository.ts | 4 ++-- .../script-detail.server.data-source.ts | 11 +++++----- .../scripts/repository/script-detail.store.ts | 4 ++-- .../tree/folder/script-folder.repository.ts | 8 ++++--- .../script-folder.server.data-source.ts | 5 +++-- .../scripts/tree/script-tree.repository.ts | 4 ++-- .../tree/script-tree.server.data-source.ts | 7 ++++--- .../scripts/tree/script-tree.store.ts | 6 +++--- .../packages/templating/scripts/tree/types.ts | 2 +- .../src/packages/templating/scripts/types.ts | 2 +- .../script-workspace-editor.element.ts | 2 +- .../workspace/script-workspace.context.ts | 4 ++-- .../workspace/script-workspace.element.ts | 2 +- .../stylesheet-input.context.ts | 4 ++-- .../stylesheet-input.element.ts | 2 +- .../stylesheet-picker-modal.token.ts | 5 +++-- .../stylesheet-rule-input/manifests.ts | 2 +- .../stylesheet-rule-input.element.ts | 5 +++-- .../stylesheet-rule-settings-modal.token.ts | 2 +- .../entity-actions/create/create.action.ts | 5 +++-- .../entity-actions/create/manifests.ts | 2 +- ...stylesheet-create-options-modal.element.ts | 5 +++-- .../stylesheets/entity-actions/manifests.ts | 2 +- .../entity-actions/rename/manifests.ts | 2 +- .../rename/rename-stylesheet.repository.ts | 4 ++-- .../rename-stylesheet.server.data-source.ts | 5 +++-- .../item/stylesheet-item.repository.ts | 2 +- .../stylesheet-item.server.data-source.ts | 4 ++-- .../repository/item/stylesheet-item.store.ts | 2 +- .../stylesheets/repository/manifests.ts | 2 +- .../stylesheet-detail.repository.ts | 4 ++-- .../stylesheet-detail.server.data-source.ts | 11 +++++----- .../repository/stylesheet-detail.store.ts | 4 ++-- .../folder/stylesheet-folder.repository.ts | 7 ++++--- .../stylesheet-folder.server.data-source.ts | 5 +++-- .../tree/stylesheet-tree.repository.ts | 4 ++-- .../stylesheet-tree.server.data-source.ts | 7 ++++--- .../stylesheets/tree/stylesheet-tree.store.ts | 4 ++-- .../templating/stylesheets/tree/types.ts | 2 +- .../packages/templating/stylesheets/types.ts | 2 +- .../utils/stylesheet-rule-manager.ts | 2 +- .../stylesheet-workspace-editor.element.ts | 2 +- .../workspace/stylesheet-workspace.stories.ts | 2 +- ...heet-code-editor-workspace-view.element.ts | 5 +++-- ...t-rich-text-rule-workspace-view.element.ts | 8 +++---- .../input-template/input-template.element.ts | 6 ++++-- .../template-card/template-card.stories.ts | 2 +- .../entity-actions/create/create.action.ts | 2 +- .../templates/entity-actions/manifests.ts | 2 +- .../templating/templates/modals/manifests.ts | 2 +- .../templates/modals/modal-tokens.ts | 2 +- .../query-builder-filter.element.ts | 12 ++++++----- .../query-builder/query-builder.element.ts | 9 ++++---- .../templates/modals/query-builder/utils.ts | 7 ++++--- .../templates/repository/manifests.ts | 2 +- .../templates/repository/sources/index.ts | 2 +- .../sources/template.detail.server.data.ts | 7 ++++--- .../sources/template.item.server.data.ts | 3 ++- .../template.query-builder.server.data.ts | 3 ++- .../repository/template-item.store.ts | 4 ++-- .../repository/template.repository.ts | 16 ++++++++------ .../tree/template-tree.repository.ts | 6 +++--- .../tree/template-tree.server.data-source.ts | 5 +++-- .../templates/tree/template-tree.store.ts | 2 +- .../template-workspace-editor.element.ts | 7 ++++--- .../workspace/template-workspace.context.ts | 3 ++- .../src/packages/umbraco-news/manifests.ts | 2 +- .../umbraco-news-dashboard.stories.ts | 2 +- .../current-user-header-app.element.ts | 6 ++++-- .../current-user-history.store.ts | 2 +- .../user/current-user/current-user.context.ts | 4 ++-- .../current-user-modal.element.ts | 7 ++++--- .../user-profile-apps/manifests.ts | 2 +- .../user-profile-app-history.element.ts | 5 +++-- .../user-profile-app-profile.element.ts | 3 ++- .../user-profile-app-themes.element.ts | 8 ++++--- .../utils/is-current-user.function.ts | 2 +- .../change-password-modal.element.ts | 8 ++++--- .../user-group/collection/action/manifests.ts | 2 +- ...-group-table-name-column-layout.element.ts | 2 +- .../user/user-group/collection/manifests.ts | 2 +- .../collection/repository/manifests.ts | 2 +- .../user-group-collection.repository.ts | 11 +++++----- ...ser-group-collection.server.data-source.ts | 3 ++- .../user-group/collection/views/manifests.ts | 2 +- ...ser-group-table-collection-view.element.ts | 7 ++++--- .../user-group-input.stories.ts | 2 +- .../user-group-ref/user-group-ref.element.ts | 3 ++- .../user-group/entity-actions/manifests.ts | 2 +- .../delete/delete.action.ts | 3 ++- .../user-group-picker-modal.element.ts | 7 ++++--- .../user-group-item.server.data-source.ts | 3 ++- .../sources/user-group.server.data-source.ts | 9 ++++---- .../repository/user-group.repository.ts | 18 +++++++++------- .../user-group/repository/user-group.store.ts | 2 +- .../user-group-section-view.element.ts | 2 +- .../src/packages/user/user-group/types.ts | 4 ++-- ...r-group-default-permission-list.element.ts | 2 +- ...-group-granular-permission-list.element.ts | 2 +- .../user-group-workspace-editor.element.ts | 15 ++++++------- .../workspace/user-group-workspace.context.ts | 3 ++- ...y-user-permission-settings-list.element.ts | 10 +++++---- .../conditions/user-permission.condition.ts | 2 +- ...-user-permission-settings-modal.element.ts | 7 ++++--- .../action/create-user.collection-action.ts | 7 ++++--- .../user/user/collection/action/manifests.ts | 2 +- .../user/user/collection/manifests.ts | 2 +- .../user/collection/repository/manifests.ts | 2 +- .../user/user/collection/repository/types.ts | 4 ++-- .../repository/user-collection.repository.ts | 6 +++--- .../user-collection.server.data-source.ts | 7 ++++--- .../user-collection-header.element.ts | 9 ++++---- .../collection/user-collection.context.ts | 6 +++--- .../grid/user-grid-collection-view.element.ts | 7 ++++--- .../user/user/collection/views/manifests.ts | 2 +- .../user-table-collection-view.element.ts | 6 +++--- .../user-document-start-node.element.ts | 2 +- .../user-input/user-input.stories.ts | 2 +- .../user-media-start-node.element.ts | 2 +- .../user-permission-setting.element.ts | 2 +- .../user-allow-action-base.condition.ts | 6 +++--- .../user-allow-delete-action.condition.ts | 2 +- .../user-allow-disable-action.condition.ts | 2 +- .../user-allow-enable-action.condition.ts | 2 +- .../user-allow-unlock-action.condition.ts | 2 +- .../change-user-password.action.ts | 4 ++-- .../disable/disable-user.action.ts | 4 ++-- .../enable/enable-user.action.ts | 4 ++-- .../user/user/entity-actions/manifests.ts | 2 +- .../unlock/unlock-user.action.ts | 4 ++-- .../delete/delete.action.ts | 7 ++++--- .../disable/disable.action.ts | 4 ++-- .../enable/enable.action.ts | 4 ++-- .../user/entity-bulk-actions/manifests.ts | 2 +- .../set-group/set-group.action.ts | 7 ++++--- .../unlock/unlock.action.ts | 4 ++-- .../invite-user.collection-action.ts | 5 +++-- .../invite/collection-action/manifests.ts | 2 +- .../user/invite/entity-action/manifests.ts | 2 +- .../resend-invite.action.condition.ts | 2 +- .../resend-invite/resend-invite.action.ts | 4 ++-- .../modal/invite/user-invite-modal.element.ts | 2 +- .../resend-invite-to-user-modal.element.ts | 2 +- .../invite-user-server.data-source.ts | 7 ++++--- .../repository/invite-user.repository.ts | 2 +- .../user/user/invite/repository/manifests.ts | 2 +- .../user/user/invite/repository/types.ts | 6 +++--- .../create/user-create-modal.element.ts | 7 ++++--- .../user-create-success-modal.element.ts | 14 +++++++------ .../user-picker/user-picker-modal.element.ts | 8 ++++--- .../change-user-password.repository.ts | 4 ++-- .../detail/user-detail.repository.ts | 6 +++--- .../detail/user-detail.server.data-source.ts | 12 ++++++----- .../disable-user.server.data-source.ts | 2 +- .../user/user/repository/disable/types.ts | 2 +- .../enable/enable-user.repository.ts | 2 +- .../enable/enable-user.server.data-source.ts | 2 +- .../user/user/repository/enable/types.ts | 2 +- .../user/user/repository/item/manifests.ts | 2 +- .../repository/item/user-item.repository.ts | 2 +- .../item/user-item.server.data-source.ts | 3 ++- .../user-set-group.server.data-source.ts | 2 +- .../user/user/repository/unlock/types.ts | 2 +- .../unlock/unlock-user.repository.ts | 2 +- .../unlock/unlock-user.server.data-source.ts | 2 +- .../user/repository/user-repository-base.ts | 9 +++++--- .../user/user/repository/user.repository.ts | 2 +- .../user/user/repository/user.store.ts | 4 ++-- .../src/packages/user/user/types.ts | 2 +- .../user-workspace-access-settings.element.ts | 10 ++++----- .../user-workspace-info.element.ts | 2 +- ...user-workspace-profile-settings.element.ts | 6 +++--- .../user-workspace-editor.element.ts | 7 ++++--- .../user/workspace/user-workspace.context.ts | 5 +++-- .../src/packages/user/utils.test.ts | 2 +- .../src/packages/user/utils.ts | 4 ++-- .../src/shared/auth/auth-flow.ts | 7 ++++--- .../src/shared/auth/auth.context.interface.ts | 2 +- .../src/shared/auth/auth.context.token.ts | 2 +- .../src/shared/auth/auth.context.ts | 4 ++-- .../src/shared/icon-registry/icon.stories.ts | 2 +- .../shared/resources/resource.controller.ts | 10 +++------ 1120 files changed, 2631 insertions(+), 2142 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts index d89f99bf25..ed00430c48 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.context.ts @@ -1,6 +1,6 @@ -import { UmbAppContextConfig } from './app-context-config.interface.js'; +import type { UmbAppContextConfig } from './app-context-config.interface.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbAppContext extends UmbBaseController { diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts index c1f4e35d4f..4786301fa7 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts @@ -1,7 +1,8 @@ import type { UmbAppErrorElement } from './app-error.element.js'; import { UmbAppContext } from './app.context.js'; import { UmbServerConnection } from './server-connection.js'; -import { UMB_AUTH_CONTEXT, UmbAuthContext } from '@umbraco-cms/backoffice/auth'; +import type { UMB_AUTH_CONTEXT} from '@umbraco-cms/backoffice/auth'; +import { UmbAuthContext } from '@umbraco-cms/backoffice/auth'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UUIIconRegistryEssential } from '@umbraco-cms/backoffice/external/uui'; import { UmbIconRegistry } from '@umbraco-cms/backoffice/icon'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts index a2578228df..6d6de92b73 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.context.ts @@ -5,7 +5,7 @@ import { UmbExtensionsManifestInitializer, } from '@umbraco-cms/backoffice/extension-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { type ManifestSection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; export class UmbBackofficeContext extends UmbContextBase { diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts index 480b8cb7eb..670e5afc46 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbBackofficeElement } from './backoffice.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts index 248f0b1da1..456199851a 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-apps.element.ts @@ -1,4 +1,5 @@ -import { css, CSSResultGroup, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-backoffice-header-apps') export class UmbBackofficeHeaderAppsElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts index d522025478..659a79fbaa 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header-sections.element.ts @@ -1,9 +1,10 @@ import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js'; import type { UmbBackofficeContext } from '../backoffice.context.js'; -import { css, CSSResultGroup, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbExtensionManifestInitializer } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbExtensionManifestInitializer } from '@umbraco-cms/backoffice/extension-api'; @customElement('umb-backoffice-header-sections') export class UmbBackofficeHeaderSectionsElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts index d8f77e99ce..3061130528 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-header.element.ts @@ -1,4 +1,5 @@ -import { css, CSSResultGroup, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-backoffice-header') diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts index 90bd823fa9..e4f01ee751 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/components/backoffice-main.element.ts @@ -1,9 +1,11 @@ -import { UmbBackofficeContext, UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js'; +import type { UmbBackofficeContext} from '../backoffice.context.js'; +import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbSectionContext, UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; import type { UmbRoute, UmbRouterSlotChangeEvent } from '@umbraco-cms/backoffice/router'; import type { ManifestSection, UmbSectionElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbExtensionManifestInitializer, createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbExtensionManifestInitializer} from '@umbraco-cms/backoffice/extension-api'; +import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-backoffice-main') diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/server-extension-registrator.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/server-extension-registrator.controller.ts index 742340f313..da091c418f 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/server-extension-registrator.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/server-extension-registrator.controller.ts @@ -1,9 +1,10 @@ import { PackageResource, OpenAPI } from '@umbraco-cms/backoffice/backend-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { ManifestBase, isManifestBaseType } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestBase} from '@umbraco-cms/backoffice/extension-api'; +import { isManifestBaseType } from '@umbraco-cms/backoffice/extension-api'; // TODO: consider if this can be replaced by the new extension controllers export class UmbServerExtensionRegistrator extends UmbBaseController { diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts index 7b0a67c325..d5ab966a35 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.element.ts @@ -1,9 +1,12 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; -import { css, CSSResultGroup, html, customElement, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbInstallerContext} from '../installer.context.js'; +import { UMB_INSTALLER_CONTEXT } from '../installer.context.js'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { ConsentLevelPresentationModel, - TelemetryResponseModel, + TelemetryResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { TelemetryLevelModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts index 4ef5d96528..27786374b3 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/consent/installer-consent.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { installerContextProvider } from '../shared/utils.story-helpers.js'; import type { UmbInstallerConsentElement } from './installer-consent.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts index c341245d6d..df4993346f 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.element.ts @@ -1,8 +1,10 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; -import { UUIButtonElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbInstallerContext} from '../installer.context.js'; +import { UMB_INSTALLER_CONTEXT } from '../installer.context.js'; +import type { UUIButtonElement } from '@umbraco-cms/backoffice/external/uui'; +import type { + CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; import { css, - CSSResultGroup, html, nothing, customElement, @@ -11,12 +13,13 @@ import { state, } from '@umbraco-cms/backoffice/external/lit'; -import { - ApiError, +import type { DatabaseInstallResponseModel, DatabaseSettingsPresentationModel, - InstallResource, - ProblemDetails, + ProblemDetails} from '@umbraco-cms/backoffice/backend-api'; +import { + ApiError, + InstallResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecute } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts index 0620957353..ffbe94e609 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/database/installer-database.stories.ts @@ -1,6 +1,6 @@ import './installer-database.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { installerContextProvider } from '../shared/utils.story-helpers.js'; import type { UmbInstallerDatabaseElement } from './installer-database.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts index dc3449ac99..8694541d81 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts @@ -1,6 +1,8 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; -import { css, CSSResultGroup, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbInstallerContext} from '../installer.context.js'; +import { UMB_INSTALLER_CONTEXT } from '../installer.context.js'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-installer-error') diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts index b741f96946..764377978c 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { installerContextProvider } from '../shared/utils.story-helpers.js'; import { UmbInstallerContext } from '../installer.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts index 1ca5895117..43568ce8ff 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.context.ts @@ -1,9 +1,10 @@ import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import { +import type { InstallVResponseModel, - InstallResource, InstallSettingsResponseModel, - ProblemDetails, + ProblemDetails} from '@umbraco-cms/backoffice/backend-api'; +import { + InstallResource, TelemetryLevelModel, } from '@umbraco-cms/backoffice/backend-api'; import { tryExecute } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts index 30a47a3eb0..94e27b85e8 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.element.ts @@ -1,5 +1,6 @@ import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from './installer.context.js'; -import { css, CSSResultGroup, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import './consent/installer-consent.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts index a98d286b81..97d1bed50a 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installer.stories.ts @@ -1,4 +1,4 @@ -import { Meta } from '@storybook/web-components'; +import type { Meta } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts index 6f64b22b77..b5a14a6111 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.element.ts @@ -1,4 +1,5 @@ -import { css, CSSResultGroup, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-installer-installing') export class UmbInstallerInstallingElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts index 84843b9b02..6bd6dea44e 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/installing/installer-installing.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { installerContextProvider } from '../shared/utils.story-helpers.js'; import type { UmbInstallerInstallingElement } from './installer-installing.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts index 10e4394320..3ddba2d708 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.element.ts @@ -1,4 +1,5 @@ -import { css, CSSResultGroup, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, LitElement, customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-installer-layout') export class UmbInstallerLayoutElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts index 97c6b4d8b3..ae85e969ce 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/shared/layout/installer-layout.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbInstallerLayoutElement } from './installer-layout.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts index f12bacc84d..e1e13f2808 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.element.ts @@ -1,5 +1,7 @@ -import { UmbInstallerContext, UMB_INSTALLER_CONTEXT } from '../installer.context.js'; -import { css, CSSResultGroup, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbInstallerContext} from '../installer.context.js'; +import { UMB_INSTALLER_CONTEXT } from '../installer.context.js'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-installer-user') diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.stories.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.stories.ts index 1e206c351d..5e7fb00146 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/user/installer-user.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { installerContextProvider } from '../shared/utils.story-helpers.js'; import type { UmbInstallerUserElement } from './installer-user.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts index 8640a70ffd..b421c84536 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts @@ -1,13 +1,14 @@ +import type { + CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; import { css, - CSSResultGroup, html, LitElement, customElement, property, ifDefined, } from '@umbraco-cms/backoffice/external/lit'; -import { UpgradeSettingsResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UpgradeSettingsResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @element umb-upgrader-view diff --git a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts index 7d7073d692..4a7ef907ef 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts @@ -1,5 +1,6 @@ import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UpgradeResource, UpgradeSettingsResponseModel, ApiError } from '@umbraco-cms/backoffice/backend-api'; +import type { UpgradeSettingsResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UpgradeResource, ApiError } from '@umbraco-cms/backoffice/backend-api'; import { tryExecute } from '@umbraco-cms/backoffice/resources'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts index 204c2c2ae2..d299c3a9af 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/context-base.class.ts @@ -1,5 +1,5 @@ -import { type UmbContextToken } from '../context-api/index.js'; -import { type UmbControllerHost } from '../controller-api/index.js'; +import type { UmbContextToken } from '../context-api/index.js'; +import type { UmbControllerHost } from '../controller-api/index.js'; import { UmbBaseController } from './controller-base.class.js'; /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts index a37142d8a1..00200fec9c 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/controller-base.class.ts @@ -1,4 +1,4 @@ -import { type UmbController } from '../controller-api/controller.interface.js'; +import type { UmbController } from '../controller-api/controller.interface.js'; import { UmbClassMixin } from './index.js'; /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts index f2e5388c63..934a3c2801 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts @@ -1,6 +1,6 @@ -import { UmbContextToken } from '../token/context-token.js'; +import type { UmbContextToken } from '../token/context-token.js'; import { UmbContextConsumer } from './context-consumer.js'; -import { UmbContextCallback } from './context-request.event.js'; +import type { UmbContextCallback } from './context-request.event.js'; import type { UmbControllerHost, UmbController } from '@umbraco-cms/backoffice/controller-api'; export class UmbContextConsumerController diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts index 0c23fc4c55..73ac87cd6e 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.test.ts @@ -2,7 +2,8 @@ import { expect, oneEvent } from '@open-wc/testing'; import { UmbContextProvider } from '../provide/context-provider.js'; import { UmbContextToken } from '../token/context-token.js'; import { UmbContextConsumer } from './context-consumer.js'; -import { UmbContextRequestEventImplementation, UMB_CONTENT_REQUEST_EVENT_TYPE } from './context-request.event.js'; +import type { UmbContextRequestEventImplementation} from './context-request.event.js'; +import { UMB_CONTENT_REQUEST_EVENT_TYPE } from './context-request.event.js'; const testContextAlias = 'my-test-context'; const testContextAliasAndApiAlias = 'my-test-context#testApi'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts index d73ae9e2ed..5f555f69e4 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts @@ -1,11 +1,12 @@ -import { UmbContextDiscriminator, UmbContextToken } from '../token/context-token.js'; +import type { UmbContextDiscriminator, UmbContextToken } from '../token/context-token.js'; import { isUmbContextProvideEventType, //isUmbContextUnprovidedEventType, UMB_CONTEXT_PROVIDE_EVENT_TYPE, //umbContextUnprovidedEventType, } from '../provide/context-provide.event.js'; -import { UmbContextRequestEventImplementation, UmbContextCallback } from './context-request.event.js'; +import type { UmbContextCallback } from './context-request.event.js'; +import { UmbContextRequestEventImplementation } from './context-request.event.js'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.test.ts index e0c7c3e911..6a7af17917 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.test.ts @@ -1,5 +1,6 @@ import { expect } from '@open-wc/testing'; -import { UmbContextRequestEventImplementation, UmbContextRequestEvent } from './context-request.event.js'; +import type { UmbContextRequestEvent } from './context-request.event.js'; +import { UmbContextRequestEventImplementation } from './context-request.event.js'; describe('UmbContextRequestEvent', () => { const contextRequestCallback = () => { diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.test.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.test.ts index a7c3edfbe4..d8fdc43bc6 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.test.ts @@ -1,5 +1,6 @@ import { expect } from '@open-wc/testing'; -import { UmbContextProvideEventImplementation, UmbContextProvideEvent } from './context-provide.event.js'; +import type { UmbContextProvideEvent } from './context-provide.event.js'; +import { UmbContextProvideEventImplementation } from './context-provide.event.js'; describe('UmbContextProvideEvent', () => { const event: UmbContextProvideEvent = new UmbContextProvideEventImplementation('my-test-context-alias'); diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts index 348b813880..072ec1342b 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provide.event.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../token/context-token.js'; +import type { UmbContextToken } from '../token/context-token.js'; export const UMB_CONTEXT_PROVIDE_EVENT_TYPE = 'umb:context-provide'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts index 1b2ecac03c..fd68e8691f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts @@ -1,4 +1,4 @@ -import { UmbContextToken } from '../token/context-token.js'; +import type { UmbContextToken } from '../token/context-token.js'; import { UmbContextProvider } from './context-provider.js'; import type { UmbControllerHost, UmbController } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.ts index b965b9d6e4..c31a9e8f44 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.element.ts @@ -1,5 +1,7 @@ -import { UmbControllerHostElement, UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; -import { UmbContextProviderController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbControllerHostElement} from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; // TODO: There is some circular reference from this to Controller-api which is not good. We should move this elsewhere as we do not encourage the use of this element. Its only purpose is within Storybook and tests. /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts index 0c26920c91..097dfdf002 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts @@ -1,9 +1,10 @@ +import type { + UmbContextRequestEvent} from '../consume/context-request.event.js'; import { - UmbContextRequestEvent, UMB_CONTENT_REQUEST_EVENT_TYPE, UMB_DEBUG_CONTEXT_EVENT_TYPE, } from '../consume/context-request.event.js'; -import { UmbContextToken } from '../token/context-token.js'; +import type { UmbContextToken } from '../token/context-token.js'; import { UmbContextProvideEventImplementation, //UmbContextUnprovidedEventImplementation, diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts index dcf51c0277..75264a36bd 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.element.ts @@ -1,4 +1,5 @@ -import { UmbControllerHostElement, UmbControllerHostElementMixin } from './controller-host-element.mixin.js'; +import type { UmbControllerHostElement} from './controller-host-element.mixin.js'; +import { UmbControllerHostElementMixin } from './controller-host-element.mixin.js'; export class UmbControllerHostProviderElement extends UmbControllerHostElementMixin(HTMLElement) diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.test.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.test.ts index a901b0291c..ac4b1044c4 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host-provider.test.ts @@ -1,6 +1,7 @@ import { expect, fixture, html } from '@open-wc/testing'; import { UmbControllerHostProviderElement } from './controller-host-provider.element.js'; -import { UmbControllerHostElement, UmbControllerHostElementMixin } from './controller-host-element.mixin.js'; +import type { UmbControllerHostElement} from './controller-host-element.mixin.js'; +import { UmbControllerHostElementMixin } from './controller-host-element.mixin.js'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbContextConsumerController, UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts index b91d443105..e79ecac7be 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.mixin.ts @@ -1,5 +1,5 @@ import type { ClassConstructor } from '../extension-api/types/utils.js'; -import { UmbControllerHost } from './controller-host.interface.js'; +import type { UmbControllerHost } from './controller-host.interface.js'; import type { UmbController } from './controller.interface.js'; declare class UmbControllerHostBaseDeclaration implements Omit { diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.test.ts index a0fb00693b..e00bf00316 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller.test.ts @@ -1,8 +1,8 @@ import { expect } from '@open-wc/testing'; import { type UmbControllerHostElement, UmbControllerHostElementMixin } from './controller-host-element.mixin.js'; import { UmbControllerHostMixin } from './controller-host.mixin.js'; -import { type UmbControllerAlias } from './controller-alias.type.js'; -import { type UmbControllerHost } from './controller-host.interface.js'; +import type { UmbControllerAlias } from './controller-alias.type.js'; +import type { UmbControllerHost } from './controller-host.interface.js'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('test-my-controller-host') diff --git a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts index 1c4cd6285c..3bc366e655 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts @@ -1,15 +1,16 @@ import { UmbLocalizeController } from '@umbraco-cms/backoffice/localization-api'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/extension-api'; -import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { +import { UmbControllerHostElementMixin , UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbContextToken, - UmbContextCallback, + UmbContextCallback} from '@umbraco-cms/backoffice/context-api'; +import { UmbContextConsumerController, UmbContextProviderController, } from '@umbraco-cms/backoffice/context-api'; -import { ObserverCallback, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { ObserverCallback} from '@umbraco-cms/backoffice/observable-api'; +import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; export declare class UmbElement extends UmbControllerHostElement { /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/condition-controller-arguments.type.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/condition-controller-arguments.type.ts index 47e3718dae..550ef08a54 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/condition-controller-arguments.type.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/condition-controller-arguments.type.ts @@ -1,4 +1,4 @@ -import { UmbConditionConfigBase } from '../types/index.js'; +import type { UmbConditionConfigBase } from '../types/index.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export type UmbConditionControllerArguments< diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/extension-condition.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/extension-condition.interface.ts index 446d3b2d03..bdd9e88ba3 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/extension-condition.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/condition/extension-condition.interface.ts @@ -1,5 +1,5 @@ import type { UmbConditionConfigBase } from '../types/index.js'; -import { UmbController } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbController } from '@umbraco-cms/backoffice/controller-api'; export interface UmbExtensionCondition extends UmbController { readonly permitted: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.test.ts index defda3c310..934f74f0e6 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.test.ts @@ -7,15 +7,16 @@ import type { } from '../types/index.js'; import { UmbExtensionRegistry } from '../registry/extension.registry.js'; import type { UmbExtensionCondition } from '../condition/extension-condition.interface.js'; +import type { + UmbControllerHostElement} from '../../controller-api/controller-host-element.mixin.js'; import { - UmbControllerHostElement, UmbControllerHostElementMixin, } from '../../controller-api/controller-host-element.mixin.js'; import { UmbBaseExtensionInitializer } from './index.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbSwitchCondition } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @customElement('umb-test-controller-host') export class UmbTestControllerHostElement extends UmbControllerHostElementMixin(HTMLElement) {} diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts index 8a2a17358d..7d689422ed 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts @@ -1,14 +1,14 @@ import type { UmbExtensionCondition } from '../condition/extension-condition.interface.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { - type ManifestCondition, - type ManifestWithDynamicConditions, - type UmbExtensionRegistry, - createExtensionApi, +import { createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbConditionConfigBase, + ManifestCondition, + ManifestWithDynamicConditions, + UmbExtensionRegistry, } from '@umbraco-cms/backoffice/extension-api'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; /** * This abstract Controller holds the core to manage a single Extension. diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.test.ts index c45eb296aa..494388266e 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.test.ts @@ -1,10 +1,12 @@ import { expect, fixture } from '@open-wc/testing'; import { UmbExtensionRegistry } from '../registry/extension.registry.js'; -import { ManifestCondition, ManifestWithDynamicConditions, UmbConditionConfigBase } from '../types/index.js'; -import { UmbExtensionCondition } from '../condition/extension-condition.interface.js'; -import { PermittedControllerType, UmbBaseExtensionInitializer, UmbBaseExtensionsInitializer } from './index.js'; +import type { ManifestCondition, ManifestWithDynamicConditions, UmbConditionConfigBase } from '../types/index.js'; +import type { UmbExtensionCondition } from '../condition/extension-condition.interface.js'; +import type { PermittedControllerType} from './index.js'; +import { UmbBaseExtensionInitializer, UmbBaseExtensionsInitializer } from './index.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbControllerHost, UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost} from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-test-controller-host') diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts index 4d8f579ec4..b962b7777b 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts @@ -1,4 +1,4 @@ -import { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import type { ManifestBase, @@ -6,7 +6,7 @@ import type { UmbExtensionRegistry, } from '@umbraco-cms/backoffice/extension-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export type PermittedControllerType = ControllerType & { manifest: Required>; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts index dddca2a2ba..a959deb3be 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.controller.ts @@ -3,7 +3,7 @@ import type { UmbApi } from '../models/api.interface.js'; import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; import type { ManifestApi, ManifestCondition } from '../types/index.js'; import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** * This Controller manages a single Extension and its API instance. diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.test.ts index a9bf451556..469d237d91 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-api-initializer.test.ts @@ -1,13 +1,10 @@ import { expect, fixture } from '@open-wc/testing'; import { UmbExtensionRegistry } from '../registry/extension.registry.js'; -import { ManifestApi, ManifestWithDynamicConditions } from '../types/index.js'; +import type { ManifestApi, ManifestWithDynamicConditions } from '../types/index.js'; import { UmbExtensionApiInitializer } from './index.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { - type UmbControllerHost, - UmbControllerHostElement, - UmbControllerHostElementMixin, -} from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; import { type ManifestSection, UmbSwitchCondition } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts index a7a7566212..8b397dc3fa 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.controller.ts @@ -1,8 +1,8 @@ import { createExtensionElement } from '../functions/create-extension-element.function.js'; -import { UmbExtensionRegistry } from '../registry/extension.registry.js'; -import { ManifestCondition, ManifestWithDynamicConditions } from '../types/index.js'; +import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; +import type { ManifestCondition, ManifestWithDynamicConditions } from '../types/index.js'; import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** * This Controller manages a single Extension and its Element. diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.test.ts index ba82268e31..a76dffd077 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extension-element-initializer.test.ts @@ -1,7 +1,8 @@ import { expect, fixture } from '@open-wc/testing'; import { UmbExtensionRegistry } from '../registry/extension.registry.js'; import { UmbExtensionElementInitializer } from './index.js'; -import { UmbControllerHostElement, UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement} from '@umbraco-cms/backoffice/controller-api'; +import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; import { type ManifestSection, UmbSwitchCondition } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts index 1f1c40a75a..dbd23b5bc1 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-api-initializer.controller.ts @@ -1,10 +1,10 @@ -import { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { type PermittedControllerType, UmbBaseExtensionsInitializer, } from './base-extensions-initializer.controller.js'; import { UmbExtensionApiInitializer } from './extension-api-initializer.controller.js'; -import { type UmbExtensionRegistry, ManifestApi, ManifestBase } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestApi, ManifestBase, UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts index 7b6592bad4..cdc81163b3 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-manifest-initializer.controller.ts @@ -4,8 +4,8 @@ import { type PermittedControllerType, UmbBaseExtensionsInitializer, } from './base-extensions-initializer.controller.js'; -import { type ManifestBase, type UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { ManifestBase, UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** */ diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.function.ts index 9a31cb7496..2c2264efaf 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.function.ts @@ -1,5 +1,5 @@ -import { UmbApi } from '../models/api.interface.js'; -import { ManifestApi, ManifestElementAndApi } from '../types/base.types.js'; +import type { UmbApi } from '../models/api.interface.js'; +import type { ManifestApi, ManifestElementAndApi } from '../types/base.types.js'; import { loadManifestApi } from './load-manifest-api.function.js'; export async function createExtensionApi( diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.test.ts index cabef4207a..5129c098c3 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-api.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; -import { ManifestApi } from '../types/index.js'; -import { UmbApi } from '../models/api.interface.js'; +import type { ManifestApi } from '../types/index.js'; +import type { UmbApi } from '../models/api.interface.js'; import { createExtensionApi } from './create-extension-api.function.js'; class UmbExtensionApiTrueTestClass implements UmbApi { diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.function.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.function.ts index 05544a62e0..82504d1c38 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.function.ts @@ -1,4 +1,4 @@ -import { ManifestElement, ManifestElementAndApi } from '../types/base.types.js'; +import type { ManifestElement, ManifestElementAndApi } from '../types/base.types.js'; import { loadManifestElement } from './load-manifest-element.function.js'; export async function createExtensionElement( diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts index c3e76ec2e4..fca6483987 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/create-extension-element.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import { ManifestElement, ManifestElementAndApi } from '../types/index.js'; +import type { ManifestElement, ManifestElementAndApi } from '../types/index.js'; import { createExtensionElement } from './create-extension-element.function.js'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts index e48e049bb0..d3af968dc7 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts @@ -1,8 +1,8 @@ import type { ManifestBase, ManifestBundle } from '../types/index.js'; -import { UmbExtensionRegistry } from '../registry/extension.registry.js'; +import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; import { loadManifestPlainJs } from '../functions/load-manifest-plain-js.function.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbBundleExtensionInitializer extends UmbBaseController { #extensionRegistry; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts index c7a5a8145b..6ff6c69576 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts @@ -1,8 +1,8 @@ import type { ManifestEntryPoint } from '../types/index.js'; -import { UmbExtensionRegistry } from '../registry/extension.registry.js'; +import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; import { hasInitExport, loadManifestPlainJs } from '../functions/index.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbElement } from '@umbraco-cms/backoffice/element-api'; +import type { UmbElement } from '@umbraco-cms/backoffice/element-api'; export class UmbEntryPointExtensionInitializer extends UmbBaseController { #host; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/entry-point.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/entry-point.interface.ts index 43fe10fa8d..7359ae0865 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/entry-point.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/models/entry-point.interface.ts @@ -1,5 +1,5 @@ import type { UmbExtensionRegistry } from '../registry/extension.registry.js'; -import { ManifestBase } from '../types/index.js'; +import type { ManifestBase } from '../types/index.js'; import type { UmbElement } from '@umbraco-cms/backoffice/element-api'; export type UmbEntryPointOnInit = (host: UmbElement, extensionRegistry: UmbExtensionRegistry) => void; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 1d0b0fe184..2a86b6b220 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -1,9 +1,10 @@ import type { ManifestBase, ManifestKind } from '../types/index.js'; -import { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; +import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { UmbBasicState } from '@umbraco-cms/backoffice/observable-api'; +import type { + Observable} from '@umbraco-cms/backoffice/external/rxjs'; import { map, - Observable, distinctUntilChanged, combineLatest, of, diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.test.ts index fe57d093ef..4a64d36c92 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.test.ts @@ -1,9 +1,10 @@ import { aTimeout, elementUpdated, expect, fixture, html } from '@open-wc/testing'; -import { DefaultLocalizationSet, LocalizationSet, registerLocalization, localizations } from './manager.js'; +import type { DefaultLocalizationSet, LocalizationSet} from './manager.js'; +import { registerLocalization, localizations } from './manager.js'; import { UmbLocalizeController } from './localize.controller.js'; import { LitElement, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @customElement('umb-localize-controller-host') class UmbLocalizeControllerHostElement extends UmbElementMixin(LitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.ts index ee09d487b5..09d8054575 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.ts @@ -11,17 +11,18 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import { +import type { DefaultLocalizationSet, FunctionParams, - LocalizationSet, + LocalizationSet} from './manager.js'; +import { connectedElements, documentDirection, documentLanguage, fallback, localizations, } from './manager.js'; -import { UmbController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; const LocalizeControllerAlias = Symbol(); /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts index 18105e8b4e..dad7fbb4c5 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts @@ -1,4 +1,4 @@ -import { Observable, Subscription } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable, Subscription } from '@umbraco-cms/backoffice/external/rxjs'; export type ObserverCallbackStack = { next: (_value: T) => void; diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts index eeefbf99c8..984c673935 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/utils/create-observable-part.function.ts @@ -1,7 +1,8 @@ -import { MemoizationFunction } from '../types/memoization-function.type.js'; -import { MappingFunction } from '../types/mapping-function.type.js'; +import type { MemoizationFunction } from '../types/memoization-function.type.js'; +import type { MappingFunction } from '../types/mapping-function.type.js'; import { defaultMemoization } from './default-memoization.function.js'; -import { distinctUntilChanged, map, Observable, shareReplay } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable} from '@umbraco-cms/backoffice/external/rxjs'; +import { distinctUntilChanged, map, shareReplay } from '@umbraco-cms/backoffice/external/rxjs'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts index 6bd136e8a3..730cd6943a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/audit-log.data.ts @@ -1,8 +1,9 @@ import { data as userData } from './user/user.data.js'; import { data as documentData } from './document.data.js'; -import { +import type { AuditLogResponseModel, - AuditLogWithUsernameResponseModel, + AuditLogWithUsernameResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { AuditTypeModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index 52e579ad51..81b2e99b7e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -1,4 +1,4 @@ -import { +import type { DataTypeItemResponseModel, DataTypeResponseModel, DataTypeTreeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts index 85a1171671..907d85b5cc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts @@ -4,9 +4,10 @@ import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; import { folderTreeItemMapper } from '../utils.js'; import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; -import { UmbMockDataTypeModel, data } from './data-type.data.js'; +import type { UmbMockDataTypeModel} from './data-type.data.js'; +import { data } from './data-type.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { +import type { CreateDataTypeRequestModel, CreateFolderRequestModel, DataTypeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 5331ef5c05..676aea8ace 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -1,8 +1,9 @@ -import { - ContentTypeCompositionTypeModel, +import type { DocumentTypeItemResponseModel, DocumentTypeResponseModel, - DocumentTypeTreeItemResponseModel, + DocumentTypeTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { + ContentTypeCompositionTypeModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbMockDocumentTypeModelHack = DocumentTypeResponseModel & diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index 546af3a30e..17d38a17c8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -3,9 +3,10 @@ import { UmbMockEntityFolderManager } from '../entity/entity-folder.manager.js'; import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; -import { UmbMockDocumentTypeModel, data } from './document-type.data.js'; +import type { UmbMockDocumentTypeModel} from './document-type.data.js'; +import { data } from './document-type.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { +import type { CreateDocumentTypeRequestModel, CreateFolderRequestModel, DocumentTypeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 3fde647e18..ad24090e2a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -2,9 +2,8 @@ import { umbDocumentTypeMockDb } from './document-type/document-type.db.js'; import { umbUserPermissionData } from './user-permission.data.js'; import { UmbEntityData } from './entity.data.js'; import { createDocumentTreeItem } from './utils.js'; -import { UmbMockDocumentTypeModel } from './document-type/document-type.data.js'; -import { - ContentStateModel, +import type { UmbMockDocumentTypeModel } from './document-type/document-type.data.js'; +import type { DocumentItemResponseModel, DocumentResponseModel, DocumentTreeItemResponseModel, @@ -12,7 +11,9 @@ import { PagedDocumentTreeItemResponseModel, PagedDocumentTypeResponseModel, PagedRecycleBinItemResponseModel, - PublishDocumentRequestModel, + PublishDocumentRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + ContentStateModel, PublishedStateModel, } from '@umbraco-cms/backoffice/backend-api'; import { UMB_DOCUMENT_ENTITY_TYPE } from '@umbraco-cms/backoffice/document'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts index c5436a0e15..1a94a9b629 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity-tree.data.ts @@ -1,5 +1,5 @@ -import { UmbEntityData } from './entity.data.js'; -import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbEntityData } from './entity.data.js'; +import type { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; export class UmbEntityTreeData { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts index 9bcca3d802..121808adcc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-detail.manager.ts @@ -1,4 +1,4 @@ -import { UmbEntityMockDbBase } from './entity-base.js'; +import type { UmbEntityMockDbBase } from './entity-base.js'; export class UmbMockEntityDetailManager { #db: UmbEntityMockDbBase; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts index dd11be95a2..432f5b4a97 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts @@ -1,5 +1,5 @@ -import { UmbEntityMockDbBase } from './entity-base.js'; -import { +import type { UmbEntityMockDbBase } from './entity-base.js'; +import type { CreateFolderRequestModel, FolderResponseModel, FolderTreeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts index 7d3219e7b5..0a5f1bccbb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-item.manager.ts @@ -1,4 +1,4 @@ -import { UmbData } from '../data.js'; +import type { UmbData } from '../data.js'; export class UmbMockEntityItemManager { #db: UmbData; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts index baae238df4..2628bda298 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts @@ -1,6 +1,6 @@ -import { UmbEntityMockDbBase } from './entity-base.js'; +import type { UmbEntityMockDbBase } from './entity-base.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMockEntityTreeManager> { #db: UmbEntityMockDbBase; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/examine.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/examine.data.ts index a3d2414098..f096f16438 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/examine.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/examine.data.ts @@ -1,8 +1,9 @@ -import { - HealthStatusModel, +import type { IndexResponseModel, PagedIndexResponseModel, - SearchResultResponseModel, + SearchResultResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { + HealthStatusModel } from '@umbraco-cms/backoffice/backend-api'; export function getIndexByName(indexName: string) { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts index da2f2434b4..c1df92fda7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-base.ts @@ -1,5 +1,5 @@ import { UmbData } from '../data.js'; -import { FileSystemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { FileSystemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export abstract class UmbFileSystemMockDbBase< MockItemType extends FileSystemResponseModelBaseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts index e059be5af0..d9c509814f 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-detail.manager.ts @@ -1,5 +1,5 @@ -import { UmbFileSystemMockDbBase } from './file-system-base.js'; -import { +import type { UmbFileSystemMockDbBase } from './file-system-base.js'; +import type { FileSystemFileCreateRequestModelBaseModel, FileSystemFileResponseModelBaseModel, FileSystemFileUpdateRequestModelBaseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts index 760c99bd4a..b0082c5210 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-folder.manager.ts @@ -1,5 +1,5 @@ -import { UmbFileSystemMockDbBase } from './file-system-base.js'; -import { +import type { UmbFileSystemMockDbBase } from './file-system-base.js'; +import type { FileSystemCreateRequestModelBaseModel, FileSystemResponseModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts index e4607a2af6..e7e99ef144 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts @@ -1,6 +1,6 @@ -import { UmbData } from '../data.js'; +import type { UmbData } from '../data.js'; import { createFileItemResponseModelBaseModel } from '../utils.js'; -import { FileSystemItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { FileSystemItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMockFileSystemItemManager { #db: UmbData; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts index ff392ea446..af4349f932 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-tree.manager.ts @@ -1,7 +1,8 @@ -import { UmbData } from '../data.js'; +import type { UmbData } from '../data.js'; import { createFileSystemTreeItem } from '../utils.js'; +import type { + FileSystemTreeItemPresentationModel} from '@umbraco-cms/backoffice/backend-api'; import { - FileSystemTreeItemPresentationModel, PagedFileSystemTreeItemPresentationModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts index 7e90796849..0362118bf6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts @@ -1,6 +1,7 @@ -import { +import type { HealthCheckGroupPresentationModel, - HealthCheckGroupWithResultResponseModel, + HealthCheckGroupWithResultResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { StatusResultTypeModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/languages.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/languages.data.ts index f7576b4aea..5d221d082c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/languages.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/languages.data.ts @@ -1,5 +1,5 @@ import { UmbData } from './data.js'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; // Temp mocked database class UmbLanguagesData extends UmbData { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/log-viewer.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/log-viewer.data.ts index 05cff127b8..30be1e924e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/log-viewer.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/log-viewer.data.ts @@ -1,6 +1,6 @@ import { logs } from './logs.data.js'; import { UmbData } from './data.js'; -import { +import type { LogMessageResponseModel, LogTemplateResponseModel, SavedLogSearchResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/logs.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/logs.data.ts index 3644619ce4..0fafbc8a38 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/logs.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/logs.data.ts @@ -1,4 +1,5 @@ -import { LogLevelModel, LogMessageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LogMessageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; const allLogs = [ { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts index ed9f0f1032..8bede90f5e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts @@ -1,4 +1,4 @@ -import { +import type { MediaTypeItemResponseModel, MediaTypeResponseModel, MediaTypeTreeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts index d7a3c7715d..2b3bfea655 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts @@ -3,9 +3,10 @@ import { UmbMockEntityFolderManager } from '../entity/entity-folder.manager.js'; import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; -import { UmbMockMediaTypeModel, data } from './media-type.data.js'; +import type { UmbMockMediaTypeModel} from './media-type.data.js'; +import { data } from './media-type.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { +import type { CreateFolderRequestModel, CreateMediaTypeRequestModel, MediaTypeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts index 20e4dc1dfa..9e8a14ea59 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts @@ -2,7 +2,7 @@ import type { UmbMediaDetailModel } from '../../packages/media/media/index.js'; import { UmbEntityTreeData } from './entity-tree.data.js'; import { UmbEntityData } from './entity.data.js'; import { createContentTreeItem, createMediaTreeItem } from './utils.js'; -import { +import type { ContentTreeItemResponseModel, MediaItemResponseModel, PagedMediaTreeItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts index 6c03e66f93..76df66271a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts @@ -1,7 +1,7 @@ import { UmbEntityData } from './entity.data.js'; import { createEntityTreeItem } from './utils.js'; -import { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbMemberGroupDetailModel } from '@umbraco-cms/backoffice/member-group'; +import type { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbMemberGroupDetailModel } from '@umbraco-cms/backoffice/member-group'; export const data: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts index edb958b636..2384aaa3da 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts @@ -1,7 +1,7 @@ import type { MemberTypeDetails } from '../../packages/members/member-types/types.js'; import { UmbData } from './data.js'; import { createEntityTreeItem } from './utils.js'; -import { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts index 691e399ac9..e7ba0e972e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.data.ts @@ -1,4 +1,4 @@ -import { +import type { FileSystemTreeItemPresentationModel, PartialViewItemResponseModel, PartialViewResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts index aa7c29dc42..cd51c74d3b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/partial-view/partial-view.db.ts @@ -3,8 +3,9 @@ import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folde import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; -import { UmbMockPartialViewModel, data, snippets } from './partial-view.data.js'; -import { +import type { UmbMockPartialViewModel} from './partial-view.data.js'; +import { data, snippets } from './partial-view.data.js'; +import type { PagedPartialViewSnippetItemResponseModel, PartialViewSnippetItemResponseModel, PartialViewSnippetResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts index eb13136a2f..8180bec133 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.data.ts @@ -1,4 +1,4 @@ -import { +import type { FileSystemTreeItemPresentationModel, ScriptItemResponseModel, ScriptResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts index 6c8f73b199..1ba6005517 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/script/script.db.ts @@ -3,7 +3,8 @@ import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folde import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detail.manager.js'; -import { UmbMockScriptModel, data as scriptData } from './script.data.js'; +import type { UmbMockScriptModel} from './script.data.js'; +import { data as scriptData } from './script.data.js'; class UmbScriptMockDB extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts index 2cd3e5dca2..d94cabbbcc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.data.ts @@ -1,4 +1,4 @@ -import { FileSystemTreeItemPresentationModel, StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { FileSystemTreeItemPresentationModel, StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbMockStaticFileModelHack = StaticFileItemResponseModel & FileSystemTreeItemPresentationModel; export interface UmbMockStaticFileModel extends Omit {} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts index 228d2714d8..65896cf146 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/static-file/static-file.db.ts @@ -1,7 +1,8 @@ import { UmbFileSystemMockDbBase } from '../file-system/file-system-base.js'; import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; -import { UmbMockStaticFileModel, data as staticFileData } from './static-file.data.js'; +import type { UmbMockStaticFileModel} from './static-file.data.js'; +import { data as staticFileData } from './static-file.data.js'; class UmbStaticFileMockDB extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts index 10538c037c..8a99136b1c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.data.ts @@ -1,4 +1,4 @@ -import { +import type { FileSystemTreeItemPresentationModel, StylesheetItemResponseModel, StylesheetResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts index da40be31da..4b5ed888e1 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/stylesheet/stylesheet.db.ts @@ -3,7 +3,8 @@ import { UmbMockFileSystemDetailManager } from '../file-system/file-system-detai import { UmbMockFileSystemFolderManager } from '../file-system/file-system-folder.manager.js'; import { UmbMockFileSystemItemManager } from '../file-system/file-system-item.manager.js'; import { UmbMockFileSystemTreeManager } from '../file-system/file-system-tree.manager.js'; -import { UmbMockStylesheetModel, data } from './stylesheet.data.js'; +import type { UmbMockStylesheetModel} from './stylesheet.data.js'; +import { data } from './stylesheet.data.js'; class UmbStylesheetMockDb extends UmbFileSystemMockDbBase { tree = new UmbMockFileSystemTreeManager(this); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts index d3c1592992..1ba8f21049 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts @@ -1,7 +1,7 @@ import { UmbEntityData } from './entity.data.js'; import { createEntityTreeItem } from './utils.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { +import type { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel, TemplateResponseModel, @@ -9,9 +9,10 @@ import { CreateTemplateRequestModel, TemplateItemResponseModel, TemplateQuerySettingsResponseModel, + TemplateQueryResultResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { TemplateQueryPropertyTypeModel, - OperatorModel, - TemplateQueryResultResponseModel, + OperatorModel } from '@umbraco-cms/backoffice/backend-api'; type UmbMockTemplateModel = TemplateResponseModel & EntityTreeItemResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/tracked-reference.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/tracked-reference.data.ts index 9ece80fa23..df1df04c00 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/tracked-reference.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/tracked-reference.data.ts @@ -1,4 +1,4 @@ -import { RelationItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { RelationItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const items: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts index 135bc8ff95..c81be4490d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.data.ts @@ -1,4 +1,4 @@ -import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_USER_PERMISSION_DOCUMENT_CREATE, UMB_USER_PERMISSION_DOCUMENT_DELETE, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.db.ts index 4c62cc68b9..d61d0bd916 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user-group/user-group.db.ts @@ -1,6 +1,6 @@ import { UmbEntityData } from '../entity.data.js'; import { data } from './user-group.data.js'; -import { UserGroupItemResponseModel, UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupItemResponseModel, UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; const createUserGroupItem = (item: UserGroupResponseModel): UserGroupItemResponseModel => { return { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.data.ts index 55eb538677..41ff5349f0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.data.ts @@ -1,4 +1,5 @@ -import { UserResponseModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts index dad74c3e70..4a160746d5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts @@ -3,15 +3,16 @@ import { umbUserGroupData } from '../user-group/user-group.db.js'; import { arrayFilter, stringFilter, queryFilter } from '../utils.js'; import { data } from './user.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbCurrentUser } from '@umbraco-cms/backoffice/current-user'; -import { +import type { UmbCurrentUser } from '@umbraco-cms/backoffice/current-user'; +import type { CreateUserRequestModel, CreateUserResponseModel, InviteUserRequestModel, PagedUserResponseModel, UpdateUserGroupsOnUserRequestModel, UserItemResponseModel, - UserResponseModel, + UserResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserStateModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index b05c6cace7..51a3d7f082 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -11,7 +11,7 @@ import type { MediaTypeTreeItemResponseModel, MediaTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UmbMediaDetailModel } from '@umbraco-cms/backoffice/media'; +import type { UmbMediaDetailModel } from '@umbraco-cms/backoffice/media'; export const createEntityTreeItem = (item: any): EntityTreeItemResponseModel => { return { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/audit-log.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/audit-log.handlers.ts index 18c6d49123..0cd0695c46 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/audit-log.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/audit-log.handlers.ts @@ -1,7 +1,7 @@ import { logs, logsWithUser } from '../data/audit-log.data.js'; const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { +import type { PagedAuditLogResponseModel, PagedAuditLogWithUsernameResponseModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts index 904bb7f6e4..1c6c660a7d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/copy.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; -import { CopyDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CopyDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const copyHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts index 733414055a..3ae09b4602 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/detail.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateDataTypeRequestModel, UpdateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateDataTypeRequestModel, UpdateDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts index de4b018654..616fc24c04 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/move.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbDataTypeMockDb } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; -import { MoveDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MoveDataTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const moveHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts index ea6882b2ac..862e803b80 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbDictionaryData } from '../data/dictionary.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { +import type { ImportDictionaryRequestModel, DictionaryOverviewResponseModel, DictionaryItemResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts index ff7566750d..6eee0e368a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/detail.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbDocumentTypeMockDb } from '../../data/document-type/document-type.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/examine-management.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/examine-management.handlers.ts index 43532d2d13..7dc2891ae5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/examine-management.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/examine-management.handlers.ts @@ -2,7 +2,7 @@ const { rest } = window.MockServiceWorker; import { searchResultMockData, getIndexByName, PagedIndexers } from '../data/examine.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { +import type { IndexResponseModel, PagedIndexResponseModel, PagedSearcherResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/health-check.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/health-check.handlers.ts index 525a593ed6..36d0660699 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/health-check.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/health-check.handlers.ts @@ -7,12 +7,13 @@ import { healthGroupsWithoutResult, } from '../data/health-check.data.js'; -import { +import type { HealthCheckActionRequestModel, HealthCheckGroupResponseModel, HealthCheckGroupWithResultResponseModel, HealthCheckResultResponseModel, - PagedHealthCheckGroupResponseModel, + PagedHealthCheckGroupResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { StatusResultTypeModel, } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts index 6a126019bf..811c83eb58 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts @@ -1,9 +1,10 @@ const { rest } = window.MockServiceWorker; -import { +import type { DatabaseInstallResponseModel, InstallVResponseModel, InstallSettingsResponseModel, - ProblemDetails, + ProblemDetails} from '@umbraco-cms/backoffice/backend-api'; +import { TelemetryLevelModel, } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/language.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/language.handlers.ts index 1200f10772..61101d41de 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/language.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/language.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; import { umbLanguagesData } from '../data/languages.data.js'; -import { LanguageResponseModel, ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel, ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; // TODO: add schema diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/log-viewer.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/log-viewer.handlers.ts index 836a4ae1ef..20a37687dc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/log-viewer.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/log-viewer.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbLogViewerData } from '../data/log-viewer.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { SavedLogSearchRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { SavedLogSearchRequestModel } from '@umbraco-cms/backoffice/backend-api'; export const handlers = [ //#region Searches diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts index 166ea0c421..18ffd1b3f5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media-type/detail.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbMediaTypeMockDb } from '../../data/media-type/media-type.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/modelsbuilder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/modelsbuilder.handlers.ts index 2caf6eb3e4..4273f5f24f 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/modelsbuilder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/modelsbuilder.handlers.ts @@ -1,10 +1,11 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { +import type { ModelsBuilderResponseModel, + OutOfDateStatusResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { ModelsModeModel, - OutOfDateStatusResponseModel, OutOfDateTypeModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/package.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/package.handlers.ts index ab4eb43ec4..25cb6cb123 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/package.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/package.handlers.ts @@ -2,7 +2,7 @@ const { rest } = window.MockServiceWorker; import { UmbId } from '@umbraco-cms/backoffice/id'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { +import type { PackageDefinitionResponseModel, PagedPackageDefinitionResponseModel, PagedPackageMigrationStatusResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts index b5448ef3f5..f0ee2fb5b2 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/detail.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbPartialViewMockDB } from '../../data/partial-view/partial-view.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts index dba907337c..6c18bf61b8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/folder.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbPartialViewMockDB } from '../../data/partial-view/partial-view.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreatePartialViewFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreatePartialViewFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const folderHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts index 4057806d0d..cfdd4f6559 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/partial-view/rename.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbPartialViewMockDB } from '../../data/partial-view/partial-view.db.js'; import { UMB_SLUG } from './slug.js'; -import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const renameHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/redirect-management.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/redirect-management.handlers.ts index c9886f1f13..d683519dd9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/redirect-management.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/redirect-management.handlers.ts @@ -1,10 +1,11 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { +import type { PagedRedirectUrlResponseModel, RedirectUrlResponseModel, - RedirectStatusModel, - RedirectUrlStatusResponseModel, + RedirectUrlStatusResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { + RedirectStatusModel } from '@umbraco-cms/backoffice/backend-api'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/rte-embed.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/rte-embed.handlers.ts index 122e4677e5..16719a60b6 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/rte-embed.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/rte-embed.handlers.ts @@ -1,5 +1,6 @@ const { rest } = window.MockServiceWorker; -import { OEmbedResult, OEmbedStatus } from '@umbraco-cms/backoffice/modal'; +import type { OEmbedResult} from '@umbraco-cms/backoffice/modal'; +import { OEmbedStatus } from '@umbraco-cms/backoffice/modal'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts index 2059029bb2..fd1a646ab5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/detail.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbScriptMockDb } from '../../data/script/script.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts index 0a2de048fb..462afcb94e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/folder.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbScriptMockDb } from '../../data/script/script.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateScriptFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateScriptFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const folderHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts index a24018b14c..7c9dfaf39d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/script/rename.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbScriptMockDb } from '../../data/script/script.db.js'; import { UMB_SLUG } from './slug.js'; -import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const renameHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts index ac65fa0743..9b5c182fff 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/server.handlers.ts @@ -1,9 +1,10 @@ const { rest } = window.MockServiceWorker; +import type { + ServerStatusResponseModel, + ServerInformationResponseModel} from '@umbraco-cms/backoffice/backend-api'; import { RuntimeLevelModel, - RuntimeModeModel, - ServerStatusResponseModel, - ServerInformationResponseModel, + RuntimeModeModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts index 2e0750345a..0ea95bf4e8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/detail.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateStylesheetRequestModel, UpdateStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts index b3b534633a..b4cb67bdfc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/folder.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateStylesheetFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateStylesheetFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const folderHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts index bbd2b85db5..f20fb86832 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/stylesheet/rename.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbStylesheetMockDb } from '../../data/stylesheet/stylesheet.db.js'; import { UMB_SLUG } from './slug.js'; -import { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { RenameStylesheetRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const renameHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/tag-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tag-handlers.ts index 89e89f26c2..d99de8bef5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/tag-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tag-handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { PagedTagResponseModel, TagResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PagedTagResponseModel, TagResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const handlers = [ rest.get(umbracoPath('/tag'), (_req, res, ctx) => { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/telemetry.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/telemetry.handlers.ts index 1f0d10a57f..0bcb4e5cfb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/telemetry.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/telemetry.handlers.ts @@ -1,9 +1,10 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { +import type { PagedTelemetryResponseModel, - TelemetryResponseModel, + TelemetryResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { TelemetryLevelModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts index 004a90a662..2683a0a809 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbTemplateData } from '../data/template.data.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { CreateTemplateRequestModel, UpdateTemplateRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateTemplateRequestModel, UpdateTemplateRequestModel } from '@umbraco-cms/backoffice/backend-api'; export const handlers = [ //#region TREE diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/tracked-reference.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tracked-reference.handlers.ts index 5b3fa1324e..50cc66b1f0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/tracked-reference.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tracked-reference.handlers.ts @@ -1,7 +1,7 @@ import { items } from '../data/tracked-reference.data.js'; const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import { PagedRelationItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PagedRelationItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const handlers = [ rest.get(umbracoPath('/tracked-reference/:id'), (_req, res, ctx) => { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts index 1c8bdb9a82..dcdcd307a8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/change-password.handlers.ts @@ -1,6 +1,6 @@ const { rest } = window.MockServiceWorker; import { UMB_SLUG } from './slug.js'; -import { ChangePasswordUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { ChangePasswordUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts index 1ac22761ce..22b23d9cd4 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/disable.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user/user.db.js'; import { UMB_SLUG } from './slug.js'; -import { DisableUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DisableUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts index 029d31ce63..046a286c54 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/enable.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user/user.db.js'; import { UMB_SLUG } from './slug.js'; -import { EnableUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { EnableUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts index d8b47e2b71..9682c2b81e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/invite.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user/user.db.js'; import { UMB_SLUG } from './slug.js'; -import { InviteUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { InviteUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; const inviteSlug = `${UMB_SLUG}/invite`; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts index 1f9c4be73a..1d90b62f10 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/unlock.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbUsersData } from '../../data/user/user.db.js'; import { UMB_SLUG } from './slug.js'; -import { UnlockUsersRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UnlockUsersRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const handlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts index e536b536bf..8077800026 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.repository.ts @@ -1,8 +1,9 @@ import { UmbAuditLogServerDataSource } from './audit-log.server.data.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { AuditTypeModel, DirectionModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { AuditTypeModel, DirectionModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export class UmbAuditLogRepository extends UmbBaseController { diff --git a/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.server.data.ts index 7fbd256231..4bd800ac9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/audit-log/repository/audit-log.server.data.ts @@ -1,4 +1,5 @@ -import { AuditLogResource, DirectionModel, AuditTypeModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DirectionModel, AuditTypeModel } from '@umbraco-cms/backoffice/backend-api'; +import { AuditLogResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.element.ts index b13582061a..96a236e0e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.element.ts @@ -1,5 +1,5 @@ import { html, customElement, property, css, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.stories.ts index 042a5422b9..c1155161ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-column-span/property-editor-ui-block-grid-column-span.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockGridColumnSpanElement } from './property-editor-ui-block-grid-column-span.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index 220c67a819..3c2afc0908 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -1,9 +1,9 @@ import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.stories.ts index c8e7db4f35..a4aabbf7fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockGridElement } from './property-editor-ui-block-grid.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.element.ts index f463ed3865..7636cf6ad1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.element.ts @@ -1,10 +1,10 @@ // Needed to disable the import/no-duplicates rule, cause otherwise we do not get the custom element registered: // eslint-disable-next-line import/no-duplicates -import { UmbInputStaticFileElement } from '@umbraco-cms/backoffice/static-file'; +import type { UmbInputStaticFileElement } from '@umbraco-cms/backoffice/static-file'; // eslint-disable-next-line import/no-duplicates import '@umbraco-cms/backoffice/static-file'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.stories.ts index 80e62120ce..e3293251d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-layout-stylesheet/property-editor-ui-block-grid-layout-stylesheet.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockGridLayoutStylesheetElement } from './property-editor-ui-block-grid-layout-stylesheet.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 3ca99e2fdf..e92121a6d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,8 +1,8 @@ import type { UmbBlockTypeBaseModel, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.stories.ts index 8afc18f439..5f8d2943d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockGridTypeConfigurationElement } from './property-editor-ui-block-grid-type-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts index 3d0c7976e5..6cbd004c75 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/block-grid-workspace.modal-token.ts @@ -1,5 +1,6 @@ -import { UmbBlockWorkspaceData } from '../../index.js'; -import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import type { UmbBlockWorkspaceData } from '../../index.js'; +import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockGridWorkspaceData extends UmbBlockWorkspaceData<{ diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts index 9bd15e469d..ca143ac5d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-advanced.element.ts @@ -1,7 +1,7 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-block-grid-type-workspace-view-advanced') export class UmbBlockGridTypeWorkspaceViewAdvancedElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts index 11ea473f94..2baf5dee99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts @@ -1,7 +1,7 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-block-grid-type-workspace-view-areas') export class UmbBlockGridTypeWorkspaceViewAreasElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-settings.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-settings.element.ts index 776355bc99..d876f8a842 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-settings.element.ts @@ -1,9 +1,9 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -import { UmbInputNumberRangeElement } from '@umbraco-cms/backoffice/components'; +import type { UmbInputNumberRangeElement } from '@umbraco-cms/backoffice/components'; import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/data-type'; @customElement('umb-block-grid-type-workspace-view') diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index df10d78010..6af4a4da1f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -2,7 +2,7 @@ import { UmbBlockListContext } from '../../context/block-list.context.js'; import { html, css, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { type UmbBlockLayoutBaseModel } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockLayoutBaseModel } from '@umbraco-cms/backoffice/block'; import '../ref-list-block/index.js'; import '../inline-list-block/index.js'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts index 83b3ab6ce3..c25d52faef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts @@ -1,5 +1,6 @@ import { UMB_BLOCK_LIST_CONTEXT } from '../../index.js'; -import { UMB_BLOCK_WORKSPACE_ALIAS, UMB_BLOCK_WORKSPACE_CONTEXT } from '../../../block/index.js'; +import type { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../../block/index.js'; +import { UMB_BLOCK_WORKSPACE_ALIAS } from '../../../block/index.js'; import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 138c918722..2bcc827d31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -1,23 +1,20 @@ import { UmbBlockListManagerContext } from '../../manager/block-list-manager.context.js'; import '../../components/block-list-block/index.js'; -import { type UmbPropertyEditorUIBlockListBlockElement } from '../../components/block-list-block/index.js'; +import type { UmbPropertyEditorUIBlockListBlockElement } from '../../components/block-list-block/index.js'; import { UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS } from './manifests.js'; import { html, customElement, property, state, repeat, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { - UMB_BLOCK_CATALOGUE_MODAL, - UmbBlockLayoutBaseModel, - UmbBlockTypeBaseModel, - UmbBlockWorkspaceData, - type UmbBlockValueType, -} from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_CATALOGUE_MODAL } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockLayoutBaseModel, UmbBlockTypeBaseModel, UmbBlockValueType } from '@umbraco-cms/backoffice/block'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; -import { UmbModalRouteBuilder, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalRouteBuilder } from '@umbraco-cms/backoffice/modal'; +import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.stories.ts index e1fb4b9cc3..c01418b7c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockListElement } from './property-editor-ui-block-list.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts index db661e7135..5948997fcb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts @@ -1,8 +1,8 @@ import type { UmbBlockTypeBaseModel, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.stories.ts index 4e75dbdefe..edaff94f9d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockListBlockConfigurationElement } from './property-editor-ui-block-list-type-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts index d9987e8df1..dee3748bfd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts @@ -1,5 +1,5 @@ import type { UmbBlockTypeBaseModel } from '../block-type/index.js'; -import { UmbBlockLayoutBaseModel } from '../index.js'; +import type { UmbBlockLayoutBaseModel } from '../index.js'; export interface UmbBlockListTypeModel extends UmbBlockTypeBaseModel {} export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts index 4c2cee12ac..f6d83891b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/block-list-workspace.modal-token.ts @@ -1,5 +1,6 @@ -import { UmbBlockWorkspaceData } from '../../index.js'; -import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import type { UmbBlockWorkspaceData } from '../../index.js'; +import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockListWorkspaceData extends UmbBlockWorkspaceData<{ diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/block-list-type-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/block-list-type-workspace-view.element.ts index 14e8adac23..84efd3766d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/block-list-type-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/block-list-type-workspace-view.element.ts @@ -1,7 +1,7 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-block-list-type-workspace-view-settings') export class UmbBlockListTypeWorkspaceViewSettingsElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts index 1a143cd13d..5bf97f06a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/block-rte-workspace.modal-token.ts @@ -1,5 +1,6 @@ -import { UmbBlockWorkspaceData } from '../../index.js'; -import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import type { UmbBlockWorkspaceData } from '../../index.js'; +import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockRTEWorkspaceData extends UmbBlockWorkspaceData<{ diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/block-rte-type-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/block-rte-type-workspace-view.element.ts index 7f79b07c28..d745f0c10f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/block-rte-type-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/workspace/views/block-rte-type-workspace-view.element.ts @@ -1,7 +1,7 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-block-rte-type-workspace-view-settings') export class UmbBlockRteTypeWorkspaceViewSettingsElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 69f2d2b35b..03e92d961e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -1,4 +1,4 @@ -import { UmbBlockTypeBaseModel } from '../../types.js'; +import type { UmbBlockTypeBaseModel } from '../../types.js'; import { UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.stories.ts index 3491e4c2a1..c3c3021e02 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-block-type.element.js'; import type { UmbInputBlockTypeElement } from './input-block-type.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts index 67f03df526..918e704be3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.element.ts @@ -1,6 +1,6 @@ -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts index 66ccdfa84e..7cd306ca78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/property-editors/block-type-group-configuration/property-editor-ui-block-type-group-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-type-group-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts index b22b606760..018bfbbfa4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts @@ -3,7 +3,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { customElement, css, html, state, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; -import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, UmbDocumentTypeItemModel } from '@umbraco-cms/backoffice/document-type'; +import type { UmbDocumentTypeItemModel } from '@umbraco-cms/backoffice/document-type'; +import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '@umbraco-cms/backoffice/document-type'; @customElement('umb-block-type-workspace-editor') export class UmbBlockTypeWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index b1c188a9a4..5209b21197 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -1,15 +1,17 @@ import type { UmbBlockTypeBaseModel } from '../types.js'; -import { UMB_PROPERTY_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; -import { +import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; +import type { UmbInvariantableWorkspaceContextInterface, + UmbWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; +import { UmbEditableWorkspaceContextBase, - UmbWorkspaceContextInterface, UmbInvariantWorkspacePropertyDatasetContext, } from '@umbraco-cms/backoffice/workspace'; import { UmbArrayState, UmbObjectState, appendToFrozenArray } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ManifestWorkspace, PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestWorkspace, PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; export class UmbBlockTypeWorkspaceContext extends UmbEditableWorkspaceContextBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts index f4b68cd0db..d11c1743c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.element.ts @@ -6,8 +6,10 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import { UmbApi, UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestWorkspace, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbApi} from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestWorkspace} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-block-type-workspace') export class UmbBlockTypeWorkspaceElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts index 015a3126f8..7df7769388 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts @@ -1,6 +1,6 @@ import type { UmbBlockTypeBaseModel } from '../../block-type/types.js'; import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; -import { UMB_BLOCK_MANAGER_CONTEXT, type UmbBlockManagerContext } from '../manager/index.js'; +import type { UMB_BLOCK_MANAGER_CONTEXT, UmbBlockManagerContext } from '../manager/index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 0003d05b40..2d9f9c9fa4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -4,14 +4,15 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbClassState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; +import type { + UmbBlockTypeBaseModel, + UmbBlockWorkspaceData} from '@umbraco-cms/backoffice/block'; import { UMB_BLOCK_MANAGER_CONTEXT, - UMB_BLOCK_WORKSPACE_MODAL, - UmbBlockTypeBaseModel, - UmbBlockWorkspaceData, + UMB_BLOCK_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/block'; import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; -import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 02cf88be12..9bba4b38ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -1,5 +1,5 @@ import { UMB_BLOCK_WORKSPACE_MODAL } from '../../workspace/index.js'; -import { +import type { UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue, UmbBlockTypeWithGroupKey, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts index 88fcc764b3..1d5ea7a281 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -1,6 +1,7 @@ -import { UmbBlockDataType } from '../types.js'; +import type { UmbBlockDataType } from '../types.js'; import { UmbBlockElementPropertyDatasetContext } from './block-element-property-dataset.context.js'; -import { UmbContentTypeModel, UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; +import type { UmbContentTypeModel} from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts index 584fff6a95..db5f957cb2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context-token.ts @@ -1,4 +1,4 @@ -import { UmbBlockElementPropertyDatasetContext } from './block-element-property-dataset.context.js'; +import type { UmbBlockElementPropertyDatasetContext } from './block-element-property-dataset.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export const UMB_BLOCK_ELEMENT_PROPERTY_DATASET_CONTEXT = new UmbContextToken( diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts index 9f83a366ac..84d05898c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-property-dataset.context.ts @@ -1,10 +1,11 @@ -import { UmbBlockElementManager } from './block-element-manager.js'; +import type { UmbBlockElementManager } from './block-element-manager.js'; import { UMB_BLOCK_ELEMENT_PROPERTY_DATASET_CONTEXT } from './block-element-property-dataset.context-token.js'; -import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { type Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export class UmbBlockElementPropertyDatasetContext extends UmbBaseController implements UmbPropertyDatasetContext { #elementManager: UmbBlockElementManager; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index c33612c52c..e205abc1a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -2,10 +2,11 @@ import type { UmbBlockLayoutBaseModel, UmbBlockDataType } from '../types.js'; import { UmbBlockElementManager } from './block-element-manager.js'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { UmbBooleanState, UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UMB_BLOCK_MANAGER_CONTEXT, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; import { buildUdi } from '@umbraco-cms/backoffice/utils'; import { UMB_MODAL_CONTEXT } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts index 49f51c24e3..0bcca9b580 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts @@ -6,8 +6,10 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import { UmbApi, UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestWorkspace, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbApi} from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestWorkspace} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { decodeFilePath } from '@umbraco-cms/backoffice/utils'; @customElement('umb-block-workspace') diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts index e015bc4b7a..0a2d21ccc1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.modal-token.ts @@ -1,4 +1,5 @@ -import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockWorkspaceData extends UmbWorkspaceData { originData: OriginDataType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts index ae8f92868f..3a216eb3c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts @@ -4,8 +4,8 @@ import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-block-workspace-view-edit-no-router') export class UmbBlockWorkspaceViewEditNoRouterElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index 75ea5c7251..8eec2efdeb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -1,14 +1,15 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UmbContentTypePropertyStructureHelper, +import type { PropertyContainerTypes, // UmbPropertyTypeBasedPropertyElement, - UmbContentTypeModel, + UmbContentTypeModel} from '@umbraco-cms/backoffice/content-type'; +import { + UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-block-workspace-view-edit-properties') export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts index b3876c73a1..3cac991532 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts @@ -1,9 +1,10 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypeContainerStructureHelper, UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import './block-workspace-view-edit-properties.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts index 21d23df435..08a4e88cb5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts @@ -2,16 +2,18 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token import type { UmbBlockWorkspaceViewEditTabElement } from './block-workspace-view-edit-tab.element.js'; import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypeContainerStructureHelper, UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; -import { - encodeFolderName, +import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import type { UmbRoute, UmbRouterSlotChangeEvent, - UmbRouterSlotInitEvent, + UmbRouterSlotInitEvent} from '@umbraco-cms/backoffice/router'; +import { + encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-block-workspace-view-edit') export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts index 945fadf152..6edcae712b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action-event.context.ts @@ -1,6 +1,6 @@ import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbActionEventContext extends UmbContextBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.interface.ts index 06c5c958d7..15f9a133f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/action.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/action.interface.ts @@ -1,4 +1,4 @@ -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbAction extends UmbApi { repository?: RepositoryType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts index 768a8951af..37875ffaef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/action/repository-action.ts @@ -1,4 +1,4 @@ -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { type UmbApi, UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-button.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-button.element.ts index 39e1d58e26..8ec442acac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/collection-action-button.element.ts @@ -1,13 +1,10 @@ -import { UmbCollectionAction } from './collection-action-base.js'; +import type { UmbCollectionAction } from './collection-action-base.js'; import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { - umbExtensionsRegistry, - type ManifestCollectionAction, - UmbBackofficeManifestKind, -} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbBackofficeManifestKind, ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry'; import { createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; const manifest: UmbBackofficeManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts index df4879398b..f3befb71f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-alias.condition.ts @@ -1,6 +1,6 @@ import { UMB_DEFAULT_COLLECTION_CONTEXT } from './default/collection-default.context.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.test.ts index 15aff10e76..57bed25f32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.test.ts @@ -2,7 +2,8 @@ import { expect } from '@open-wc/testing'; import { UmbCollectionViewManager } from './collection-view.manager.js'; import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; -import { ManifestCollectionView, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollectionView} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; @customElement('test-my-controller-host') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts index edd49b4d7a..67ff3afc51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection-view.manager.ts @@ -1,9 +1,10 @@ import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbExtensionsManifestInitializer, createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestCollectionView, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollectionView} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbArrayState, UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbRoute } from '@umbraco-cms/backoffice/router'; +import type { UmbRoute } from '@umbraco-cms/backoffice/router'; export interface UmbCollectionViewManagerConfig { defaultViewAlias?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts index 68ca55606e..10128d7f6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/collection.element.ts @@ -1,7 +1,8 @@ -import { UmbCollectionContext } from './types.js'; +import type { UmbCollectionContext } from './types.js'; import { customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestCollection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollection} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { createExtensionApi, createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; @customElement('umb-collection') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts index e7c2a15936..54d202153a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-action-bundle.element.ts @@ -1,4 +1,5 @@ -import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from '../default/collection-default.context.js'; +import type { UmbDefaultCollectionContext } from '../default/collection-default.context.js'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '../default/collection-default.context.js'; import { html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-selection-actions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-selection-actions.element.ts index c44ae64a25..4f1b45b66f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-selection-actions.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-selection-actions.element.ts @@ -1,7 +1,8 @@ -import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-collection-selection-actions') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts index cdd4d492d5..c9d61c8325 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts @@ -1,4 +1,5 @@ -import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from '../default/collection-default.context.js'; +import type { UmbDefaultCollectionContext } from '../default/collection-default.context.js'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '../default/collection-default.context.js'; import type { ManifestCollectionView } from '../../extension-registry/models/collection-view.model.js'; import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts index 52e4acc0c4..40576d6ba8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts @@ -1,7 +1,8 @@ -import { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, nothing, state } from '@umbraco-cms/backoffice/external/lit'; -import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-collection-pagination') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.stories.ts index 5feac03101..d5a25a93d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/dashboards/dashboard-collection.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardCollectionElement } from './dashboard-collection.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts index 40d3a39152..65b19ef39c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.context.ts @@ -1,14 +1,16 @@ -import { UmbCollectionConfiguration, UmbCollectionContext } from '../types.js'; +import type { UmbCollectionConfiguration, UmbCollectionContext } from '../types.js'; import { UmbCollectionViewManager } from '../collection-view.manager.js'; -import { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState, UmbNumberState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbApi, UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; -import { +import type { UmbApi} from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestCollection, - ManifestRepository, + ManifestRepository} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbCollectionFilterModel } from '@umbraco-cms/backoffice/collection'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts index 916c945a5f..46220165f4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/default/collection-default.element.ts @@ -1,7 +1,8 @@ import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from './collection-default.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { umbExtensionsRegistry, UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/types.ts index 073962dd87..d3c9b5c8af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/types.ts @@ -1,6 +1,6 @@ -import { ManifestCollection } from '@umbraco-cms/backoffice/extension-registry'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbPaginationManager } from '@umbraco-cms/backoffice/utils'; +import type { ManifestCollection } from '@umbraco-cms/backoffice/extension-registry'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { UmbPaginationManager } from '@umbraco-cms/backoffice/utils'; export interface UmbCollectionConfiguration { pageSize?: number; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts index d408f6f019..71c9b4c005 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts @@ -1,10 +1,12 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, repeat, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, repeat, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbModalManagerContext, + UmbModalContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, - UmbModalElement, - UmbModalContext, + UmbModalElement } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts index 0f3c61a0db..1dd3a1cced 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts @@ -1,8 +1,10 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, customElement, state, repeat, query } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state, repeat, query } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbNotificationHandler, - UmbNotificationContext, + UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts index c32feb03af..263c20954d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './body-layout.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts index 64c8b3f035..faefbc446e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/code-block/code-block.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './code-block.element.js'; import type { UmbCodeBlockElement } from './code-block.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts index ea66e6407f..eb0cab0379 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts @@ -1,16 +1,17 @@ -import { +import type { InterfaceColor, InterfaceLook, PopoverContainerPlacement, UUIPopoverContainerElement, } from '@umbraco-cms/backoffice/external/uui'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { + PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; import { css, html, customElement, property, - PropertyValueMap, query, when, } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts index 0f5ec49ad2..0d055828ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/empty-state/empty-state.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './empty-state.element.js'; import type { UmbEmptyStateElement } from './empty-state.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts index 14c61b7602..5666bc542c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts @@ -1,7 +1,8 @@ import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; +import type { UmbSectionSidebarContext} from '@umbraco-cms/backoffice/section'; +import { UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts index 97c050d41e..645ff5d263 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts @@ -1,5 +1,6 @@ import { type ManifestTypes, umbExtensionsRegistry } from '../../extension-registry/index.js'; -import { css, repeat, customElement, property, state, TemplateResult } from '@umbraco-cms/backoffice/external/lit'; +import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit'; +import { css, repeat, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { type UmbExtensionElementInitializer, UmbExtensionsElementInitializer, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts index 5ddeacecc9..f5d466601c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.test.ts @@ -1,8 +1,9 @@ import { expect, fixture, html } from '@open-wc/testing'; import { UmbExtensionSlotElement } from './extension-slot.element.js'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; -import { ManifestDashboard, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbExtensionElementInitializer } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestDashboard} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbExtensionElementInitializer } from '@umbraco-cms/backoffice/extension-api'; @customElement('umb-test-extension-slot-manifest-element') class UmbTestExtensionSlotManifestElement extends HTMLElement {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts index ccc0743767..25e4a8d7a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/footer-layout/footer-layout.stories.ts @@ -1,6 +1,6 @@ import './footer-layout.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbFooterLayoutElement } from './footer-layout.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts index 4a1a9970ca..0ab9ab24bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app-button.element.ts @@ -1,8 +1,10 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, LitElement, customElement, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, LitElement, customElement, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import type { ManifestHeaderAppButtonKind, - UmbBackofficeManifestKind, + UmbBackofficeManifestKind} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts index 2608e838fa..a092461abd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/header-app/header-app.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './header-app-button.element.js'; import type { UmbHeaderAppButtonElement } from './header-app-button.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts index 0bced47aee..40ecb7ed3b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/history/history-list.stories.ts @@ -1,7 +1,7 @@ import './history-list.element.js'; import './history-item.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbHistoryListElement } from './history-list.element.js'; import type { UmbHistoryItemElement } from './history-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.element.ts index ad5836627f..23a80ff85b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.element.ts @@ -1,5 +1,6 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.stories.ts index 2962c6c728..4a1c306eb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-color/input-color.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-color.element.js'; import type { UmbInputColorElement } from './input-color.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts index 56fd3a4184..00fcb6368f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts @@ -1,6 +1,7 @@ import { UmbConfigRepository } from '../../repository/config/config.repository.js'; import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-date') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.stories.ts index c2eec6dffa..5708eb8908 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbInputDateElement } from './input-date.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './input-date.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.element.ts index 9b06a87c0a..f8e43a7634 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.element.ts @@ -1,5 +1,6 @@ import { css, html, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-dropdown-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.stories.ts index cabff86e72..c79fea4cc3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-dropdown/input-dropdown-list.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-dropdown-list.element.js'; import type { UmbInputDropdownListElement } from './input-dropdown-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts index 5ae5451b85..b6dd9ca20f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts @@ -1,5 +1,6 @@ import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIColorPickerChangeEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIColorPickerChangeEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-eye-dropper') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts index d6a2916dd7..3b3e9a73c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-eye-dropper/input-eye-dropper.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-eye-dropper.element.js'; import type { UmbInputEyeDropperElement } from './input-eye-dropper.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts index 6a1de70aa9..969ccc4a50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-list-base/input-list-base.ts @@ -1,11 +1,12 @@ import { html, property } from '@umbraco-cms/backoffice/external/lit'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; -import { +import type { UmbModalManagerContext, UmbModalToken, UmbModalType, - UMB_MODAL_MANAGER_CONTEXT, - UmbPickerModalValue, + UmbPickerModalValue} from '@umbraco-cms/backoffice/modal'; +import { + UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts index c34690d974..503b85b6c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.element.ts @@ -1,16 +1,19 @@ import { DOMPurify } from '@umbraco-cms/backoffice/external/dompurify'; import { marked } from '@umbraco-cms/backoffice/external/marked'; import { monaco } from '@umbraco-cms/backoffice/external/monaco-editor'; -import { UmbCodeEditorController, UmbCodeEditorElement, loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; +import type { UmbCodeEditorController, UmbCodeEditorElement} from '@umbraco-cms/backoffice/code-editor'; +import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; import { css, html, customElement, query, property, unsafeHTML, when } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_LINK_PICKER_MODAL, UMB_MEDIA_TREE_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, + UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.stories.ts index 2659ff4a1d..b29e0d2338 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-markdown-editor/input-markdown.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-markdown.element.js'; import type { UmbInputMarkdownElement } from './input-markdown.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts index 86267f6c82..9cae53ef03 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts @@ -4,11 +4,11 @@ import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { - UmbLinkPickerLink, UMB_LINK_PICKER_MODAL, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; -import type { UmbModalRouteBuilder } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalRouteBuilder , + UmbLinkPickerLink} from '@umbraco-cms/backoffice/modal'; /** * @element umb-input-multi-url diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.stories.ts index 8878178389..1017d7d56d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-multi-url.element.js'; import type { UmbInputMultiUrlElement } from './input-multi-url.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts index d5e5cff103..2058c85c27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-number-range.element.js'; import type { UmbInputNumberRangeElement } from './input-number-range.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts index 54fcc86ad7..62965e3b29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts @@ -1,5 +1,6 @@ import { css, html, nothing, repeat, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-radio-button-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts index a3eff6b851..be6c9cefc8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-radio-button-list/input-radio-button-list.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-radio-button-list.element.js'; import type { UmbInputRadioButtonListElement } from './input-radio-button-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts index 73427c9aca..13cd0d0827 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts @@ -2,7 +2,8 @@ import { UmbInputListBaseElement } from '../input-list-base/input-list-base.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UMB_SECTION_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import { ManifestSection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestSection} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-input-section') export class UmbInputSectionElement extends UmbInputListBaseElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts index b39e4966d8..67668efe91 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-section.element.js'; import type { UmbInputSectionElement } from './input-section.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts index 473e4d8498..aff0bf4aae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.element.ts @@ -1,5 +1,6 @@ import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUISliderEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUISliderEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-slider') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts index 06afd560ff..b1b841b526 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-slider/input-slider.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-slider.element.js'; import type { UmbInputSliderElement } from './input-slider.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 054c8a1577..190c92d443 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -3,23 +3,16 @@ import { pastePreProcessHandler } from './input-tiny-mce.handlers.js'; import { availableLanguages } from './input-tiny-mce.languages.js'; import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { type Editor, type RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; -import { type TinyMcePluginArguments, type UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { Editor, RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; +import type { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; import { type ManifestTinyMcePlugin, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { - PropertyValueMap, - css, - customElement, - html, - property, - query, - state, -} from '@umbraco-cms/backoffice/external/lit'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import { css, customElement, html, property, query, state } from '@umbraco-cms/backoffice/external/lit'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbMediaHelper } from '@umbraco-cms/backoffice/utils'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; import { UmbStylesheetDetailRepository, UmbStylesheetRuleManager } from '@umbraco-cms/backoffice/stylesheet'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @@ -32,6 +25,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { @state() private _tinyConfig: RawEditorOptions = {}; + // eslint-disable-next-line @typescript-eslint/consistent-type-imports #renderEditor?: typeof import('@umbraco-cms/backoffice/external/tinymce').renderEditor; #mediaHelper = new UmbMediaHelper(); #plugins: Array UmbTinyMcePluginBase> = []; @@ -232,6 +226,9 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { this.#editorRef.destroy(); } + if (!this.#renderEditor) { + throw new Error('TinyMCE renderEditor is not loaded'); + } const editors = await this.#renderEditor(this._tinyConfig); this.#editorRef = editors.pop(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/tiny-mce-plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/tiny-mce-plugin.ts index bb6dd2f8f4..ca0d3ff4d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/tiny-mce-plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/tiny-mce-plugin.ts @@ -1,6 +1,6 @@ import type { UmbInputTinyMceElement } from '@umbraco-cms/backoffice/components'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import type { Editor } from '@umbraco-cms/backoffice/external/tinymce'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts index d05088d86f..c4417ca01c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts @@ -1,5 +1,6 @@ import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-toggle') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts index 7d33c2947a..570d926332 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-toggle.element.js'; import type { UmbInputToggleElement } from './input-toggle.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index 4cb56e5dec..4d8a8ac9ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -1,6 +1,7 @@ -import { UmbInputDocumentPickerRootElement } from '@umbraco-cms/backoffice/document'; +import type { UmbInputDocumentPickerRootElement } from '@umbraco-cms/backoffice/document'; import { html, customElement, property, css, state, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts index 27cc190774..6db10a4b8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.element.ts @@ -1,4 +1,5 @@ -import { TemporaryFileQueueItem, UmbTemporaryFileManager } from '../../temporary-file/temporary-file-manager.class.js'; +import type { TemporaryFileQueueItem} from '../../temporary-file/temporary-file-manager.class.js'; +import { UmbTemporaryFileManager } from '../../temporary-file/temporary-file-manager.class.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { css, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts index 6e638cc010..4a46a89126 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-upload-field/input-upload-field.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-upload-field.element.js'; import type { UmbInputUploadFieldElement } from './input-upload-field.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts index 36ab21138a..4ca54fa5fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts @@ -1,4 +1,4 @@ -import { UmbMultipleColorPickerItemInputElement } from './multiple-color-picker-item-input.element.js'; +import type { UmbMultipleColorPickerItemInputElement } from './multiple-color-picker-item-input.element.js'; import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; import { css, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts index 34cee3cb21..df68e8c44a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts @@ -1,11 +1,13 @@ import { css, html, nothing, customElement, property, query, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { - FormControlMixin, +import type { UUIColorPickerElement, UUIInputElement, - UUIInputEvent, + UUIInputEvent} from '@umbraco-cms/backoffice/external/uui'; +import { + FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts index be9d5f5414..f3d8f7c811 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts @@ -1,6 +1,8 @@ import { css, html, nothing, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts index 3697da0646..052188d85c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts @@ -1,9 +1,11 @@ -import { UmbInputMultipleTextStringItemElement } from './input-multiple-text-string-item.element.js'; +import type { UmbInputMultipleTextStringItemElement } from './input-multiple-text-string-item.element.js'; import { css, html, nothing, repeat, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { UmbInputEvent, UmbChangeEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; export type MultipleTextStringValue = Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts index 212b566856..5fcddbc66f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/table/table.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './table.element.js'; import type { UmbTableElement, UmbTableColumn, UmbTableConfig, UmbTableItem } from './table.element.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts index 034c74bb70..2fdbdbbd47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/tooltip-menu/tooltip-menu.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './tooltip-menu.element.js'; import type { UmbTooltipMenuElement, TooltipMenuItem } from './tooltip-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts index 77299db2ad..a95f6785b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts @@ -1,10 +1,11 @@ -import { UmbPropertyEditorConfig } from '../../../property-editor/index.js'; -import { UmbDataTypeDetailModel, UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; +import type { UmbPropertyEditorConfig } from '../../../property-editor/index.js'; +import type { UmbDataTypeDetailModel} from '@umbraco-cms/backoffice/data-type'; +import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-property-type-based-property') export class UmbPropertyTypeBasedPropertyElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index ccad0f9336..1fe3b0080a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -1,10 +1,10 @@ -import { +import type { PropertyContainerTypes, UmbContentTypePropertyStructureManager, } from './content-type-structure-manager.class.js'; -import { UmbContentTypeModel } from './types.js'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbContentTypeModel } from './types.js'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; export class UmbContentTypeContainerStructureHelper { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index 3422b9c569..535a2c24d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -1,10 +1,10 @@ -import { +import type { PropertyContainerTypes, UmbContentTypePropertyStructureManager, } from './content-type-structure-manager.class.js'; -import { UmbContentTypeModel } from './types.js'; -import { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbContentTypeModel } from './types.js'; +import type { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; export class UmbContentTypePropertyStructureHelper { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 757f0fe316..d0229013bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -1,15 +1,16 @@ -import { UmbContentTypeModel } from './types.js'; -import { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbContentTypeModel } from './types.js'; +import type { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { DocumentTypePropertyTypeResponseModel, PropertyTypeContainerModelBaseModel, PropertyTypeModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; -import { type UmbControllerHost, type UmbController } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost, UmbController } from '@umbraco-cms/backoffice/controller-api'; +import type { + MappingFunction} from '@umbraco-cms/backoffice/observable-api'; import { UmbArrayState, - MappingFunction, partialUpdateFrozenArray, appendToFrozenArray, filterFrozenArray, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index aa1f738902..45d128666c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -1,4 +1,4 @@ -import { +import type { ContentTypeCompositionModel, ContentTypeSortModel, PropertyTypeContainerModelBaseModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.element.ts index ed4da4b8da..b549b7b247 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.element.ts @@ -1,9 +1,10 @@ import { UmbCultureRepository } from '../../repository/culture.repository.js'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { html, repeat, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIComboboxElement, UUIComboboxEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIComboboxElement, UUIComboboxEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { CultureReponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CultureReponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-input-culture-select') export class UmbInputCultureSelectElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.stories.ts index f85525cad6..2f2fb45be4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/culture/components/input-culture-select/input-culture-select.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-culture-select.element.js'; import type { UmbInputCultureSelectElement } from './input-culture-select.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/culture.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/culture.repository.ts index a44ad431d6..de7c5ed683 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/culture.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/culture.repository.ts @@ -1,7 +1,7 @@ import { UmbCultureServerDataSource } from './sources/culture.server.data.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { type UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbCultureRepository extends UmbBaseController implements UmbApi { #dataSource: UmbCultureServerDataSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/manifests.ts index 95442dc615..561f903d29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/manifests.ts @@ -1,5 +1,5 @@ import { UmbCultureRepository } from './culture.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_CULTURE_REPOSITORY_ALIAS = 'Umb.Repository.Culture'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/culture.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/culture.server.data.ts index b1fb2bc0d1..980f6b8f2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/culture.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/culture.server.data.ts @@ -1,4 +1,4 @@ -import { UmbCultureDataSource } from './index.js'; +import type { UmbCultureDataSource } from './index.js'; import { CultureResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts index a365433abe..b853e38f36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/culture/repository/sources/index.ts @@ -1,4 +1,4 @@ -import { PagedCultureReponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PagedCultureReponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; // TODO: This is a temporary solution until we have a proper paging interface diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.context.ts index ca360ce05c..18cb146df5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/data-type-input/data-type-input.context.ts @@ -1,8 +1,8 @@ import { DATA_TYPE_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_DATA_TYPE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbDataTypePickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.element.ts index 57525bec84..ec26e759c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.element.ts @@ -1,6 +1,6 @@ import { html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; +import type { PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/data-type'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.stories.ts index 07cfab1e0b..d1172ac20b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/property-editor-config/property-editor-config.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorConfigElement } from './property-editor-config.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.stories.ts index 935ad525d9..8e32f6ad9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/components/ref-data-type/ref-data-type.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbRefDataTypeElement } from './ref-data-type.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import { UMB_PROPERTY_EDITOR_SCHEMA_ALIAS_DEFAULT } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts index 834eb50114..382e1b2b14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/copy.action.ts @@ -1,8 +1,9 @@ -import { type UmbCopyDataTypeRepository } from '../../repository/copy/data-type-copy.repository.js'; +import type { UmbCopyDataTypeRepository } from '../../repository/copy/data-type-copy.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_DATA_TYPE_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/manifests.ts index 9e4b08993a..d13f6c9c49 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/copy/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DATA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UMB_COPY_DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/copy/manifests.js'; import { UmbCopyDataTypeEntityAction } from './copy.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts index 4a3a7a67b4..f6df91f682 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/create.action.ts @@ -1,8 +1,9 @@ -import { UmbDataTypeDetailRepository } from '../../repository/detail/data-type-detail.repository.js'; +import type { UmbDataTypeDetailRepository } from '../../repository/detail/data-type-detail.repository.js'; import { UMB_DATA_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts index 4c52456651..430f3d059f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, UMB_DATA_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/detail/manifests.js'; import { UmbCreateDataTypeEntityAction } from './create.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts index 8958f2672f..a515569529 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/create/modal/data-type-create-options-modal.element.ts @@ -1,5 +1,5 @@ import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; -import { UmbDataTypeCreateOptionsModalData } from './index.js'; +import type { UmbDataTypeCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts index b119b19021..a125e39f67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/manifests.ts @@ -4,7 +4,7 @@ import { manifests as createManifests } from './create/manifests.js'; import { manifests as moveManifests } from './move/manifests.js'; import { manifests as copyManifests } from './copy/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/manifests.ts index 43b11a3ccb..09b87f07b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DATA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UMB_MOVE_DATA_TYPE_REPOSITORY_ALIAS } from '../../repository/move/manifests.js'; import { UmbMoveDataTypeEntityAction } from './move.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts index 6e3725338b..a65acb4c9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/entity-actions/move/move.action.ts @@ -1,8 +1,9 @@ -import { UmbMoveDataTypeRepository } from '../../repository/move/data-type-move.repository.js'; +import type { UmbMoveDataTypeRepository } from '../../repository/move/data-type-move.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_DATA_TYPE_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts index 380736a4f3..eee0bfad33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts @@ -3,9 +3,10 @@ import { UmbDataTypeTreeRepository } from '../../tree/data-type-tree.repository. import type { UmbDataTypeDetailModel } from '../../types.js'; import { css, html, customElement, state, repeat, when } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { UmbDataTypePickerFlowDataTypePickerModalData, - UmbDataTypePickerFlowDataTypePickerModalValue, + UmbDataTypePickerFlowDataTypePickerModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts index 6c30d005bb..279baa268f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -2,16 +2,18 @@ import { UmbDataTypeTreeRepository } from '../../tree/data-type-tree.repository. import { css, html, repeat, customElement, state, when, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; -import { - UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL, +import type { UmbDataTypePickerFlowModalData, UmbDataTypePickerFlowModalValue, + UmbModalRouteBuilder} from '@umbraco-cms/backoffice/modal'; +import { + UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL, UmbModalBaseElement, - UmbModalRouteBuilder, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; -import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { ManifestPropertyEditorUi} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; import { UMB_DATATYPE_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/data-type'; interface GroupedItems { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index 47727fa36a..010eb6ffee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -1,12 +1,14 @@ import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; -import { +import type { UmbPropertyEditorUIPickerModalData, - UmbPropertyEditorUIPickerModalValue, + UmbPropertyEditorUIPickerModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; -import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; interface GroupedPropertyEditorUIs { [key: string]: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts index e60179182b..894a40e515 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIPickerModalElement } from './property-editor-ui-picker-modal.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUIPickerModalValue } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts index c747b7bee9..a3d62b7701 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.repository.ts @@ -1,9 +1,12 @@ -import { UMB_DATA_TYPE_TREE_STORE_CONTEXT, UmbDataTypeTreeStore } from '../../tree/data-type-tree.store.js'; +import type { UmbDataTypeTreeStore } from '../../tree/data-type-tree.store.js'; +import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/data-type-tree.store.js'; import { UmbDataTypeDetailRepository } from '../detail/data-type-detail.repository.js'; import { UmbDataTypeCopyServerDataSource } from './data-type-copy.server.data-source.js'; -import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbCopyDataSource, UmbCopyRepository, UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbCopyDataSource, UmbCopyRepository} from '@umbraco-cms/backoffice/repository'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbCopyDataTypeRepository extends UmbRepositoryBase implements UmbCopyRepository { #init: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.server.data-source.ts index 5fb3eb8875..41b4fd336a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/copy/data-type-copy.server.data-source.ts @@ -1,7 +1,7 @@ import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbCopyDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbCopyDataSource } from '@umbraco-cms/backoffice/repository'; /** * A data source for Data Type items that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.repository.ts index 8aa8d8f0ab..f252ba9568 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.repository.ts @@ -1,7 +1,8 @@ -import { UmbDataTypeDetailModel } from '../../types.js'; +import type { UmbDataTypeDetailModel } from '../../types.js'; import { UmbDataTypeServerDataSource } from './data-type-detail.server.data-source.js'; -import { UMB_DATA_TYPE_DETAIL_STORE_CONTEXT, UmbDataTypeDetailStore } from './data-type-detail.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbDataTypeDetailStore } from './data-type-detail.store.js'; +import { UMB_DATA_TYPE_DETAIL_STORE_CONTEXT } from './data-type-detail.store.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbDataTypeDetailRepository extends UmbDetailRepositoryBase { #init: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts index 593cb6b875..72cf13a4c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.server.data-source.ts @@ -1,10 +1,11 @@ -import { UmbDataTypeDetailModel, UmbDataTypePropertyModel } from '../../types.js'; +import type { UmbDataTypeDetailModel, UmbDataTypePropertyModel } from '../../types.js'; import { UMB_DATA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; -import { +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { CreateDataTypeRequestModel, - DataTypeModelBaseModel, + DataTypeModelBaseModel} from '@umbraco-cms/backoffice/backend-api'; +import { DataTypeResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts index f675e2ba49..8353a18d0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/data-type-detail.store.ts @@ -1,7 +1,7 @@ -import { UmbDataTypeDetailModel } from '../../types.js'; +import type { UmbDataTypeDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/manifests.ts index 7e2f423210..4d3561bcbf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/detail/manifests.ts @@ -1,6 +1,6 @@ import { UmbDataTypeDetailRepository } from './data-type-detail.repository.js'; import { UmbDataTypeDetailStore } from './data-type-detail.store.js'; -import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DATA_TYPE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.DataType.Detail'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts index 1794d99ffc..4879b439f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts @@ -2,7 +2,7 @@ import { UmbDataTypeItemServerDataSource } from './data-type-item.server.data.js import { UMB_DATA_TYPE_ITEM_STORE_CONTEXT } from './data-type-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbDataTypeItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts index de7c8a32cd..305afb247f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts @@ -1,5 +1,6 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import { DataTypeItemResponseModel, DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { DataTypeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts index 85496e4315..d2cc030fd8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts @@ -1,6 +1,6 @@ -import { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts index 3ed42c6ab0..78720534b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.repository.ts @@ -1,8 +1,11 @@ -import { UMB_DATA_TYPE_TREE_STORE_CONTEXT, UmbDataTypeTreeStore } from '../../tree/data-type-tree.store.js'; +import type { UmbDataTypeTreeStore } from '../../tree/data-type-tree.store.js'; +import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/data-type-tree.store.js'; import { UmbDataTypeMoveServerDataSource } from './data-type-move.server.data-source.js'; -import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbMoveDataSource, UmbMoveRepository, UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbMoveDataSource, UmbMoveRepository} from '@umbraco-cms/backoffice/repository'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbMoveDataTypeRepository extends UmbRepositoryBase implements UmbMoveRepository { #init: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts index 2d31037380..180e1ecd47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/move/data-type-move.server.data-source.ts @@ -1,7 +1,7 @@ import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbMoveDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbMoveDataSource } from '@umbraco-cms/backoffice/repository'; /** * A data source for Data Type items that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts index 2217d65343..3c3f2495df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts @@ -2,9 +2,9 @@ import { UmbTreeRepositoryBase } from '../../tree/tree-repository-base.js'; import { UMB_DATA_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDataTypeTreeServerDataSource } from './data-type-tree.server.data-source.js'; import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from './data-type-tree.store.js'; -import { UmbDataTypeTreeItemModel, UmbDataTypeTreeRootModel } from './types.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbDataTypeTreeItemModel, UmbDataTypeTreeRootModel } from './types.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbDataTypeTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts index eaeb377257..634b7d300b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts @@ -1,6 +1,7 @@ -import { UmbDataTypeTreeItemModel } from './types.js'; +import type { UmbDataTypeTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { DataTypeResource, DataTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DataTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts index 030ae1dc06..f2d4e9967a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts @@ -1,10 +1,10 @@ import { UmbStoreConnector } from '../../store/store-connector.js'; import { UmbUniqueTreeStore } from '../../tree/unique-tree-store.js'; import { UMB_DATA_TYPE_DETAIL_STORE_CONTEXT } from '../repository/detail/data-type-detail.store.js'; -import { UmbDataTypeDetailModel } from '../types.js'; -import { UmbDataTypeTreeItemModel } from './types.js'; +import type { UmbDataTypeDetailModel } from '../types.js'; +import type { UmbDataTypeTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts index fe78102a76..c34bb1c328 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts @@ -1,9 +1,10 @@ import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbDataTypeFolderServerDataSource } from './data-type-folder.server.data-source.js'; -import { UmbDataTypeFolderTreeItemModel } from './types.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbDataTypeFolderTreeItemModel } from './types.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts index acc854af6a..87a2ef4f56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts index 6b74960e68..c8833d391b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/types.ts @@ -1,5 +1,5 @@ -import { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbDataTypeTreeItemModel } from '../types.js'; +import type { UMB_DATA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import type { UmbDataTypeTreeItemModel } from '../types.js'; export interface UmbDataTypeFolderTreeItemModel extends UmbDataTypeTreeItemModel { entityType: typeof UMB_DATA_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts index 5c813894aa..b3a44373f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/types.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeEntityType, UmbDataTypeFolderEntityType, UmbDataTypeRootEntityType } from '../entity.js'; +import type { UmbDataTypeEntityType, UmbDataTypeFolderEntityType, UmbDataTypeRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbDataTypeTreeItemModel extends UmbUniqueTreeItemModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts index b783f836d8..1204540bba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/types.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeEntityType } from './entity.js'; +import type { UmbDataTypeEntityType } from './entity.js'; export interface UmbDataTypeDetailModel { entityType: UmbDataTypeEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace-editor.element.ts index 57fba8cd2f..e590ce02e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace-editor.element.ts @@ -1,8 +1,9 @@ import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from './data-type-workspace.context-token.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; /** * @element umb-data-type-workspace-editor * @description - Element for displaying the Data Type Workspace edit route. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts index 72e6fb88e7..595e7821b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.context.ts @@ -1,8 +1,9 @@ import { UmbDataTypeDetailRepository } from '../repository/detail/data-type-detail.repository.js'; import type { UmbDataTypeDetailModel } from '../types.js'; -import { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import type { + UmbInvariantableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbInvariantableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, UmbInvariantWorkspacePropertyDatasetContext, } from '@umbraco-cms/backoffice/workspace'; @@ -12,11 +13,12 @@ import { UmbObjectState, UmbStringState, } from '@umbraco-cms/backoffice/observable-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { combineLatest, map } from '@umbraco-cms/backoffice/external/rxjs'; -import { +import type { PropertyEditorConfigDefaultData, - PropertyEditorConfigProperty, + PropertyEditorConfigProperty} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_PROPERTY_EDITOR_SCHEMA_ALIAS_DEFAULT } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts index e4af72f9ec..d0c0d0652a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.modal-token.ts @@ -1,5 +1,6 @@ -import { UmbDataTypeDetailModel } from '../types.js'; -import { UmbModalToken, UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import type { UmbDataTypeDetailModel } from '../types.js'; +import type { UmbWorkspaceData, UmbWorkspaceValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export const UMB_DATATYPE_WORKSPACE_MODAL = new UmbModalToken< UmbWorkspaceData, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts index 4da31b240f..b844aa0604 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/data-type-workspace.stories.ts @@ -1,6 +1,6 @@ import './data-type-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { data } from '../../../../mocks/data/data-type/data-type.data.js'; import type { UmbDataTypeWorkspaceElement } from './data-type-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts index 7a4dd41410..c49ac7afd9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.element.ts @@ -1,14 +1,15 @@ import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '../../data-type-workspace.context-token.js'; -import { UmbDataTypeDetailModel } from '../../../types.js'; +import type { UmbDataTypeDetailModel } from '../../../types.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-data-type-details-workspace-view') export class UmbDataTypeDetailsWorkspaceViewEditElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts index 5631e9b5ff..58e3471ae7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/details/data-type-details-workspace-view.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDataTypeDetailsWorkspaceViewEditElement } from './data-type-details-workspace-view.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts index d7c14bc646..c89df9a893 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.element.ts @@ -1,9 +1,9 @@ import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '../../data-type-workspace.context-token.js'; -import { UmbDataTypeDetailModel } from '../../../types.js'; +import type { UmbDataTypeDetailModel } from '../../../types.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-workspace-view-data-type-info') export class UmbWorkspaceViewDataTypeInfoElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts index 19462c32e5..fe7c6d2adf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/workspace/views/info/workspace-view-data-type-info.stories.ts @@ -1,6 +1,6 @@ import './workspace-view-data-type-info.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbWorkspaceViewDataTypeInfoElement } from './workspace-view-data-type-info.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/context-debug.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/context-debug.controller.ts index 94d3cd4fa7..b7ad12f008 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/context-debug.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/context-debug.controller.ts @@ -1,5 +1,5 @@ import { contextData, UMB_DEBUG_CONTEXT_EVENT_TYPE } from '@umbraco-cms/backoffice/context-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; // Temp controller to get the code away from the app.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts index 57893717f3..bfff10996f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/debug.element.ts @@ -1,23 +1,26 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { + TemplateResult} from '@umbraco-cms/backoffice/external/lit'; import { css, html, nothing, - TemplateResult, customElement, property, state, } from '@umbraco-cms/backoffice/external/lit'; +import type { + DebugContextData, + DebugContextItemData} from '@umbraco-cms/backoffice/context-api'; import { contextData, - DebugContextData, - DebugContextItemData, UmbContextDebugRequest, } from '@umbraco-cms/backoffice/context-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_CONTEXT_DEBUGGER_MODAL, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts index 0c9fa75c14..d782460c12 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/debug/modals/debug/debug-modal.element.ts @@ -1,6 +1,7 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContextDebuggerModalData, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbContextDebuggerModalData} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @customElement('umb-context-debugger-modal') export default class UmbContextDebuggerModalElement extends UmbModalBaseElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts index eca7e06460..a8431cf7d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/copy/copy.action.ts @@ -1,5 +1,5 @@ import { UmbEntityActionBase } from '../../entity-action.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCopyEntityAction }> extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts index 3d15ec51d5..6a5e9b4fdb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts @@ -1,8 +1,9 @@ import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; -import { UmbDetailRepository, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbDetailRepository, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; export class UmbDeleteEntityAction< T extends UmbDetailRepository & UmbItemRepository, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts index 8f7f6c49a1..3313c6fb58 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.ts @@ -1,5 +1,5 @@ import { UmbEntityActionBase } from '../../entity-action.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; // TODO: investigate what we need to finish the generic move action. We would need to open a picker, which requires a modal token, // maybe we can use kinds to make a specific manifest to the move action. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts index f2887a73f7..1f5eb8c71d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RENAME_MODAL_ALIAS = 'Umb.Modal.Rename'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts index 7f5eeef282..e28f478f15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/modal/rename-modal.element.ts @@ -1,5 +1,5 @@ -import { UmbRenameRepository } from '../types.js'; -import { UmbRenameModalData, UmbRenameModalValue } from './rename-modal.token.js'; +import type { UmbRenameRepository } from '../types.js'; +import type { UmbRenameModalData, UmbRenameModalValue } from './rename-modal.token.js'; import { html, customElement, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts index a37961fc61..ee36851137 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename-repository-base.ts @@ -1,9 +1,10 @@ -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { UmbRenameDataSource, UmbRenameDataSourceConstructor } from '@umbraco-cms/backoffice/entity-action'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; +import type { UmbRenameDataSource, UmbRenameDataSourceConstructor } from '@umbraco-cms/backoffice/entity-action'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbDetailStore } from '@umbraco-cms/backoffice/store'; export abstract class UmbRenameRepositoryBase extends UmbRepositoryBase { #detailStore?: UmbDetailStore; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts index dde8c935c8..a718fa1d2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/rename.action.ts @@ -1,8 +1,9 @@ import { UMB_RENAME_MODAL } from './modal/rename-modal.token.js'; -import { type UmbRenameRepository } from './types.js'; +import type { UmbRenameRepository } from './types.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbRenameEntityAction extends UmbEntityActionBase> { #modalManagerContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts index 48dbb4e7a4..af9419a24d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/rename/types.ts @@ -1,5 +1,5 @@ -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbRenameRepository { rename(unique: string, name: string): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts index 5170df11cf..88a75fc50a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.ts @@ -1,5 +1,5 @@ import { UmbEntityActionBase } from '../../entity-action.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbSortChildrenOfEntityAction< T extends { sortChildrenOf(): Promise }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts index b9f4fb27ff..c5f29fafc4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts @@ -1,8 +1,9 @@ import { UmbEntityActionBase } from '../../entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; -import { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; export class UmbTrashEntityAction< T extends UmbItemRepository & { trash(unique: string): Promise }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts index ba1ba45f2d..42f7ade92f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts @@ -1,5 +1,5 @@ import { html, customElement, property, state, css } from '@umbraco-cms/backoffice/external/lit'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-entity-action-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts index 84656822a9..7c95828fae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.element.ts @@ -1,8 +1,8 @@ import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; import { html, nothing, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIMenuItemEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIMenuItemEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; @customElement('umb-entity-action') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts index 17ecb2eed6..f19e13fce3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action.ts @@ -1,5 +1,6 @@ -import { UmbAction, UmbActionBase } from '../action/index.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbAction} from '../action/index.js'; +import { UmbActionBase } from '../action/index.js'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export interface UmbEntityAction extends UmbAction { unique: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.element.ts index 855a95bb9d..8fde10686b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.element.ts @@ -1,7 +1,7 @@ -import { UmbEntityBulkActionBase } from './entity-bulk-action.js'; +import type { UmbEntityBulkActionBase } from './entity-bulk-action.js'; import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; import { html, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.ts index e723c079fe..20b2250b1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/entity-bulk-action.ts @@ -1,4 +1,5 @@ -import { UmbAction, UmbActionBase } from '@umbraco-cms/backoffice/action'; +import type { UmbAction} from '@umbraco-cms/backoffice/action'; +import { UmbActionBase } from '@umbraco-cms/backoffice/action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export interface UmbEntityBulkAction extends UmbAction { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts index 41b9103a67..6ffee549df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/menu-alias.condition.ts @@ -1,6 +1,6 @@ import { UMB_MENU_CONTEXT } from '../../menu/menu.context.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts index 7c31162ddf..6b42617f12 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/section-alias.condition.ts @@ -1,5 +1,5 @@ import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts index c94877f2da..de0c728c65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts @@ -1,6 +1,6 @@ -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbExtensionCondition, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts index 490d6d39a3..74dc170c54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts @@ -1,4 +1,4 @@ -import { CollectionAliasConditionConfig } from '../../collection/collection-alias.condition.js'; +import type { CollectionAliasConditionConfig } from '../../collection/collection-alias.condition.js'; import type { SectionAliasConditionConfig } from './section-alias.condition.js'; import type { SwitchConditionConfig } from './switch.condition.js'; import type { UserPermissionConditionConfig } from '@umbraco-cms/backoffice/user-permission'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-element.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-element.interface.ts index 7a45ec286d..d109e0bacd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-element.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/tree-item-element.interface.ts @@ -1,4 +1,4 @@ -import { UmbTreeItemModelBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbTreeItemModelBase } from '@umbraco-cms/backoffice/tree'; export interface UmbTreeItemElement extends HTMLElement { item?: UmbTreeItemModelBase; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/collection-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/collection-action.model.ts index 7b231277d4..af178c67bd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/collection-action.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/collection-action.model.ts @@ -1,4 +1,4 @@ -import { ConditionTypes } from '../conditions/types.js'; +import type { ConditionTypes } from '../conditions/types.js'; import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard.model.ts index ddb6ec830c..8c1ddc0ac5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dashboard.model.ts @@ -1,4 +1,4 @@ -import { ConditionTypes } from '../conditions/types.js'; +import type { ConditionTypes } from '../conditions/types.js'; import type { UmbDashboardElement } from '../interfaces/index.js'; import type { ManifestElement, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-sidebar-app.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-sidebar-app.model.ts index 1c9e399489..2a0abb3bc7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-sidebar-app.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-sidebar-app.model.ts @@ -1,4 +1,4 @@ -import { ConditionTypes } from '../conditions/types.js'; +import type { ConditionTypes } from '../conditions/types.js'; import type { UmbSectionSidebarAppElement } from '../interfaces/section-sidebar-app-element.interface.js'; import type { ManifestElement, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-view.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-view.model.ts index 1fd5d919e3..a27c2e4ce1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-view.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/section-view.model.ts @@ -1,4 +1,4 @@ -import { ConditionTypes } from '../conditions/types.js'; +import type { ConditionTypes } from '../conditions/types.js'; import type { UmbSectionViewElement } from '../interfaces/section-view-element.interface.js'; import type { ManifestElement, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts index 71e4c08ca9..b092a15597 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/store.model.ts @@ -1,6 +1,6 @@ -import { type ManifestApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { type UmbTreeStore } from '@umbraco-cms/backoffice/tree'; +import type { ManifestApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbTreeStore } from '@umbraco-cms/backoffice/tree'; export interface ManifestStore extends ManifestApi { type: 'store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts index f78addaef1..0f30b9dec6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/tree-item.model.ts @@ -1,4 +1,4 @@ -import { UmbTreeItemElement } from '../interfaces/index.js'; +import type { UmbTreeItemElement } from '../interfaces/index.js'; import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestTreeItem extends ManifestElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-context.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-context.model.ts index d4b2a7111a..98181a6f38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-context.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-context.model.ts @@ -1,4 +1,4 @@ -import { ConditionTypes } from '../conditions/types.js'; +import type { ConditionTypes } from '../conditions/types.js'; import type { ManifestApi, ManifestWithDynamicConditions, UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface ManifestWorkspaceContext extends ManifestWithDynamicConditions, ManifestApi { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view-collection.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view-collection.model.ts index 9e2f9cab82..08fbf0e596 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view-collection.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view-collection.model.ts @@ -1,4 +1,4 @@ -import { ConditionTypes } from '../conditions/types.js'; +import type { ConditionTypes } from '../conditions/types.js'; import type { ManifestWithDynamicConditions, ManifestWithView, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view.model.ts index fce3429634..3f3c20468f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-view.model.ts @@ -1,4 +1,4 @@ -import { ConditionTypes } from '../conditions/types.js'; +import type { ConditionTypes } from '../conditions/types.js'; import type { UmbWorkspaceViewElement } from '../interfaces/workspace-view-element.interface.js'; import type { ManifestWithDynamicConditions, ManifestWithView } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts index 4006002fae..7299aebe2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/registry.ts @@ -1,5 +1,6 @@ import type { ManifestTypes } from './models/index.js'; -import { ManifestKind, UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestKind} from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api'; export type UmbBackofficeManifestKind = ManifestKind; export type UmbBackofficeExtensionRegistry = UmbExtensionRegistry; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts index 03d8f5795a..6e607850c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts @@ -1,8 +1,10 @@ import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { css, html, customElement, query, state, property } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIComboboxElement, UUIComboboxEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIComboboxElement, UUIComboboxEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestLocalization, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestLocalization} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; interface UmbCultureInputOption { name: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts index 1b8eb631d7..819a8d24c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/manifests.ts @@ -1,5 +1,5 @@ -import { ManifestTypes } from '../extension-registry/index.js'; -import { ManifestLocalization } from '../extension-registry/models/localization.model.js'; +import type { ManifestTypes } from '../extension-registry/index.js'; +import type { ManifestLocalization } from '../extension-registry/models/localization.model.js'; const localizationManifests: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts index d198253e15..10ffa5d6e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts @@ -1,6 +1,7 @@ import { aTimeout, expect } from '@open-wc/testing'; import { UmbLocalizationRegistry } from './localization.registry.js'; -import { ManifestLocalization, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestLocalization} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; //#region Localizations const english: ManifestLocalization = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts index b9ffb20347..c123b55f54 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts @@ -1,12 +1,14 @@ -import { +import type { UmbLocalizationDictionary, UmbLocalizationFlatDictionary, - LocalizationSet, + LocalizationSet} from '@umbraco-cms/backoffice/localization-api'; +import { registerLocalization, localizations, } from '@umbraco-cms/backoffice/localization-api'; import { hasDefaultExport, loadManifestPlainJs } from '@umbraco-cms/backoffice/extension-api'; -import { UmbBackofficeExtensionRegistry, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbBackofficeExtensionRegistry} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { BehaviorSubject, Subject, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/stories/localize.element.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/stories/localize.element.stories.ts index 89570ef7fd..0ac547febe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/stories/localize.element.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/stories/localize.element.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbLocalizeElement } from '../localize.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import '../localize.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts index 6ba0930c06..d168325294 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu-item-layout/menu-item-layout.element.ts @@ -1,6 +1,7 @@ import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbSectionContext, UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; +import type { UmbSectionContext} from '@umbraco-cms/backoffice/section'; +import { UMB_SECTION_CONTEXT } from '@umbraco-cms/backoffice/section'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-menu-item-layout') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts index a920b2550f..aa26bc19dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/menu.element.ts @@ -1,6 +1,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { ManifestMenu, ManifestMenuItem } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu, ManifestMenuItem } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import './menu-item/menu-item-default.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts index 84e0173b6f..787f356382 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.element.ts @@ -1,6 +1,7 @@ import { css, html, ifDefined, customElement, query } from '@umbraco-cms/backoffice/external/lit'; import { loadCodeEditor, type UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; -import { UmbCodeEditorModalData, UmbCodeEditorModalValue, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbCodeEditorModalData, UmbCodeEditorModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; @customElement('umb-code-editor-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.stories.ts index 38016588f5..37dd470a28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/code-editor/code-editor-modal.stories.ts @@ -1,8 +1,8 @@ import '../confirm/confirm-modal.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; -import { UmbCodeEditorModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbCodeEditorModalData } from '@umbraco-cms/backoffice/modal'; export default { title: 'API/Modals/Layouts/Code Editor', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts index 3b18675b03..9a46e88f56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbConfirmModalData, UmbConfirmModalValue, UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbConfirmModalData, UmbConfirmModalValue, UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-confirm-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts index 2cf848d042..607e999216 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts @@ -1,6 +1,6 @@ import './confirm-modal.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbConfirmModalElement } from './confirm-modal.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.element.ts index 53591fe73a..a0177a7f7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.element.ts @@ -1,10 +1,11 @@ import { css, html, unsafeHTML, when, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { OEmbedResult, - OEmbedStatus, UmbEmbeddedMediaModalData, - UmbEmbeddedMediaModalValue, + UmbEmbeddedMediaModalValue} from '@umbraco-cms/backoffice/modal'; +import { + OEmbedStatus, UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.stories.ts index 04909e60fa..ee850fdeb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/embedded-media/embedded-media-modal.stories.ts @@ -1,9 +1,9 @@ import '../../../components/body-layout/body-layout.element.js'; import './embedded-media-modal.element.js'; -import { Meta } from '@storybook/web-components'; +import type { Meta } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; -import { UmbEmbeddedMediaModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbEmbeddedMediaModalData } from '@umbraco-cms/backoffice/modal'; export default { title: 'API/Modals/Layouts/Embedded Media', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts index 1d56701b43..10954380f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.element.ts @@ -4,7 +4,8 @@ import type { UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbIconPickerModalData, UmbIconPickerModalValue, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbIconPickerModalData, UmbIconPickerModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/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/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts index 6a7c2ce832..625865aa29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/icon-picker/icon-picker-modal.stories.ts @@ -1,11 +1,11 @@ import '../../../components/body-layout/body-layout.element.js'; import './icon-picker-modal.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbIconPickerModalElement } from './icon-picker-modal.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; -import { UmbIconPickerModalValue } from '@umbraco-cms/backoffice/modal'; +import type { UmbIconPickerModalValue } from '@umbraco-cms/backoffice/modal'; export default { title: 'API/Modals/Layouts/Icon Picker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts index 7e15711a0c..f0fa3a54cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts @@ -1,19 +1,19 @@ -import { UmbTreeElement, type UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; +import type { UmbTreeElement, UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; import { css, html, nothing, customElement, query, state, styleMap } from '@umbraco-cms/backoffice/external/lit'; -import { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; -import { +import type { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData, UmbLinkPickerModalValue, - UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; import { UMB_DOCUMENT_TREE_ALIAS } from '@umbraco-cms/backoffice/document'; @customElement('umb-link-picker-modal') export class UmbLinkPickerModalElement extends UmbModalBaseElement { - @state() + @state() private _selectionConfiguration: UmbTreeSelectionConfiguration = { multiple: false, selectable: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.stories.ts index 8427714efa..f8b54687ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.stories.ts @@ -1,7 +1,7 @@ import '../../../components/body-layout/body-layout.element.js'; import './link-picker-modal.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbLinkPickerModalElement } from './link-picker-modal.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.context.ts index 942f03bad7..964922e822 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.context.ts @@ -1,5 +1,5 @@ -import { UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index 913dbf9dec..059494e8b8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -4,11 +4,13 @@ import { } from './property-settings-modal.context.js'; import { UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/document-type'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; -import { PropertyValueMap, css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbPropertySettingsModalValue, - UmbPropertySettingsModalData, + UmbPropertySettingsModalData} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts index 5f936a8af5..c72ad04237 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts @@ -1,10 +1,12 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; -import { ManifestSection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { +import type { ManifestSection} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbSectionPickerModalData, - UmbSectionPickerModalValue, + UmbSectionPickerModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/template/template-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/template/template-modal.element.ts index 975dee1733..e3b4fe4200 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/template/template-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/template/template-modal.element.ts @@ -1,9 +1,11 @@ -import { UmbInputEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbInputEvent } from '@umbraco-cms/backoffice/event'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { css, html, ifDefined, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; -import { UmbTemplateModalData, UmbTemplateModalValue, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { TemplateResource, TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbTemplateModalData, UmbTemplateModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { TemplateResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; //TODO: make a default tree-picker that can be used across multiple pickers diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts index 8de85023a7..badaa63ece 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/tree-picker/tree-picker-modal.element.ts @@ -1,8 +1,9 @@ import { html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbTreePickerModalData, UmbPickerModalValue, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbTreePickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbTreeElement, UmbTreeItemModelBase, type UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; +import type { UmbTreeElement, UmbTreeItemModelBase, UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; @customElement('umb-tree-picker-modal') export class UmbTreePickerModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-element.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-element.element.ts index 103d8d5456..3a15a0649b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-element.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-element.element.ts @@ -1,6 +1,6 @@ import { property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalContext } from '@umbraco-cms/backoffice/modal'; import type { ManifestModal, UmbModalExtensionElement } from '@umbraco-cms/backoffice/extension-registry'; export abstract class UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts index 3028aa5dab..11751c8fc8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.controller.ts @@ -1,5 +1,5 @@ import { UmbModalRouteRegistration } from './modal-route-registration.js'; -import { UmbModalToken } from './token/index.js'; +import type { UmbModalToken } from './token/index.js'; import { UMB_ROUTE_CONTEXT } from '@umbraco-cms/backoffice/router'; import type { UmbController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.ts index 94974dfe09..9cf6f10e56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal-route-registration.ts @@ -1,6 +1,6 @@ -import { UmbModalContext } from './modal.context.js'; -import { UmbModalConfig, UmbModalManagerContext } from './modal-manager.context.js'; -import { UmbModalToken } from './token/modal-token.js'; +import type { UmbModalContext } from './modal.context.js'; +import type { UmbModalConfig, UmbModalManagerContext } from './modal-manager.context.js'; +import type { UmbModalToken } from './token/modal-token.js'; import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbId } from '@umbraco-cms/backoffice/id'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts index a975018ab0..c9c9fbeb74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.context.ts @@ -1,4 +1,4 @@ -import { UmbModalConfig, UmbModalType } from './modal-manager.context.js'; +import type { UmbModalConfig, UmbModalType } from './modal-manager.context.js'; import { UmbModalToken } from './token/modal-token.js'; import type { IRouterSlot } from '@umbraco-cms/backoffice/external/router-slot'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts index f42aedfc3b..6d490d3c69 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/modal.element.ts @@ -1,17 +1,21 @@ -import { UMB_MODAL_CONTEXT, UmbModalContext } from './modal.context.js'; -import { ManifestModal, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbModalContext } from './modal.context.js'; +import { UMB_MODAL_CONTEXT } from './modal.context.js'; +import type { ManifestModal} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { CSSResultGroup, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import { UUIDialogElement, UUIModalDialogElement, UUIModalSidebarElement } from '@umbraco-cms/backoffice/external/uui'; -import { UmbRouterSlotElement } from '@umbraco-cms/backoffice/router'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { UUIDialogElement, UUIModalDialogElement, UUIModalSidebarElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbRouterSlotElement } from '@umbraco-cms/backoffice/router'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; +import type { + UmbContextRequestEvent} from '@umbraco-cms/backoffice/context-api'; import { UMB_CONTENT_REQUEST_EVENT_TYPE, - UmbContextProvider, - UmbContextRequestEvent, + UmbContextProvider } from '@umbraco-cms/backoffice/context-api'; @customElement('umb-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-dictionary-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-dictionary-modal.token.ts index a439e1af7b..0f3aa558be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-dictionary-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-dictionary-modal.token.ts @@ -1,4 +1,4 @@ -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbCreateDictionaryModalData { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-modal.token.ts index aafd1b46b3..197c461937 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbModalToken, UmbTreePickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbTreePickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export type UmbDataTypePickerModalData = UmbTreePickerModalData; export type UmbDataTypePickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts index 504df89c36..a1ceefbbac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/debug-modal.token.ts @@ -1,4 +1,4 @@ -import { TemplateResult } from '@umbraco-cms/backoffice/external/lit'; +import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbContextDebuggerModalData { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/dictionary-item-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/dictionary-item-picker-modal.token.ts index 025850b960..508f91301e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/dictionary-item-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/dictionary-item-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbEntityTreeItemModel } from '../../tree/types.js'; -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbEntityTreeItemModel } from '../../tree/types.js'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbDictionaryItemPickerModalData = UmbTreePickerModalData; export type UmbDictionaryItemPickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-picker-modal.token.ts index b4b455f429..54eaf9b49a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import type { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbDocumentPickerModalData = UmbTreePickerModalData; export type UmbDocumentPickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-type-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-type-picker-modal.token.ts index e967944eee..d870840b31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-type-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/document-type-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbDocumentTypeTreeItemModel } from '@umbraco-cms/backoffice/document-type'; -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbDocumentTypeTreeItemModel } from '@umbraco-cms/backoffice/document-type'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbDocumentTypePickerModalData = UmbTreePickerModalData; export type UmbDocumentTypePickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/import-dictionary-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/import-dictionary-modal.token.ts index 9f5ddccac3..151ae7c191 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/import-dictionary-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/import-dictionary-modal.token.ts @@ -1,5 +1,5 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export interface UmbImportDictionaryModalData { unique: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/language-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/language-picker-modal.token.ts index c2bf3e9253..e2694dea51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/language-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/language-picker-modal.token.ts @@ -1,4 +1,4 @@ -import { LanguageItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbLanguagePickerModalData { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-tree-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-tree-picker-modal.token.ts index e4718f13eb..e65d815654 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-tree-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-tree-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; -import { ContentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { ContentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbMediaTreePickerModalData = UmbTreePickerModalData; export type UmbMediaTreePickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-type-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-type-picker-modal.token.ts index 0b6da132e8..61fa5de193 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-type-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/media-type-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export type UmbMediaTypePickerModalData = UmbTreePickerModalData; export type UmbMediaTypePickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/member-type-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/member-type-picker-modal.token.ts index cbb0d5f635..43466e1f03 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/member-type-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/member-type-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export type UmbMemberTypePickerModalData = UmbTreePickerModalData; export type UmbMemberTypePickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/modal-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/modal-token.ts index c5d6cfe065..97f893fffb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/modal-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/modal-token.ts @@ -1,4 +1,4 @@ -import { UmbModalConfig } from '../modal-manager.context.js'; +import type { UmbModalConfig } from '../modal-manager.context.js'; export interface UmbModalTokenDefaults { modal?: UmbModalConfig; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts index 1eeeb7e5c9..0c2f6dfaa5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts @@ -1,4 +1,4 @@ -import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbPropertySettingsModalData = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-picker-modal.token.ts index 4e343cf3bc..839df20086 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/template-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export type UmbTemplatePickerModalData = UmbTreePickerModalData; export type UmbTemplatePickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-group-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-group-picker-modal.token.ts index 0d37c37e8c..12a679a0cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-group-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-group-picker-modal.token.ts @@ -1,4 +1,5 @@ -import { UmbModalToken, UmbPickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; +import type { UmbPickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export const UMB_USER_GROUP_PICKER_MODAL = new UmbModalToken, UmbPickerModalValue>( 'Umb.Modal.UserGroupPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-picker-modal.token.ts index 5324fc1cbd..a4ef24bffc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/user-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbUserDetailModel } from '@umbraco-cms/backoffice/user'; -import { UmbModalToken, UmbPickerModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbUserDetailModel } from '@umbraco-cms/backoffice/user'; +import type { UmbPickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbUserPickerModalData = UmbPickerModalData; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts index ac6aad9785..9eba42d4ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbNotificationLayoutDefaultElement } from './notification-layout-default.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts index 6d4daff90a..44c10c90c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/layouts/default/notification-layout-default.test.ts @@ -1,9 +1,10 @@ import { fixture, expect, html } from '@open-wc/testing'; +import type { + UmbNotificationDefaultData} from './notification-layout-default.element.js'; import { - UmbNotificationLayoutDefaultElement, - UmbNotificationDefaultData, + UmbNotificationLayoutDefaultElement } from './notification-layout-default.element.js'; -import { UUIToastNotificationLayoutElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIToastNotificationLayoutElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbNotificationHandler } from '@umbraco-cms/backoffice/notification'; describe('UmbNotificationLayoutDefault', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.ts index cd698ca497..b63eea9663 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification-handler.ts @@ -3,7 +3,7 @@ import type { UmbNotificationColor, UmbNotificationDefaultData, } from './notification.context.js'; -import { UUIToastNotificationElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIToastNotificationElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbId } from '@umbraco-cms/backoffice/id'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.test.ts index daf4bdd68d..7baf83a789 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/notification.context.test.ts @@ -1,6 +1,7 @@ import { expect } from '@open-wc/testing'; -import { UmbNotificationHandler, UmbNotificationContext } from './index.js'; +import type { UmbNotificationHandler} from './index.js'; +import { UmbNotificationContext } from './index.js'; import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts index 2210177eda..c17e630b46 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/notification.stories.ts @@ -1,6 +1,6 @@ import './story-notification-default-example.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { UmbNotificationContext } from '../notification.context.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts index c23d979bfe..4ae0df440d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/notification/stories/story-notification-default-example.element.ts @@ -1,8 +1,9 @@ import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { UmbNotificationColor, UmbNotificationOptions, - UmbNotificationContext, + UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts index 3d24c0a152..2d31c7230e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts @@ -1,6 +1,7 @@ import { UmbObjectTypeRepository } from './object-type.repository.js'; import { html, customElement, property, query, state } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUISelectElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUISelectElement } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-object-type') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/object-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/object-type/object-type.repository.ts index 35a175779e..9957d47828 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/object-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/object-type/object-type.repository.ts @@ -1,7 +1,7 @@ import { ObjectTypesResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbObjectTypeRepository extends UmbBaseController implements UmbApi { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts index 04346f6fc8..3203cdc567 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts @@ -2,13 +2,14 @@ import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { type UmbItemRepository, UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { - UMB_CONFIRM_MODAL, - UMB_MODAL_MANAGER_CONTEXT, +import type { UmbModalManagerContext, UmbModalToken, UmbPickerModalData, - UmbPickerModalValue, + UmbPickerModalValue} from '@umbraco-cms/backoffice/modal'; +import { + UMB_CONFIRM_MODAL, + UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbPickerInputContext extends UmbBaseController { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.element.ts index 5fed429a1b..686cc4a11c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.element.ts @@ -1,5 +1,6 @@ import type { UmbPropertyAction } from '../../shared/property-action/property-action.interface.js'; -import { UmbPropertyContext, UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; +import type { UmbPropertyContext} from '@umbraco-cms/backoffice/property'; +import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.stories.ts index b936910aba..33036675f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/clear/property-action-clear.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyActionClearElement } from './property-action-clear.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts index cc35e147ee..f0d98bbc0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.element.ts @@ -1,8 +1,9 @@ import type { UmbPropertyAction } from '../../shared/property-action/property-action.interface.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { UmbNotificationDefaultData, - UmbNotificationContext, + UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; //import { UMB_WORKSPACE_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.stories.ts index 601dccc3ef..6b80d553a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/common/copy/property-action-copy.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyActionCopyElement } from './property-action-copy.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/shared/property-action-menu/property-action-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/shared/property-action-menu/property-action-menu.element.ts index 7b7c108bf6..843db81fd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/shared/property-action-menu/property-action-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/shared/property-action-menu/property-action-menu.element.ts @@ -1,6 +1,7 @@ +import type { + CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; import { css, - CSSResultGroup, html, customElement, property, @@ -9,12 +10,14 @@ import { nothing, } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { ManifestPropertyAction, - ManifestTypes, + ManifestTypes} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbExtensionElementInitializer, UmbExtensionsElementInitializer } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbExtensionElementInitializer} from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionsElementInitializer } from '@umbraco-cms/backoffice/extension-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-property-action-menu') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts index fe73fd6d71..8d8a3d9777 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/components/ref-property-editor-ui/ref-property-editor-ui.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbRefPropertyEditorUIElement } from './ref-property-editor-ui.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import { UMB_PROPERTY_EDITOR_SCHEMA_ALIAS_DEFAULT } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config-collection.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config-collection.class.ts index 524f28aa1d..6cebb4beaa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config-collection.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config-collection.class.ts @@ -1,5 +1,5 @@ -import { type UmbPropertyEditorConfigProperty, type UmbPropertyEditorConfig } from '../index.js'; -import { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbPropertyEditorConfigProperty, UmbPropertyEditorConfig } from '../index.js'; +import type { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; /** * Extends Array to add utility functions for accessing data type properties diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config.type.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config.type.ts index 1fa912fc66..44eaf02a96 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config.type.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/config/property-editor-config.type.ts @@ -1,4 +1,4 @@ -import { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbPropertyEditorConfigProperty = DataTypePropertyPresentationModel; export type UmbPropertyEditorConfig = UmbPropertyEditorConfigProperty[]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.element.ts index 1b3e75b0a2..4d3c7879df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.element.ts @@ -1,6 +1,7 @@ import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { css, html, nothing, repeat, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-input-checkbox-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.stories.ts index df5b3a41b3..8b3076622a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/input-checkbox-list/input-checkbox-list.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-checkbox-list.element.js'; import type { UmbInputCheckboxListElement } from './input-checkbox-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts index 25a69ae6d9..8b88b7578c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.element.ts @@ -2,7 +2,7 @@ import type { UmbInputCheckboxListElement } from './input-checkbox-list/input-ch import './input-checkbox-list/input-checkbox-list.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts index b674a231bb..02f0dfa374 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/property-editor-ui-checkbox-list.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUICheckboxListElement } from './property-editor-ui-checkbox-list.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts index 6ce87061d8..d851b94530 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.element.ts @@ -1,8 +1,9 @@ -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit'; -import { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { + UmbPropertyEditorConfigCollection} from '@umbraco-cms/backoffice/property-editor'; import { - UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts index d9756078b5..1fdeb9e17a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/property-editor-ui-collection-view-bulk-action-permissions.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUICollectionViewBulkActionPermissionsElement } from './property-editor-ui-collection-view-bulk-action-permissions.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts index 9c72ac41aa..b70ecbbe64 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.element.ts @@ -1,8 +1,9 @@ -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property, repeat, css, query, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIInputEvent, UUISelectElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputEvent, UUISelectElement } from '@umbraco-cms/backoffice/external/uui'; +import type { + UmbPropertyEditorConfigCollection} from '@umbraco-cms/backoffice/property-editor'; import { - UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts index 44361a200d..961a2454cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/property-editor-ui-collection-view-column-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUICollectionViewColumnConfigurationElement } from './property-editor-ui-collection-view-column-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts index 4a87662d27..a9ec636f80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.element.ts @@ -1,14 +1,16 @@ -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property, repeat, css, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UUIBooleanInputEvent, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { extractUmbColorVariable } from '@umbraco-cms/backoffice/resources'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_ICON_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, + UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { + UmbPropertyEditorConfigCollection} from '@umbraco-cms/backoffice/property-editor'; import { - UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts index 5b977568a8..c1e3cd0f17 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/property-editor-ui-collection-view-layout-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUICollectionViewLayoutConfigurationElement } from './property-editor-ui-collection-view-layout-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts index 82d57975b2..39d68e31e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.element.ts @@ -1,8 +1,9 @@ -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { + UmbPropertyEditorConfigCollection} from '@umbraco-cms/backoffice/property-editor'; import { - UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts index 1fa381b92a..611de8458b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/property-editor-ui-collection-view-order-by.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUICollectionViewOrderByElement } from './property-editor-ui-collection-view-order-by.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.element.ts index 87918f1247..464e439d61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.element.ts @@ -1,5 +1,5 @@ -import { UmbPropertyEditorConfigCollection } from '../../config/index.js'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorConfigCollection } from '../../config/index.js'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.stories.ts index ae8f96d923..1d182773b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/property-editor-ui-collection-view.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUICollectionViewElement } from './property-editor-ui-collection-view.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/property-editor-ui-color-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/property-editor-ui-color-editor.element.ts index a1e12b4b8c..bc18e5c8a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/property-editor-ui-color-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/property-editor-ui-color-editor.element.ts @@ -1,9 +1,9 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbMultipleColorPickerInputElement } from '@umbraco-cms/backoffice/components'; +import type { UmbMultipleColorPickerInputElement } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-color-editor diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.element.ts index bf54d82db6..246ad602ca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.stories.ts index ef3382dcfa..c77ce9c788 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/property-editor-ui-color-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIColorPickerElement } from './property-editor-ui-color-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts index 68966179ff..a92d437567 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.element.ts @@ -1,7 +1,8 @@ -import { UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent } from '../../index.js'; +import type { UmbPropertyEditorConfigCollection} from '../../index.js'; +import { UmbPropertyValueChangeEvent } from '../../index.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbInputDateElement } from '@umbraco-cms/backoffice/components'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.stories.ts index cd40b10b8f..e34a0e9495 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIDatePickerElement } from './property-editor-ui-date-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.test.ts index 11845e05e6..e2581e9bc8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/property-editor-ui-date-picker.test.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import { UmbInputDateElement } from '../../../components/input-date/input-date.element.js'; +import type { UmbInputDateElement } from '../../../components/input-date/input-date.element.js'; import { UmbPropertyEditorUIDatePickerElement } from './property-editor-ui-date-picker.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts index a748af85ec..1443c5b309 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.element.ts @@ -1,7 +1,7 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.stories.ts index 741e784ecf..0328b5791f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/property-editor-ui-dropdown.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIDropdownElement } from './property-editor-ui-dropdown.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts index b654be64a6..6ea7039a22 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIColorPickerChangeEvent } from '@umbraco-cms/backoffice/external/uui'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UUIColorPickerChangeEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts index 7f82af0c38..7a769bfeab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/property-editor-ui-eye-dropper.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIEyeDropperElement } from './property-editor-ui-eye-dropper.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts index 4d2a9c89ad..ee28700ca2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.element.ts @@ -1,8 +1,9 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_ICON_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.stories.ts index 3d69a2c355..0637256ae5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/property-editor-ui-icon-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbIconPickerModalElement } from '../../../modal/common/icon-picker/icon-picker-modal.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.element.ts index 931a3a3559..e32a852a29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.stories.ts index 41b814cab6..27a42253f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/property-editor-ui-label.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUILabelElement } from './property-editor-ui-label.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts index ff7e7f7815..53b3bf61d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts @@ -2,10 +2,10 @@ import type { UmbInputMarkdownElement } from '../../../components/input-markdown import '../../../components/input-markdown-editor/index.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; /** * @element umb-property-editor-ui-markdown-editor diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts index b538323efb..e9181297e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIMarkdownEditorElement } from './property-editor-ui-markdown-editor.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts index 39d8e40a10..0fd634ca8d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.element.ts @@ -1,8 +1,8 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; /** * @element umb-property-editor-ui-member-group-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts index afaeb95ef2..671b62ec0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/property-editor-ui-member-group-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIMemberGroupPickerElement } from './property-editor-ui-member-group-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts index 062e052117..161f0c8385 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.element.ts @@ -1,8 +1,8 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; /** * @element umb-property-editor-ui-member-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.stories.ts index 0f35b9212b..b777e472ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/property-editor-ui-member-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIMemberPickerElement } from './property-editor-ui-member-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts index b152322308..ba2c1e161f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.element.ts @@ -2,9 +2,9 @@ import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; -import { UmbInputMultiUrlElement } from '@umbraco-cms/backoffice/components'; -import { UmbLinkPickerLink } from '@umbraco-cms/backoffice/modal'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbInputMultiUrlElement } from '@umbraco-cms/backoffice/components'; +import type { UmbLinkPickerLink } from '@umbraco-cms/backoffice/modal'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts index 147e496a8e..088d662b13 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/property-editor-ui-multi-url-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIMultiUrlPickerElement } from './property-editor-ui-multi-url-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts index a3204b793c..251130a86b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.element.ts @@ -1,10 +1,10 @@ import { UmbPropertyValueChangeEvent } from '../../index.js'; -import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { MultipleTextStringValue, UmbInputMultipleTextStringElement } from '@umbraco-cms/backoffice/components'; +import type { MultipleTextStringValue, UmbInputMultipleTextStringElement } from '@umbraco-cms/backoffice/components'; /** * @element umb-property-editor-ui-multiple-text-string diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts index 1115a41457..f021380d86 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/property-editor-ui-multiple-text-string.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIMultipleTextStringElement } from './property-editor-ui-multiple-text-string.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts index 3aa49fd423..a242fc9829 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.element.ts @@ -1,9 +1,9 @@ import type { UmbInputNumberRangeElement } from '../../../components/input-number-range/input-number-range.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; import '../../../components/input-number-range/input-number-range.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.stories.ts index 17f53fd30c..3a585302e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/property-editor-ui-number-range.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUINumberRangeElement } from './property-editor-ui-number-range.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.element.ts index 548c303821..e397a9d3c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.element.ts @@ -1,6 +1,6 @@ import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.stories.ts index d367ab8daa..0e7d3e67a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/property-editor-ui-number.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUINumberElement } from './property-editor-ui-number.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.element.ts index 99d26552bc..893d7934af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.element.ts @@ -1,12 +1,13 @@ import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + UmbPropertyEditorConfigCollection} from '@umbraco-cms/backoffice/property-editor'; import { - UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; -import { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; /** * @element umb-property-editor-ui-order-direction diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.stories.ts index 37041fe85e..191020eb93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/property-editor-ui-order-direction.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIOrderDirectionElement } from './property-editor-ui-order-direction.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts index 0869bdbffd..c486624d40 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.element.ts @@ -1,9 +1,9 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UUIModalSidebarSize, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UUIModalSidebarSize, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; /** * @element umb-property-editor-ui-overlay-size diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.stories.ts index ca66cec267..5e26d1bfde 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/property-editor-ui-overlay-size.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIOverlaySizeElement } from './property-editor-ui-overlay-size.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts index 0be36e91f7..122162f4ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.element.ts @@ -3,7 +3,7 @@ import '../../../components/input-radio-button-list/input-radio-button-list.elem import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts index d5a1fb8e75..2e5f0e4edd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/property-editor-ui-radio-button-list.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIRadioButtonListElement } from './property-editor-ui-radio-button-list.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts index 66d5eb79c1..9e9039f16b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.element.ts @@ -1,7 +1,7 @@ -import { UmbInputSliderElement } from '../../../components/input-slider/input-slider.element.js'; +import type { UmbInputSliderElement } from '../../../components/input-slider/input-slider.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.stories.ts index 5400e8d65b..af23b6228c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/property-editor-ui-slider.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUISliderElement } from './property-editor-ui-slider.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.element.ts index b94f1b2c47..de69b3e1b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.element.ts @@ -1,9 +1,9 @@ import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; type UuiInputTypeType = typeof UUIInputElement.prototype.type; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.stories.ts index ac75587f3f..c1efa5257d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/property-editor-ui-text-box.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUITextBoxElement } from './property-editor-ui-text-box.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.element.ts index 2148059eec..b1730b3e5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.element.ts @@ -1,6 +1,6 @@ import { css, html, customElement, property, state, ifDefined, styleMap } from '@umbraco-cms/backoffice/external/lit'; -import { UUITextareaElement } from '@umbraco-cms/backoffice/external/uui'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UUITextareaElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.stories.ts index 84a3bda93c..3a1b2c7550 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/property-editor-ui-textarea.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUITextareaElement } from './property-editor-ui-textarea.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts index cc048d3013..db4281439e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.element.ts @@ -1,7 +1,8 @@ -import { UmbBlockTypeBaseModel, UmbInputBlockTypeElement } from '@umbraco-cms/backoffice/block'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbBlockTypeBaseModel} from '@umbraco-cms/backoffice/block'; +import { UmbInputBlockTypeElement } from '@umbraco-cms/backoffice/block'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts index 5d4d315886..5866f52a7f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/block-configuration/property-editor-ui-block-rte-type-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockRteBlockConfigurationElement } from './property-editor-ui-block-rte-type-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts index 869b7d7b5f..2032898d18 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/dimensions/property-editor-ui-tiny-mce-dimensions-configuration.stories.ts @@ -1,8 +1,8 @@ -import { Meta } from '@storybook/web-components'; +import type { Meta } from '@storybook/web-components'; import './property-editor-ui-tiny-mce-dimensions-configuration.element.js'; import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; -import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts index 323f500713..6f980fbf34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.element.ts @@ -1,7 +1,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; /** * @element umb-property-editor-ui-tiny-mce-maximagesize-configuration diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts index 5228ba354f..eebfff1da4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/max-image-size/property-editor-ui-tiny-mce-maximagesize-configuration.stories.ts @@ -1,8 +1,8 @@ -import { Meta } from '@storybook/web-components'; +import type { Meta } from '@storybook/web-components'; import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-maximagesize-configuration.element.js'; -import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts index 5861ab828f..d747124164 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.element.ts @@ -2,12 +2,13 @@ import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/serve import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + UmbPropertyEditorConfigCollection} from '@umbraco-cms/backoffice/property-editor'; import { - UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent, } from '@umbraco-cms/backoffice/property-editor'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbStylesheetInputElement } from '@umbraco-cms/backoffice/stylesheet'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbStylesheetInputElement } from '@umbraco-cms/backoffice/stylesheet'; /** * @element umb-property-editor-ui-tiny-mce-stylesheets-configuration diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts index 27339cb044..34d650027f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/stylesheets/property-editor-ui-tiny-mce-stylesheets-configuration.stories.ts @@ -1,9 +1,9 @@ -import { Meta } from '@storybook/web-components'; +import type { Meta } from '@storybook/web-components'; import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-stylesheets-configuration.element.js'; -import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts index ac389d7515..3df001a360 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts @@ -1,9 +1,11 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { customElement, css, html, property, map, state, PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import { customElement, css, html, property, map, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorUiElement, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { tinymce } from '@umbraco-cms/backoffice/external/tinymce'; const tinyIconSet = tinymce.IconManager.get('default'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts index 3bc33861c6..91481a5fde 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.stories.ts @@ -1,9 +1,9 @@ -import { Meta } from '@storybook/web-components'; +import type { Meta } from '@storybook/web-components'; import { umbDataTypeMockDb } from '../../../../../../../mocks/data/data-type/data-type.db.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './property-editor-ui-tiny-mce-toolbar-configuration.element.js'; -import { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts index 4e4ff24618..fcf76e711a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-code-editor.plugin.ts @@ -1,9 +1,11 @@ -import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import { +import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; +import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { UmbCodeEditorModalData, UmbCodeEditorModalValue, + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_CODE_EDITOR_MODAL, - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts index bd885cb529..60cc31a084 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-embeddedmedia.plugin.ts @@ -1,9 +1,11 @@ -import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import { +import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; +import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { UmbEmbeddedMediaModalData, UmbEmbeddedMediaModalValue, + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_EMBEDDED_MEDIA_MODAL, - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts index f624f1fff1..2a3ada2a78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts @@ -1,9 +1,11 @@ -import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import { +import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; +import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { UmbLinkPickerModalValue, - UMB_LINK_PICKER_MODAL, UmbLinkPickerLink, - UmbModalManagerContext, + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { + UMB_LINK_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts index 99b1b68e51..9413c42e17 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts @@ -1,6 +1,9 @@ -import { MacroSyntaxData, UmbMacroService } from '@umbraco-cms/backoffice/macro'; -import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { MacroSyntaxData} from '@umbraco-cms/backoffice/macro'; +import { UmbMacroService } from '@umbraco-cms/backoffice/macro'; +import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; +import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import type { AstNode } from '@umbraco-cms/backoffice/external/tinymce'; interface DialogData { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts index 1d09349e34..e2637e2369 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-mediapicker.plugin.ts @@ -1,12 +1,14 @@ -import { TinyMcePluginArguments, UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; +import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; +import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; import { UmbMediaHelper } from '@umbraco-cms/backoffice/utils'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_MEDIA_TREE_PICKER_MODAL, - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; -import { UMB_CURRENT_USER_CONTEXT, UmbCurrentUser } from '@umbraco-cms/backoffice/current-user'; -import { RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; +import type { UMB_CURRENT_USER_CONTEXT, UmbCurrentUser } from '@umbraco-cms/backoffice/current-user'; +import type { RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; import { UmbTemporaryFileRepository } from '@umbraco-cms/backoffice/temporary-file'; import { UmbId } from '@umbraco-cms/backoffice/id'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts index 641d384499..354e594617 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.element.ts @@ -1,8 +1,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; type RichTextEditorValue = { blocks: object; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts index 28a668a60d..91696bb174 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.element.ts @@ -1,8 +1,8 @@ -import { UmbInputToggleElement } from '../../../components/input-toggle/input-toggle.element.js'; +import type { UmbInputToggleElement } from '../../../components/input-toggle/input-toggle.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.stories.ts index d611b85c41..45f541fd8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/property-editor-ui-toggle.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIToggleElement } from './property-editor-ui-toggle.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts index 8f7bb83ce7..36898e65e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.element.ts @@ -1,7 +1,10 @@ -import { type UmbTreePickerSource, UmbInputTreePickerSourceElement } from '@umbraco-cms/backoffice/components'; +import type { UmbInputTreePickerSourceElement, UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { type UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; +import { + type UmbPropertyEditorConfigCollection, + UmbPropertyValueChangeEvent, +} from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -9,7 +12,10 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; * @element umb-property-editor-ui-tree-picker-source-picker */ @customElement('umb-property-editor-ui-tree-picker-source-picker') -export class UmbPropertyEditorUITreePickerSourcePickerElement extends UmbLitElement implements UmbPropertyEditorUiElement { +export class UmbPropertyEditorUITreePickerSourcePickerElement + extends UmbLitElement + implements UmbPropertyEditorUiElement +{ @property({ type: Object }) value?: UmbTreePickerSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.stories.ts index 4da73e7a85..7eff59ae48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/property-editor-ui-tree-picker-source-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUITreePickerSourcePickerElement } from './property-editor-ui-tree-picker-source-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 70677c7631..3730878b08 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -1,6 +1,6 @@ -import { UmbInputDocumentTypeElement } from '@umbraco-cms/backoffice/document-type'; -import { UmbInputMediaTypeElement } from '@umbraco-cms/backoffice/media-type'; -import { UmbInputMemberTypeElement } from '@umbraco-cms/backoffice/member-type'; +import type { UmbInputDocumentTypeElement } from '@umbraco-cms/backoffice/document-type'; +import type { UmbInputMediaTypeElement } from '@umbraco-cms/backoffice/media-type'; +import type { UmbInputMemberTypeElement } from '@umbraco-cms/backoffice/member-type'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.stories.ts index 12b8c7a980..ee40331f33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUITreePickerElement } from './property-editor-ui-tree-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts index 11d5185613..e5bc320be4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.element.ts @@ -1,4 +1,4 @@ -import { UmbInputUploadFieldElement } from '../../../components/input-upload-field/input-upload-field.element.js'; +import type { UmbInputUploadFieldElement } from '../../../components/input-upload-field/input-upload-field.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.stories.ts index 63614d49fc..bb96849e71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/property-editor-ui-upload-field.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIUploadFieldElement } from './property-editor-ui-upload-field.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts index cc85887a5a..229d8c5b30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.element.ts @@ -1,8 +1,8 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; /** * @element umb-property-editor-ui-user-picker diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.stories.ts index 497ca5b084..93e135e8ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/property-editor-ui-user-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIUserPickerElement } from './property-editor-ui-user-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts index 77c3e247a3..8f93353ee6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.element.ts @@ -1,7 +1,7 @@ import { html, customElement, property, state, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUISelectElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.stories.ts index cd9d71020d..131627cfe7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/property-editor-ui-value-type.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIValueTypeElement } from './property-editor-ui-value-type.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.interface.ts index fa1f37fe5e..f839ce3b81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.interface.ts @@ -1,4 +1,4 @@ -import { UmbPropertyDatasetContext } from './property-dataset-context.interface.js'; +import type { UmbPropertyDatasetContext } from './property-dataset-context.interface.js'; /** * A variant context with ability to set the name of it. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.token.ts index 4f74142bb3..b5af87ffc8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/nameable-property-dataset-context.token.ts @@ -1,5 +1,5 @@ -import { type UmbPropertyDatasetContext } from './property-dataset-context.interface.js'; -import { UmbNameablePropertyDatasetContext } from './nameable-property-dataset-context.interface.js'; +import type { UmbPropertyDatasetContext } from './property-dataset-context.interface.js'; +import type { UmbNameablePropertyDatasetContext } from './nameable-property-dataset-context.interface.js'; import { UMB_PROPERTY_DATASET_CONTEXT } from './property-dataset-context.token.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts index d794a99e03..bab38bd30e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-base-context.ts @@ -4,7 +4,7 @@ import { type UmbNameablePropertyDatasetContext, type UmbPropertyDatasetContext, } from '@umbraco-cms/backoffice/property'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { UmbArrayState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.token.ts index 572728a603..509e07a1ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-dataset/property-dataset-context.token.ts @@ -1,4 +1,4 @@ -import { type UmbPropertyDatasetContext } from './property-dataset-context.interface.js'; +import type { UmbPropertyDatasetContext } from './property-dataset-context.interface.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export const UMB_PROPERTY_DATASET_CONTEXT = new UmbContextToken('UmbPropertyDatasetContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.stories.ts index 114eaa732c..9bc6df0a3f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyLayoutElement } from './property-layout.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index 2789cf6efb..935f9887ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -1,20 +1,22 @@ -import { UmbPropertyEditorUiElement } from '../../extension-registry/interfaces/property-editor-ui-element.interface.js'; +import type { UmbPropertyEditorUiElement } from '../../extension-registry/interfaces/property-editor-ui-element.interface.js'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import type { + UmbObserverController} from '@umbraco-cms/backoffice/observable-api'; import { UmbArrayState, UmbBasicState, UmbClassState, UmbDeepState, - UmbObserverController, UmbStringState, } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextProviderController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { + UmbPropertyEditorConfigProperty} from '@umbraco-cms/backoffice/property-editor'; import { - UmbPropertyEditorConfigCollection, - UmbPropertyEditorConfigProperty, + UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; export class UmbPropertyContext extends UmbBaseController { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts index 7003c6fd15..9fef2ed2c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.element.ts @@ -2,12 +2,13 @@ import { UmbPropertyContext } from './property.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestPropertyEditorUi, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { UmbPropertyEditorConfigCollection, - type UmbPropertyEditorConfig, + UmbPropertyEditorConfig, } from '@umbraco-cms/backoffice/property-editor'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.stories.ts index 646b2ca522..ff9df34800 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyElement } from './property.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/collection-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/collection-repository.interface.ts index 8df7fbb2f0..49a73f110c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/collection-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/collection-repository.interface.ts @@ -1,4 +1,4 @@ -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbCollectionRepository extends UmbApi { requestCollection(filter?: any): Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts index be500ee1b1..43493a49ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts @@ -1,5 +1,5 @@ -import { DataSourceResponse, UmbPagedData } from '../index.js'; -import { Diff } from '@umbraco-cms/backoffice/utils'; +import type { DataSourceResponse, UmbPagedData } from '../index.js'; +import type { Diff } from '@umbraco-cms/backoffice/utils'; /** * This function extends the data set of a paged DataSourceResponse. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts index a41f089ab9..61503b42ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; -import { type UmbPagedData } from './types.js'; -import { type DataSourceResponse } from './data-source-response.interface.js'; +import type { UmbPagedData } from './types.js'; +import type { DataSourceResponse } from './data-source-response.interface.js'; import { extendDataSourcePagedResponseData } from './extend-data-source-paged-response-data.function.js'; describe('extendDataSourcePagedResponseData', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.function.ts index 745bb391a9..632d70129c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.function.ts @@ -1,5 +1,5 @@ -import { DataSourceResponse } from '../index.js'; -import { Diff } from '@umbraco-cms/backoffice/utils'; +import type { DataSourceResponse } from '../index.js'; +import type { Diff } from '@umbraco-cms/backoffice/utils'; /** * This function extends the data set of a DataSourceResponse. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.test.ts index ac23e7782e..c3ebe86b01 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-response-data.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; import { extendDataSourceResponseData } from './extend-data-source-response-data.function.js'; -import { DataSourceResponse } from './data-source-response.interface.js'; +import type { DataSourceResponse } from './data-source-response.interface.js'; describe('extendDataSourceResponseData', () => { it('is a function', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts index 0f379560a6..799f508af6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-data-source.interface.ts @@ -1,5 +1,5 @@ -import { DataSourceResponse } from '../data-source/index.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { DataSourceResponse } from '../data-source/index.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbDetailDataSourceConstructor { new (host: UmbControllerHost): UmbDetailDataSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts index 668605d5c7..9a6ff148fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository-base.ts @@ -1,11 +1,12 @@ import { UmbRepositoryBase } from '../repository-base.js'; -import { UmbDetailDataSource, UmbDetailDataSourceConstructor } from './detail-data-source.interface.js'; -import { UmbDetailRepository } from './detail-repository.interface.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbDetailStore } from '@umbraco-cms/backoffice/store'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbDetailDataSource, UmbDetailDataSourceConstructor } from './detail-data-source.interface.js'; +import type { UmbDetailRepository } from './detail-repository.interface.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbDetailStore } from '@umbraco-cms/backoffice/store'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export abstract class UmbDetailRepositoryBase< DetailModelType extends { unique: string; entityType: string; parentUnique: string | null }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts index 221feaa3fb..7e93071c85 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/detail/detail-repository.interface.ts @@ -1,5 +1,5 @@ import type { DataSourceResponse, UmbDataSourceErrorResponse } from '../data-source/index.js'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbDetailRepository { createScaffold( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts index 14afff0247..97639454da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts @@ -1,4 +1,4 @@ -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbItemDataSourceConstructor { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts index 914d39403a..fcee50103d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts @@ -1,9 +1,9 @@ import { UmbRepositoryBase } from '../repository-base.js'; -import { UmbItemDataSource, UmbItemDataSourceConstructor } from './item-data-source.interface.js'; -import { UmbItemRepository } from './item-repository.interface.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore } from '@umbraco-cms/backoffice/store'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbItemDataSource, UmbItemDataSourceConstructor } from './item-data-source.interface.js'; +import type { UmbItemRepository } from './item-repository.interface.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbItemStore } from '@umbraco-cms/backoffice/store'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbItemRepositoryBase extends UmbRepositoryBase implements UmbItemRepository { protected _init: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository.interface.ts index 9f90e33748..f7ba4ead1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository.interface.ts @@ -1,6 +1,6 @@ import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbItemRepository extends UmbApi { requestItems: (uniques: string[]) => Promise<{ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/move-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move-repository.interface.ts index ab06186146..487a7e4446 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/move-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/move-repository.interface.ts @@ -1,4 +1,4 @@ -import { UmbDataSourceErrorResponse } from './data-source/index.js'; +import type { UmbDataSourceErrorResponse } from './data-source/index.js'; export interface UmbMoveRepository { move(unique: string, targetUnique: string): Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts index 992a12cf0e..51b25e8978 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/repository-base.ts @@ -1,4 +1,4 @@ -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; // TODO: Revisit if constructor method should be omitted diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts index fc54a88ad5..b492d60634 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts @@ -2,16 +2,18 @@ import type { UmbWorkspaceElement } from '../workspace/workspace.element.js'; import type { UmbSectionMainViewElement } from './section-main-views/section-main-views.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { ManifestSection, ManifestSectionSidebarApp, ManifestSectionSidebarAppMenuKind, - UmbSectionElement, + UmbSectionElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbExtensionElementInitializer, UmbExtensionsElementInitializer } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbExtensionElementInitializer} from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionsElementInitializer } from '@umbraco-cms/backoffice/extension-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts index 1fe1004f6e..c0442a7569 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main-views/section-main-views.element.ts @@ -1,11 +1,12 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; -import { +import type { ManifestDashboard, ManifestSectionView, UmbDashboardElement, - UmbSectionViewElement, + UmbSectionViewElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import { UmbExtensionsManifestInitializer, createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.stories.ts index ae41676182..b4bb940c8d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-main/section-main.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbSectionMainElement } from './section-main.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts index 633e6e21a2..d8b1738b73 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.ts @@ -1,4 +1,5 @@ -import { UmbSectionSidebarContext, UMB_SECTION_SIDEBAR_CONTEXT } from '../section-sidebar/index.js'; +import type { UmbSectionSidebarContext} from '../section-sidebar/index.js'; +import { UMB_SECTION_SIDEBAR_CONTEXT } from '../section-sidebar/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts index 5399c3b0f1..a513f6da0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts @@ -1,8 +1,9 @@ import { UmbSectionSidebarMenuElement } from '../section-sidebar-menu/section-sidebar-menu.element.js'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { ManifestSectionSidebarAppMenuWithEntityActionsKind, - UmbBackofficeManifestKind, + UmbBackofficeManifestKind} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.stories.ts index 6c391ed1b5..07c9f3aa14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbSectionSidebarMenuWithEntityActionsElement } from './section-sidebar-menu-with-entity-actions.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.ts index 9674176523..0fadbecc0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.ts @@ -1,10 +1,11 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { ManifestMenu, ManifestSectionSidebarAppBaseMenu, ManifestSectionSidebarAppMenuKind, - UmbBackofficeManifestKind, + UmbBackofficeManifestKind} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.stories.ts index b0da353044..93c37ee923 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar-menu/section-sidebar-menu.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbSectionSidebarMenuElement } from './section-sidebar-menu.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts index e81021cc40..b17cd323e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.context.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbStringState, UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; export class UmbSectionSidebarContext { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.stories.ts index 90dd1f902c..2faecc610d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbSectionSidebarElement } from './section-sidebar.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.test.ts index 6f14f6afde..26e5f4b4ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.test.ts @@ -1,6 +1,6 @@ import { expect, fixture, html } from '@open-wc/testing'; import { UmbSorterConfig, UmbSorterController } from './sorter.controller.js'; -import UmbTestSorterControllerElement from './stories/test-sorter-controller.element.js'; +import type UmbTestSorterControllerElement from './stories/test-sorter-controller.element.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 8768697b56..b0e85d090b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -1,4 +1,4 @@ -import { UmbController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; const autoScrollSensitivity = 50; const autoScrollSpeed = 16; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts index e121ecaf49..116ec943e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type UmbTestSorterControllerElement from './test-sorter-controller.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './test-sorter-controller.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts index 4c2864dd6c..757b758a47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts @@ -1,4 +1,5 @@ -import { UmbSorterConfig, UmbSorterController } from '../sorter.controller.js'; +import type { UmbSorterConfig} from '../sorter.controller.js'; +import { UmbSorterController } from '../sorter.controller.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store-base.ts index 483fd2e625..34103ba58c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store-base.ts @@ -1,5 +1,5 @@ -import { UmbDetailStore } from './detail-store.interface.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbDetailStore } from './detail-store.interface.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store.interface.ts index 2db202a466..8cef284104 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/detail-store.interface.ts @@ -1,4 +1,4 @@ -import { UmbStore } from './store.interface.js'; +import type { UmbStore } from './store.interface.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts index 130c4a098d..1e9f7947a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts @@ -1,5 +1,5 @@ -import { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts index e07380c774..ae2876901c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-item.store.ts @@ -1,6 +1,6 @@ import { UmbStoreBase } from './store-base.js'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts index a09a5e7fd6..1263988ad0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store-base.ts @@ -1,5 +1,6 @@ -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbItemStore} from '@umbraco-cms/backoffice/store'; +import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts index 0427a65879..1c55e1e902 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/item-store.interface.ts @@ -1,4 +1,4 @@ -import { UmbStore } from './store.interface.js'; +import type { UmbStore } from './store.interface.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts index 703c08de45..d333c1f4a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-base.ts @@ -1,10 +1,10 @@ -import { UmbStore } from './store.interface.js'; +import type { UmbStore } from './store.interface.js'; import { UmbStoreRemoveEvent } from './events/store-remove.event.js'; import { UmbStoreUpdateEvent } from './events/store-update.event.js'; import { UmbStoreAppendEvent } from './events/store-append.event.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { type UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; export class UmbStoreBase extends UmbContextBase implements UmbStore, UmbApi { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts index 0a2c0382e6..905069f754 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store-connector.ts @@ -1,8 +1,9 @@ -import { UmbStoreBase } from './store-base.js'; +import type { UmbStoreBase } from './store-base.js'; import { UmbStoreAppendEvent, UmbStoreRemoveEvent, UmbStoreUpdateEvent } from './events/index.js'; -import { UmbStore } from './store.interface.js'; -import { UmbContextConsumerController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbStore } from './store.interface.js'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; // WIP: get back to this when we have decided on detail model sizes export class UmbStoreConnector { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts index 5266885da9..579df7f66d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/store.interface.ts @@ -1,5 +1,5 @@ -import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbStore extends UmbContextBase { append: (item: T) => void; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts index d31405c150..891acdba74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file-manager.class.ts @@ -1,6 +1,6 @@ import { UmbTemporaryFileRepository } from './temporary-file.repository.js'; import { UmbArrayState, UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export type TemporaryFileStatus = 'complete' | 'waiting' | 'error'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.repository.ts index e8b58febfe..12476f482c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.repository.ts @@ -1,5 +1,5 @@ import { UmbTemporaryFileServerDataSource } from './temporary-file.server.data-source.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts index 09aaf40bb9..4d6675d369 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/temporary-file.server.data-source.ts @@ -1,5 +1,5 @@ import { TemporaryFileResource } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts index 19dfde9d49..120b241c2b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts @@ -1,9 +1,11 @@ import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbStringState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbStringState } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { ManifestTheme, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTheme} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { loadManifestPlainCss } from '@umbraco-cms/backoffice/extension-api'; const LOCAL_STORAGE_KEY = 'umb-theme-alias'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts index f1d5c16f53..fa719d0ad8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.element.ts @@ -1,9 +1,9 @@ import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; -import { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; -import { UmbInputMemberElement } from '@umbraco-cms/backoffice/member'; +import type { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; +import type { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; +import type { UmbInputMemberElement } from '@umbraco-cms/backoffice/member'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.stories.ts index 940a620ac8..21f89e9529 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/components/input-tree/input-tree.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-tree.element.js'; import type { UmbInputTreeElement } from './input-tree.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts index af7fb7deee..aa718fa335 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts @@ -1,6 +1,6 @@ -import { UmbTreeItemModelBase } from '../types.js'; +import type { UmbTreeItemModelBase } from '../types.js'; import type { UmbPagedData, DataSourceResponse } from '@umbraco-cms/backoffice/repository'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbTreeDataSourceConstructor { new (host: UmbControllerHost): UmbTreeDataSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts index 971e5682bf..b3f9452f7b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts @@ -2,8 +2,8 @@ import type { UmbTreeItemModelBase } from '../types.js'; import type { UmbTreeDataSource } from './tree-data-source.interface.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { CancelablePromise, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { CancelablePromise, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; export interface UmbTreeServerDataSourceBaseArgs< ServerTreeItemType extends TreeItemPresentationModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.context.ts index 073d4fe44d..ab9a542a82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.context.ts @@ -1,6 +1,6 @@ import { UmbTreeItemContextBase } from '../tree-item-base/tree-item-base.context.js'; -import { UmbEntityTreeItemModel } from '../types.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbEntityTreeItemModel } from '../types.js'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbEntityTreeItemContext extends UmbTreeItemContextBase { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.element.ts index 97b9abbc63..d451b50b64 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-item/entity-tree-item.element.ts @@ -1,11 +1,12 @@ -import { UmbEntityTreeItemModel } from '../types.js'; +import type { UmbEntityTreeItemModel } from '../types.js'; import { UmbEntityTreeItemContext } from './entity-tree-item.context.js'; import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { UmbBackofficeManifestKind, - UmbTreeItemElement, + UmbTreeItemElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-store.ts index c21e615b50..f3e17a76da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-tree-store.ts @@ -1,8 +1,8 @@ -import { type UmbTreeStore } from './tree-store.interface.js'; -import { UmbEntityTreeItemModel } from './types.js'; +import type { UmbTreeStore } from './tree-store.interface.js'; +import type { UmbEntityTreeItemModel } from './types.js'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.context.ts index d8dcaac634..de3b87644a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.context.ts @@ -1,6 +1,6 @@ import { UmbTreeItemContextBase } from '../tree-item-base/tree-item-base.context.js'; -import { UmbFileSystemTreeItemModel } from '../types.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbFileSystemTreeItemModel } from '../types.js'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * Tree item context for file system tree items. Uses the path as the unique identifier. * diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.element.ts index b6eec125ba..f70512d83b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree-item/file-system-tree-item.element.ts @@ -1,11 +1,12 @@ -import { UmbFileSystemTreeItemModel } from '../types.js'; +import type { UmbFileSystemTreeItemModel } from '../types.js'; import { UmbFileSystemTreeItemContext } from './file-system-tree-item.context.js'; import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { UmbBackofficeManifestKind, - UmbTreeItemElement, + UmbTreeItemElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree.store.ts index 1784caa78f..ae678e9464 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/file-system-tree.store.ts @@ -1,8 +1,8 @@ -import { type UmbTreeStore } from './tree-store.interface.js'; -import { UmbFileSystemTreeItemModel } from './types.js'; +import type { UmbTreeStore } from './tree-store.interface.js'; +import type { UmbFileSystemTreeItemModel } from './types.js'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts index 0b4a0bdda9..c869875b59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.ts @@ -1,6 +1,6 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { type UmbFolderRepository, UMB_FOLDER_CREATE_MODAL } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts index 1dbb29182d..47e230c8dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.ts @@ -1,8 +1,9 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; export class UmbDeleteFolderEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts index b431e36d71..6e5a86213c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/folder-update/folder-update.action.ts @@ -1,6 +1,6 @@ import { UmbEntityActionBase } from '../../../../entity-action/entity-action.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { type UmbFolderRepository, UMB_FOLDER_UPDATE_MODAL } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts index cd98baffd2..9da5cf5611 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-data-source.interface.ts @@ -1,9 +1,9 @@ -import { +import type { DataSourceResponse, UmbDataSourceErrorResponse, } from '../../repository/data-source/data-source-response.interface.js'; -import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbFolderDataSourceConstructor { new (host: UmbControllerHost): UmbFolderDataSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts index 01d8e9d6d3..579eac8541 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository-base.ts @@ -1,12 +1,13 @@ import { UmbRepositoryBase } from '../../repository/repository-base.js'; -import { type UmbFolderRepository } from './folder-repository.interface.js'; +import type { UmbFolderRepository } from './folder-repository.interface.js'; import type { UmbFolderDataSource, UmbFolderDataSourceConstructor } from './folder-data-source.interface.js'; -import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbTreeItemModelBase, UmbTreeStore } from '@umbraco-cms/backoffice/tree'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbTreeItemModelBase, UmbTreeStore } from '@umbraco-cms/backoffice/tree'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; export type UmbFolderToTreeItemMapper = ( item: UmbFolderModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts index 7d50885d72..5abefb09f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/folder-repository.interface.ts @@ -1,5 +1,5 @@ -import { DataSourceResponse, UmbDataSourceErrorResponse } from '../../repository/data-source/index.js'; -import { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; +import type { DataSourceResponse, UmbDataSourceErrorResponse } from '../../repository/data-source/index.js'; +import type { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbFolderRepository extends UmbApi { createScaffold(parentUnique: string | null): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts index d4bebf36b6..dc5837920a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts @@ -1,6 +1,6 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; import { customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbFolderCreateModalData, UmbFolderCreateModalValue, UmbFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderCreateModalData, UmbFolderCreateModalValue, UmbFolderModel } from '@umbraco-cms/backoffice/tree'; @customElement('umb-folder-create-modal') export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts index b8350a192a..feb4db3518 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.token.ts @@ -1,5 +1,5 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; export interface UmbFolderCreateModalData { folderRepositoryAlias: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts index 739efd9946..fe3082d50f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts @@ -1,7 +1,7 @@ import { css, html, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderModel, UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel, UmbFolderRepository } from '@umbraco-cms/backoffice/tree'; import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.element.ts index 578c3ff396..e74e705ebf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.element.ts @@ -1,6 +1,6 @@ import { UmbFolderModalElementBase } from './folder-modal-element-base.js'; import { customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbFolderUpdateModalData, UmbFolderUpdateModalValue } from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderUpdateModalData, UmbFolderUpdateModalValue } from '@umbraco-cms/backoffice/tree'; @customElement('umb-folder-update-modal') export class UmbFolderModalElement extends UmbFolderModalElementBase< diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.token.ts index 77ca31aa87..3ff43ffc10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-update-modal.token.ts @@ -1,5 +1,5 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; export interface UmbFolderUpdateModalData { folderRepositoryAlias: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index 7f3ed3783b..a01ef5721f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -1,12 +1,12 @@ -import { UmbTreeItemContext } from '../tree-item-default/tree-item.context.interface.js'; -import { UmbTreeContextBase } from '../tree.context.js'; -import { UmbTreeItemModelBase } from '../types.js'; +import type { UmbTreeItemContext } from '../tree-item-default/tree-item.context.interface.js'; +import type { UmbTreeContextBase } from '../tree.context.js'; +import type { UmbTreeItemModelBase } from '../types.js'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_SECTION_CONTEXT, UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; import type { UmbSectionContext, UmbSectionSidebarContext } from '@umbraco-cms/backoffice/section'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbBooleanState, UmbDeepState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts index 9132143291..d4095549a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts @@ -1,5 +1,5 @@ import type { UmbTreeItemContext } from '../tree-item-default/index.js'; -import { UmbTreeItemModelBase } from '../types.js'; +import type { UmbTreeItemModelBase } from '../types.js'; import { UMB_TREE_ITEM_CONTEXT } from './tree-item-base.context.js'; import { css, html, nothing, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts index a8561a70ab..c946750acb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './tree-item-base.element.js'; import type { UmbTreeItemBaseElement } from './tree-item-base.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts index f57785b2b4..9dfe9a8068 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts @@ -1,7 +1,7 @@ -import { UmbTreeItemModelBase } from '../types.js'; +import type { UmbTreeItemModelBase } from '../types.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; -import { UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; export interface UmbTreeItemContext { unique?: string | null; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.element.ts index 7e2c4092cf..4b27470ae5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.element.ts @@ -1,7 +1,7 @@ -import { UmbTreeItemModelBase } from '../types.js'; +import type { UmbTreeItemModelBase } from '../types.js'; import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-tree-item-default') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts index d7b6fe9d23..7d59390733 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts @@ -1,9 +1,10 @@ import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { ManifestMenuItemTreeKind, UmbBackofficeManifestKind, - UmbMenuItemElement, + UmbMenuItemElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository-base.ts index 3c9259c6e9..534cff3d55 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository-base.ts @@ -1,4 +1,4 @@ -import { UmbTreeStore } from './tree-store.interface.js'; +import type { UmbTreeStore } from './tree-store.interface.js'; import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel, @@ -7,12 +7,12 @@ import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel, } from './types.js'; -import { UmbTreeRepository } from './tree-repository.interface.js'; +import type { UmbTreeRepository } from './tree-repository.interface.js'; import type { UmbTreeDataSource, UmbTreeDataSourceConstructor } from './data-source/tree-data-source.interface.js'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export abstract class UmbTreeRepositoryBase< // TODO: remove UmbEntityTreeItemModel and UmbFileSystemTreeItemModel when we have unique in place diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts index 346f9401ff..d6e9e36b8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts @@ -1,8 +1,8 @@ import type { UmbTreeItemModelBase } from './types.js'; import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; -import { type Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbTreeRepository< TreeItemType extends UmbTreeItemModelBase = UmbTreeItemModelBase, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts index b9e429481f..e52551355c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts @@ -1,5 +1,5 @@ -import { UmbTreeItemModelBase } from './types.js'; -import { UmbStore } from '@umbraco-cms/backoffice/store'; +import type { UmbTreeItemModelBase } from './types.js'; +import type { UmbStore } from '@umbraco-cms/backoffice/store'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts index 4aff14c26d..1a39bd4c2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts @@ -1,16 +1,16 @@ -import { type UmbTreeItemModelBase } from './types.js'; -import { type UmbTreeRepository } from './tree-repository.interface.js'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { UmbTreeItemModelBase } from './types.js'; +import type { UmbTreeRepository } from './tree-repository.interface.js'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; import { type ManifestRepository, type ManifestTree, umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; -import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; // TODO: update interface diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts index 368a1db369..999ac69ffb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts @@ -1,8 +1,8 @@ import { UmbTreeContextBase } from './tree.context.js'; -import { UmbTreeItemModelBase } from './types.js'; +import type { UmbTreeItemModelBase } from './types.js'; import { html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import './tree-item-default/tree-item.element.js'; import './tree-item-base/tree-item-base.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts index b9874fd8f3..a09b75ff64 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './tree.element.js'; import type { UmbTreeElement } from './tree.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts index 51f4554b57..1fd094e990 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.context.ts @@ -1,6 +1,6 @@ import { UmbTreeItemContextBase } from '../tree-item-base/tree-item-base.context.js'; -import { UmbUniqueTreeItemModel } from '../types.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbUniqueTreeItemModel } from '../types.js'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbUniqueTreeItemContext extends UmbTreeItemContextBase { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts index 7396593a41..e5c15b71ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-item/unique-tree-item.element.ts @@ -1,11 +1,12 @@ -import { UmbUniqueTreeItemModel } from '../types.js'; +import type { UmbUniqueTreeItemModel } from '../types.js'; import { UmbUniqueTreeItemContext } from './unique-tree-item.context.js'; import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { UmbBackofficeManifestKind, - UmbTreeItemElement, + UmbTreeItemElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts index 7ff4bee314..03128c7141 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/unique-tree-store.ts @@ -1,8 +1,8 @@ -import { type UmbTreeStore } from './tree-store.interface.js'; -import { UmbUniqueTreeItemModel } from './types.js'; +import type { UmbTreeStore } from './tree-store.interface.js'; +import type { UmbUniqueTreeItemModel } from './types.js'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; // TODO: remove Unique from name when we have switched to uniques /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts index 7029aa3be3..a98ee33bec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts @@ -1,4 +1,4 @@ -import { ManifestTypes } from './extension-registry/index.js'; +import type { ManifestTypes } from './extension-registry/index.js'; export const name = 'Umbraco.Core'; export const version = '0.0.1'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.stories.ts index f8e18fe1e4..0d4e95dc7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './variant-selector.element.js'; import type { UmbVariantSelectorElement } from './variant-selector.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts index 48e0cae55e..151c35b201 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts @@ -1,6 +1,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-workspace-action-menu') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts index 7ed47c5e65..92c9403325 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/common/save/save.action.ts @@ -1,4 +1,4 @@ -import { UmbSaveableWorkspaceContextInterface } from '../../../../workspace-context/saveable-workspace-context.interface.js'; +import type { UmbSaveableWorkspaceContextInterface } from '../../../../workspace-context/saveable-workspace-context.interface.js'; import { UmbWorkspaceActionBase } from '../../workspace-action-base.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action-base.ts index 3d24872ea3..1a7151ffac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action-base.ts @@ -1,5 +1,6 @@ -import { UmbWorkspaceContextInterface, UMB_WORKSPACE_CONTEXT } from '../../workspace-context/index.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbWorkspaceContextInterface} from '../../workspace-context/index.js'; +import { UMB_WORKSPACE_CONTEXT } from '../../workspace-context/index.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts index 8a923fa5c4..3e2403857f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/workspace-action.element.ts @@ -1,4 +1,4 @@ -import { UmbWorkspaceAction } from './index.js'; +import type { UmbWorkspaceAction } from './index.js'; import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index 9ba933c009..0ec3a0831e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts @@ -1,9 +1,10 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute, UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/backoffice/router'; -import { +import type { ManifestWorkspaceView, - ManifestWorkspaceViewCollection, + ManifestWorkspaceViewCollection} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import { UmbExtensionsManifestInitializer, createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.stories.ts index 4a32b33fb0..9c98c5f6a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.stories.ts @@ -1,6 +1,6 @@ import './workspace-editor.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbWorkspaceEditorElement } from './workspace-editor.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts index 7024bf2ee5..da49d49b5b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts @@ -3,7 +3,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_CONTEXT, UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_CONTEXT } from '@umbraco-cms/backoffice/modal'; /** * @element umb-workspace-footer diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.stories.ts index aaa3a2551b..f18e741d6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.stories.ts @@ -1,7 +1,7 @@ import '../workspace-editor/workspace-editor.element.js'; import './workspace-footer.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbWorkspaceFooterLayoutElement } from './workspace-footer.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts index 35c49dc064..f3ff0b0882 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view.context.ts @@ -1,10 +1,10 @@ import { UMB_VARIANT_WORKSPACE_CONTEXT } from '../../workspace-context/index.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; -import { type UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; export class UmbWorkspaceSplitViewContext extends UmbBaseController { #workspaceContext?: typeof UMB_VARIANT_WORKSPACE_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/publishable-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/publishable-workspace.context-token.ts index de2e8c44e6..be1cd00336 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/publishable-workspace.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/publishable-workspace.context-token.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { +import type { UmbPublishableWorkspaceContextInterface, UmbSaveableWorkspaceContextInterface, } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts index d0046df232..3daf803e7b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/saveable-workspace.context-token.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbWorkspaceContextInterface, UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbWorkspaceContextInterface, UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; export const UMB_SAVEABLE_WORKSPACE_CONTEXT = new UmbContextToken< UmbWorkspaceContextInterface, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-alias.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-alias.condition.ts index 168746bb91..fa0dcfba0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-alias.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-alias.condition.ts @@ -1,6 +1,6 @@ import { UMB_WORKSPACE_CONTEXT, type UmbWorkspaceContextInterface } from './workspace-context/index.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.ts index c726053a4c..2139e178a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.ts @@ -1,12 +1,12 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { ManifestWorkspaceViewCollection } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import '../../../../collection/dashboards/dashboard-collection.element.js'; -import { UmbTreeItemModelBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbTreeItemModelBase } from '@umbraco-cms/backoffice/tree'; @customElement('umb-workspace-view-collection') export class UmbWorkspaceViewCollectionElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts index e660c58a92..08ebb0aa06 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/editable-workspace-context-base.ts @@ -1,9 +1,10 @@ -import { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UMB_MODAL_CONTEXT, UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_CONTEXT } from '@umbraco-cms/backoffice/modal'; export abstract class UmbEditableWorkspaceContextBase extends UmbBaseController diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts index 225c3d790f..26ded84e29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/entity-manager-controller.ts @@ -1,14 +1,16 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbContextConsumerController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationDefaultData, - UmbNotificationContext, + UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; import { UmbObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import { UmbEntityDetailStore } from '@umbraco-cms/backoffice/store'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityDetailStore } from '@umbraco-cms/backoffice/store'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; // Extend entityType base type?, so we are sure to have parentId? // TODO: switch to use EntityDetailItem ? if we can have such type? diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/property-structure-workspace-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/property-structure-workspace-context.interface.ts index d3704b61e8..4c64b25e57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/property-structure-workspace-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/property-structure-workspace-context.interface.ts @@ -1,5 +1,5 @@ import type { UmbWorkspaceContextInterface } from './workspace-context.interface.js'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ValueModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbPropertyStructureWorkspaceContextInterface extends UmbWorkspaceContextInterface { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts index d3fcff8e6b..40f35c15c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/saveable-workspace-context.interface.ts @@ -1,5 +1,5 @@ import type { UmbWorkspaceContextInterface } from './workspace-context.interface.js'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbSaveableWorkspaceContextInterface extends UmbWorkspaceContextInterface { isNew: Observable; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts index 85caa5af84..b9585fd07c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-invariantable-context.interface.ts @@ -1,7 +1,7 @@ -import { UmbVariantId } from '../../variant/variant-id.class.js'; -import { UmbPropertyDatasetContext } from '../../property/property-dataset/property-dataset-context.interface.js'; +import type { UmbVariantId } from '../../variant/variant-id.class.js'; +import type { UmbPropertyDatasetContext } from '../../property/property-dataset/property-dataset-context.interface.js'; import type { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface UmbInvariantableWorkspaceContextInterface extends UmbSaveableWorkspaceContextInterface { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts index a2874036c8..9ffa5998fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts @@ -1,10 +1,10 @@ import type { UmbWorkspaceSplitViewManager } from '../workspace-split-view-manager.class.js'; -import { UmbPropertyDatasetContext } from '../../property/property-dataset/property-dataset-context.interface.js'; +import type { UmbPropertyDatasetContext } from '../../property/property-dataset/property-dataset-context.interface.js'; import type { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { ContentStateModel, VariantResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbVariantableWorkspaceContextInterface extends UmbSaveableWorkspaceContextInterface { // Name: diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-entity-type.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-entity-type.condition.ts index e4a1380015..8021480272 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-entity-type.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-entity-type.condition.ts @@ -1,6 +1,6 @@ import { UMB_WORKSPACE_CONTEXT } from './workspace-context/index.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts index b32ff1cd27..94629ba5df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-is-new-redirect-controller/workspace-is-new-redirect-controller.ts @@ -1,5 +1,5 @@ -import { UmbEditableWorkspaceContextBase } from '../workspace-context/index.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbEditableWorkspaceContextBase } from '../workspace-context/index.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { createRoutePathBuilder, type UmbRouterSlotElement } from '@umbraco-cms/backoffice/router'; import { ensurePathEndsWithSlash } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/manifests.ts index f0f2d124b8..2a47183d68 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; const workspaceModal: ManifestModal = { type: 'modal', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts index b37e725ac3..de53c48aa7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts @@ -1,6 +1,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbWorkspaceData } from '@umbraco-cms/backoffice/modal'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbWorkspaceData } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-workspace-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-dataset/invariant-workspace-property-dataset-context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-dataset/invariant-workspace-property-dataset-context.ts index 7a4bd4d0e2..64738e1129 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-dataset/invariant-workspace-property-dataset-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property-dataset/invariant-workspace-property-dataset-context.ts @@ -1,12 +1,13 @@ -import { - UMB_PROPERTY_DATASET_CONTEXT, +import type { UmbPropertyDatasetContext, - UmbNameablePropertyDatasetContext, + UmbNameablePropertyDatasetContext} from '@umbraco-cms/backoffice/property'; +import { + UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { UmbInvariantableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbInvariantableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; /** * A property dataset context that hooks directly into the workspace context. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts index 8a1c82d92e..5d8855a140 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts @@ -1,7 +1,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-workspace') export class UmbWorkspaceElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts index acaaa39823..6f82558c59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts @@ -1,9 +1,9 @@ import { UmbDictionaryRepository } from '../../dictionary/repository/dictionary.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state, when } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTableConfig, UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/components'; +import type { UmbTableConfig, UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/components'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DictionaryOverviewResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DictionaryOverviewResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-dashboard-translation-dictionary') export class UmbDashboardTranslationDictionaryElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create-dictionary-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create-dictionary-modal.element.ts index 41b39096a4..86fbcf5be2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create-dictionary-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create-dictionary-modal.element.ts @@ -1,8 +1,9 @@ import { html, customElement, query, when } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { UmbCreateDictionaryModalData, - UmbCreateDictionaryModalValue, + UmbCreateDictionaryModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts index 7eed91c078..95590492f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/create/create.action.ts @@ -1,7 +1,7 @@ -import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; +import type { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export default class UmbCreateDictionaryEntityAction extends UmbEntityActionBase { static styles = [UmbTextStyles]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export-dictionary-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export-dictionary-modal.element.ts index b8b0a9199c..467fe0c1dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export-dictionary-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export-dictionary-modal.element.ts @@ -1,8 +1,9 @@ import { html, customElement, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { UmbExportDictionaryModalData, - UmbExportDictionaryModalValue, + UmbExportDictionaryModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts index b0a9f81bba..77475c2e43 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/export/export.action.ts @@ -1,9 +1,10 @@ -import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; +import type { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_EXPORT_DICTIONARY_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts index dec97973eb..6f37754d6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts @@ -2,13 +2,14 @@ import { UMB_DICTIONARY_TREE_ALIAS } from '../../tree/manifests.js'; import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; import { css, html, customElement, query, state, when } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UmbImportDictionaryModalData, - UmbImportDictionaryModalValue, - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbImportDictionaryModalData, UmbImportDictionaryModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbEntityTreeItemModel, UmbTreeElement, type UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; +import type { + UmbEntityTreeItemModel, + UmbTreeElement, + UmbTreeSelectionConfiguration, +} from '@umbraco-cms/backoffice/tree'; interface DictionaryItemPreview { name: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts index 8ee45c0477..f17091b168 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import.action.ts @@ -1,13 +1,15 @@ -import { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; +import type { UmbDictionaryRepository } from '../../repository/dictionary.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_IMPORT_DICTIONARY_MODAL, } from '@umbraco-cms/backoffice/modal'; -import { UMB_DICTIONARY_TREE_STORE_CONTEXT, UmbDictionaryTreeStore } from '@umbraco-cms/backoffice/dictionary'; +import type { UmbDictionaryTreeStore } from '@umbraco-cms/backoffice/dictionary'; +import { UMB_DICTIONARY_TREE_STORE_CONTEXT } from '@umbraco-cms/backoffice/dictionary'; export default class UmbImportDictionaryEntityAction extends UmbEntityActionBase { static styles = [UmbTextStyles]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts index 95ef56cffa..c149ea901e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/reload.action.ts @@ -1,7 +1,7 @@ -import { UmbDictionaryRepository } from '../repository/dictionary.repository.js'; +import type { UmbDictionaryRepository } from '../repository/dictionary.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export default class UmbReloadDictionaryEntityAction extends UmbEntityActionBase { static styles = [UmbTextStyles]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu.manifests.ts index a8559a8c2d..184de9670d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/menu.manifests.ts @@ -1,4 +1,4 @@ -import { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; const menu: ManifestMenu = { type: 'menu', diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts index 48b5a504f7..06babd801e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.repository.ts @@ -1,7 +1,8 @@ import { type UmbDictionaryTreeStore, UMB_DICTIONARY_TREE_STORE_CONTEXT } from '../tree/index.js'; -import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT } from './dictionary.store.js'; +import type { UmbDictionaryStore} from './dictionary.store.js'; +import { UMB_DICTIONARY_STORE_CONTEXT } from './dictionary.store.js'; import { UmbDictionaryDetailServerDataSource } from './sources/dictionary-detail.server.data-source.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { CreateDictionaryItemRequestModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts index 2a3ecec0a9..5a72ddcf3b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/dictionary.store.ts @@ -1,8 +1,8 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/manifests.ts index 4fd6335dfa..82671b380b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/manifests.ts @@ -1,6 +1,6 @@ import { UmbDictionaryRepository } from './dictionary.repository.js'; import { UmbDictionaryStore } from './dictionary.store.js'; -import { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DICTIONARY_REPOSITORY_ALIAS = 'Umb.Repository.Dictionary'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/sources/dictionary-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/sources/dictionary-detail.server.data-source.ts index 1a5ba901b2..d60f7e4af8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/sources/dictionary-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/repository/sources/dictionary-detail.server.data-source.ts @@ -1,13 +1,14 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { +import type { CreateDictionaryItemRequestModel, DictionaryItemResponseModel, - DictionaryResource, ImportDictionaryRequestModel, - LanguageResource, - UpdateDictionaryItemRequestModel, + UpdateDictionaryItemRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + DictionaryResource, + LanguageResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts index 9a65449f54..878113826f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_DICTIONARY_ROOT_ENTITY_TYPE } from '../entities.js'; import { UmbDictionaryTreeServerDataSource } from './dictionary-tree.server.data-source.js'; -import { UmbDictionaryTreeItemModel, UmbDictionaryTreeRootModel } from './types.js'; +import type { UmbDictionaryTreeItemModel, UmbDictionaryTreeRootModel } from './types.js'; import { UMB_DICTIONARY_TREE_STORE_CONTEXT } from './dictionary-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbDictionaryTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts index a38967d7f6..5b60668f90 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts @@ -1,7 +1,8 @@ -import { UmbDictionaryTreeItemModel } from './types.js'; +import type { UmbDictionaryTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { DictionaryResource, EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DictionaryResource } from '@umbraco-cms/backoffice/backend-api'; /** * A data source for the Dictionary tree that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.store.ts index 30e9c79fd0..7970e82297 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts index c7e5f9a813..61cf5143ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.ts @@ -1,5 +1,6 @@ import { UMB_DICTIONARY_WORKSPACE_CONTEXT } from './dictionary-workspace.context.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-dictionary-workspace-editor') diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts index c6f23dea9f..6dab01dbe9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.context.ts @@ -5,7 +5,7 @@ import { } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbDictionaryWorkspaceContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.stories.ts index 1d62371a8d..28dfcc2089 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/dictionary-workspace.stories.ts @@ -1,5 +1,5 @@ import './dictionary-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { data } from '../../../../mocks/data/dictionary.data.js'; import type { UmbWorkspaceDictionaryElement } from './dictionary-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.ts index 1be03b42d7..69412ac4e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.ts @@ -1,9 +1,10 @@ import { UMB_DICTIONARY_WORKSPACE_CONTEXT } from '../../dictionary-workspace.context.js'; import { UmbDictionaryRepository } from '../../../repository/dictionary.repository.js'; -import { UUITextareaElement, UUITextareaEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUITextareaElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUITextareaEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, repeat, ifDefined, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DictionaryItemResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DictionaryItemResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-workspace-view-dictionary-editor') export class UmbWorkspaceViewDictionaryEditorElement extends UmbLitElement { @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.stories.ts index e31a2f4b2b..c2b78d4db6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbWorkspaceViewDictionaryEditorElement } from './workspace-view-dictionary-editor.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; //import { data } from '../../../../../core/mocks/data/dictionary.data.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts index 3e4772a43b..e26b0605a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.ts @@ -1,11 +1,13 @@ -import { UUIButtonState, UUIPaginationElement, UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState, UUIPaginationElement, UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, state, query, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + RedirectUrlResponseModel} from '@umbraco-cms/backoffice/backend-api'; import { RedirectManagementResource, - RedirectStatusModel, - RedirectUrlResponseModel, + RedirectStatusModel } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts index d23de5a944..8610ff7d0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/redirect-management/dashboard-redirect-management.stories.ts @@ -1,6 +1,6 @@ import './dashboard-redirect-management.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardRedirectManagementElement } from './dashboard-redirect-management.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts index 85309834eb..885329dd0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts @@ -2,7 +2,7 @@ import type { DocumentBlueprintDetails } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.context.ts index a3b2ca84c0..fe224b198b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/components/input-document-type/input-document-type.context.ts @@ -1,8 +1,8 @@ import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_DOCUMENT_TYPE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbDocumentTypePickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts index 3f1594fa7c..c62e4efbfe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/create.action.ts @@ -1,8 +1,9 @@ -import { UmbDocumentTypeDetailRepository } from '../../repository/detail/document-type-detail.repository.js'; +import type { UmbDocumentTypeDetailRepository } from '../../repository/detail/document-type-detail.repository.js'; import { UMB_DOCUMENT_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateDataTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts index 5afc00c367..4fd259b459 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/manifests.ts @@ -5,7 +5,7 @@ import { } from '../../entity.js'; import { DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbCreateDataTypeEntityAction } from './create.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts index d296ce760d..c9c13031cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.ts @@ -1,5 +1,5 @@ import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; -import { UmbDocumentTypeCreateOptionsModalData } from './index.js'; +import type { UmbDocumentTypeCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/manifests.ts index 752841e901..d75a88d590 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/entity-actions/manifests.ts @@ -6,7 +6,7 @@ import { UmbDeleteEntityAction, UmbSortChildrenOfEntityAction, } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityType = 'document-type'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.element.ts index c12cacd3c9..bea3fc4445 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.element.ts @@ -1,6 +1,6 @@ import type { UmbInputDocumentTypeElement } from '../../components/input-document-type/input-document-type.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.stories.ts index c1fb25ebdc..0ef8726e53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-editors/document-type-picker/property-editor-ui-document-type-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIDocumentTypePickerElement } from './property-editor-ui-document-type-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts index 0e6aa238dc..b4ad681fa0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts @@ -1,7 +1,7 @@ -import { UmbDocumentTypeDetailModel } from '../../types.js'; +import type { UmbDocumentTypeDetailModel } from '../../types.js'; import { UmbDocumentTypeDetailServerDataSource } from './document-type-detail.server.data-source.js'; import { UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT } from './document-type-detail.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbDocumentTypeDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 6ffc8bd296..229fb006f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -1,11 +1,12 @@ -import { UmbDocumentTypeDetailModel } from '../../types.js'; +import type { UmbDocumentTypeDetailModel } from '../../types.js'; import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; -import { +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { CreateDocumentTypeRequestModel, - DocumentTypeResource, - UpdateDocumentTypeRequestModel, + UpdateDocumentTypeRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts index cf79d86801..2f2a127711 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.store.ts @@ -1,7 +1,7 @@ -import { UmbDocumentTypeDetailModel } from '../../types.js'; +import type { UmbDocumentTypeDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/manifests.ts index 2f6bd3999f..4369b8b7f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/manifests.ts @@ -1,6 +1,6 @@ import { UmbDocumentTypeDetailRepository } from './document-type-detail.repository.js'; import { UmbDocumentTypeDetailStore } from './document-type-detail.store.js'; -import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType.Detail'; export const UMB_DOCUMENT_TYPE_DETAIL_STORE_ALIAS = 'Umb.Store.DocumentType.Detail'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts index 1a6dba2fb0..500d791da5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts @@ -1,7 +1,7 @@ -import { UmbDocumentTypeItemModel } from './types.js'; +import type { UmbDocumentTypeItemModel } from './types.js'; import { UmbDocumentTypeItemServerDataSource } from './document-type-item.server.data.js'; import { UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT } from './document-type-item.store.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbDocumentTypeItemRepository extends UmbItemRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts index 4bebeecd17..aff1cc985f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts @@ -1,5 +1,6 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import { DocumentTypeItemResponseModel, DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTypeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts index 3092161136..23ed3af0e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts @@ -1,6 +1,6 @@ -import { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/manifests.ts index 2a2cef94da..e92f65687e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/manifests.ts @@ -1,6 +1,6 @@ import { UmbDocumentTypeItemRepository } from './document-type-item.repository.js'; import { UmbDocumentTypeItemStore } from './document-type-item.store.js'; -import { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType.Item'; export const UMB_DOCUMENT_TYPE_ITEM_STORE_ALIAS = 'Umb.Store.DocumentType.Item'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts index 609f911ad6..d06102317d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts @@ -1,3 +1,3 @@ -import { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbDocumentTypeItemModel = DocumentTypeItemResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts index 4f2c1d31e5..16c2b640e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentTypeTreeServerDataSource } from './document-type.tree.server.data-source.js'; import { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from './document-type.tree.store.js'; -import { UmbDocumentTypeTreeItemModel, UmbDocumentTypeTreeRootModel } from './types.js'; +import type { UmbDocumentTypeTreeItemModel, UmbDocumentTypeTreeRootModel } from './types.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbDocumentTypeTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts index d9ca8052e5..619ef7c489 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts @@ -1,7 +1,8 @@ import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbDocumentTypeTreeItemModel } from './types.js'; +import type { UmbDocumentTypeTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { DocumentTypeResource, DocumentTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts index 007dd1ca2f..490baed60a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts @@ -1,8 +1,8 @@ -import { UmbDocumentTypeDetailModel } from '../types.js'; +import type { UmbDocumentTypeDetailModel } from '../types.js'; import { UMB_DOCUMENT_TYPE_DETAIL_STORE_CONTEXT } from '../repository/index.js'; -import { UmbDocumentTypeTreeItemModel } from './types.js'; +import type { UmbDocumentTypeTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts index 6a56a658be..db7aec1677 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts @@ -1,9 +1,10 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbDocumentTypeFolderServerDataSource } from './document-type-folder.server.data-source.js'; -import { UmbDocumentTypeFolderTreeItemModel } from './types.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbDocumentTypeFolderTreeItemModel } from './types.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; export class UmbDocumentTypeFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts index 42b3d91614..e63517a618 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts index be478b7c16..20929ae03b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/types.ts @@ -1,5 +1,5 @@ -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbDocumentTypeTreeItemModel } from '../types.js'; +import type { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import type { UmbDocumentTypeTreeItemModel } from '../types.js'; export interface UmbDocumentTypeFolderTreeItemModel extends UmbDocumentTypeTreeItemModel { entityType: typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts index 243cf67e93..a404aca3ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/types.ts @@ -1,9 +1,9 @@ -import { +import type { UmbDocumentTypeEntityType, UmbDocumentTypeFolderEntityType, UmbDocumentTypeRootEntityType, } from '../entity.js'; -import { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbDocumentTypeTreeItemModel extends UmbUniqueTreeItemModel { entityType: UmbDocumentTypeEntityType | UmbDocumentTypeFolderEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts index 054a13dabf..e01b2fb9ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/types.ts @@ -1,6 +1,6 @@ -import { UmbDocumentTypeEntityType } from './entity.js'; -import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; -import { ContentTypeCleanupModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDocumentTypeEntityType } from './entity.js'; +import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { ContentTypeCleanupModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDocumentTypeDetailModel extends UmbContentTypeModel { entityType: UmbDocumentTypeEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts index dda0eb238d..b2440ae46b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts @@ -1,9 +1,11 @@ import { UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT } from './document-type-workspace.context-token.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_ICON_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts index bb0ace3e49..ea7ad4bc6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts @@ -1,8 +1,8 @@ -import { +import type { DocumentTypePropertyTypeContainerResponseModel, PropertyTypeContainerModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG_HORIZONTAL: UmbSorterConfig = { compareElementToModel: (element: HTMLElement, model: DocumentTypePropertyTypeContainerResponseModel) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index c2d15e3cc2..3701df5d0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -1,12 +1,13 @@ import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; -import { UmbDocumentTypeDetailModel } from '../types.js'; +import type { UmbDocumentTypeDetailModel } from '../types.js'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; +import type { + UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbEditableWorkspaceContextBase, - UmbSaveableWorkspaceContextInterface, + UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import type { ContentTypeCompositionModel, ContentTypeSortModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; type EntityType = UmbDocumentTypeDetailModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts index 45cf2526a7..aeb75ba0d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.element.ts @@ -2,7 +2,7 @@ import { UmbDocumentTypeWorkspaceContext } from './document-type-workspace.conte import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbRoute } from '@umbraco-cms/backoffice/router'; +import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts index a708971f00..523ea9a68f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.stories.ts @@ -1,5 +1,5 @@ import './document-type-workspace-editor.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { data } from '../../../../mocks/data/document-type/document-type.data.js'; import type { UmbDocumentTypeWorkspaceElement } from './document-type-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index cbb79ff7d3..2c5acb43e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -1,12 +1,14 @@ -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; import './document-type-workspace-view-edit-property.element.js'; -import { UmbDocumentTypeDetailModel } from '../../../types.js'; +import type { UmbDocumentTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; -import { UmbSorterController, UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; +import type { PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index fbdbed4c0e..92a54b7a51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -1,13 +1,15 @@ import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + UmbConfirmModalData} from '@umbraco-cms/backoffice/modal'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_SETTINGS_MODAL, UMB_WORKSPACE_MODAL, - UmbConfirmModalData, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts index 48f2e2821c..593bd375fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts @@ -1,12 +1,13 @@ -import { UmbDocumentTypeDetailModel } from '../../../types.js'; -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbDocumentTypeDetailModel } from '../../../types.js'; +import type { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import './document-type-workspace-view-edit-properties.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index 7f76fe14cb..9b9920205b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -1,21 +1,23 @@ -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; -import { UmbDocumentTypeDetailModel } from '../../../types.js'; +import type { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbDocumentTypeDetailModel } from '../../../types.js'; import type { UmbDocumentTypeWorkspaceViewEditTabElement } from './document-type-workspace-view-edit-tab.element.js'; import { css, html, customElement, state, repeat, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; -import { encodeFolderName, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { DocumentTypePropertyTypeContainerResponseModel, PropertyTypeContainerModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbRoute , UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG: UmbSorterConfig = { compareElementToModel: (element: HTMLElement, model: DocumentTypePropertyTypeContainerResponseModel) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts index b91ec1125e..0c732edd0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts @@ -1,10 +1,10 @@ -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-type-workspace-view-settings') export class UmbDocumentTypeWorkspaceViewSettingsElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts index 2dce7e6510..e9a11e6d9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts @@ -1,11 +1,11 @@ -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; import type { UmbInputDocumentTypeElement } from '../../../components/input-document-type/input-document-type.element.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-type-workspace-view-structure') export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts index 915bfa7f80..4c73b41165 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts @@ -1,11 +1,11 @@ -import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; +import type { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; import type { UmbInputTemplateElement } from '../../../../../templating/templates/components/input-template/input-template.element.js'; import '../../../../../templating/templates/components/input-template/input-template.element.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-type-workspace-view-templates') export class UmbDocumentTypeWorkspaceViewTemplatesElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts index 8d188cdada..add070ce13 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/manifests.ts @@ -1,5 +1,5 @@ import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_COLLECTION_ALIAS = 'document'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts index e611a111d2..daa68e5862 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-actions-column-layout.element.ts @@ -1,6 +1,6 @@ import { css, html, LitElement, ifDefined, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; import type { UmbDropdownElement, UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/components'; -import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; // TODO: this could be done more generic, but for now we just need it for the document table @customElement('umb-document-table-actions-column-layout') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts index 7d5fe1d058..9f4b25bf4b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts @@ -1,8 +1,8 @@ -import { UmbDocumentTreeItemModel } from '../../../tree/types.js'; +import type { UmbDocumentTreeItemModel } from '../../../tree/types.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { UmbTableColumn, UmbTableConfig, UmbTableDeselectedEvent, @@ -11,9 +11,10 @@ import { UmbTableOrderedEvent, UmbTableSelectedEvent, } from '@umbraco-cms/backoffice/components'; -import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; import './column-layouts/document-table-actions-column-layout.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts index 78c7d0375b..13542f654a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts @@ -1,7 +1,9 @@ -import { css, html, customElement, property, state, PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL, UMB_DOCUMENT_PICKER_MODAL, @@ -10,7 +12,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbDocumentRepository } from '@umbraco-cms/backoffice/document'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; @customElement('umb-input-document-granular-permission') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.stories.ts index fecf4787e4..9828747dce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-document.element.js'; import type { UmbInputDocumentElement } from './input-document.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts index 88685471a5..39c5548097 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCreateDocumentBlueprintEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts index 5dee80b827..3dbb942327 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts @@ -1,11 +1,12 @@ import { html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { UmbCreateDocumentModalData, - UmbCreateDocumentModalValue, + UmbCreateDocumentModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; -import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbDocumentRepository } from '@umbraco-cms/backoffice/document'; @customElement('umb-create-document-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index f59d5ce8a2..022580f912 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -1,8 +1,9 @@ import type { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CREATE_DOCUMENT_MODAL as UMB_CREATE_DOCUMENT_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts index fca3f39eac..4b154d25af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UmbCreateDocumentEntityAction } from './create.action.js'; -import { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts index 01932ae60e..316da91393 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts index 1c66694255..2e1c8be850 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts @@ -13,7 +13,7 @@ import { UmbMoveEntityAction, UmbSortChildrenOfEntityAction, } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ ...createManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts index 49e975fc98..fcf91bd0ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UmbDocumentPermissionsEntityAction } from './permissions.action.js'; -import { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts index 65717c8038..67886ad820 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts @@ -3,14 +3,15 @@ import { UmbDocumentRepository } from '../../repository/index.js'; import { UmbUserGroupRepository } from '@umbraco-cms/backoffice/user-group'; import { html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UMB_ENTITY_USER_PERMISSION_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UMB_USER_GROUP_PICKER_MODAL, +import type { UmbEntityUserPermissionSettingsModalData, UmbEntityUserPermissionSettingsModalValue, UmbModalContext, - UmbModalManagerContext, + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { + UMB_ENTITY_USER_PERMISSION_MODAL, + UMB_MODAL_MANAGER_CONTEXT, + UMB_USER_GROUP_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbSelectedEvent } from '@umbraco-cms/backoffice/event'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts index 9badcdcec0..3a8441ceab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts @@ -1,9 +1,10 @@ -import { type UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, UMB_PERMISSIONS_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts index 0d4b7eafda..ca4a02d65e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts index d00aba2a98..3e150d1380 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts index d6c8e6ff2a..08bfe60557 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbRollbackDocumentEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts index 1940fa8862..d3f447258b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts index 8c2f96b880..7ac5b30300 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentCopyEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts index 626eeedcf8..afe22f2661 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/manifests.ts @@ -3,7 +3,7 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_COLLECTION_ALIAS } from '../collection/index.js'; import { UmbDocumentMoveEntityBulkAction } from './move/move.action.js'; import { UmbDocumentCopyEntityBulkAction } from './copy/copy.action.js'; -import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; const entityActions: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts index 720342e56d..1b54d4f289 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts @@ -1,6 +1,6 @@ -import { UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentMoveEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu.manifests.ts index 9169f78324..6bb7fe2726 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu.manifests.ts @@ -1,4 +1,4 @@ -import { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_CONTENT_MENU_ALIAS = 'Umb.Menu.Content'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.token.ts index b7ddcf95ac..1c4fa693e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.token.ts @@ -1,6 +1,6 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import type { UmbDocumentPropertyDataContext } from './document-property-dataset-context.js'; -import { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export const IsDocumentVariantContext = ( diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts index bbfd36a12d..7fdadb021a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts @@ -1,11 +1,12 @@ import type { UmbDocumentWorkspaceContext } from '../workspace/index.js'; -import { - UMB_PROPERTY_DATASET_CONTEXT, +import type { UmbNameablePropertyDatasetContext, - UmbPropertyDatasetContext, + UmbPropertyDatasetContext} from '@umbraco-cms/backoffice/property'; +import { + UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -import { DocumentVariantResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { DocumentVariantResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts index 444d7ceeae..957cd94e11 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.element.ts @@ -1,6 +1,6 @@ import type { UmbInputDocumentElement } from '../../components/input-document/input-document.element.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts index 68e1068b57..e1bffcad17 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-editors/document-picker/property-editor-ui-document-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIDocumentPickerElement } from './property-editor-ui-document-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.repository.ts index ca4ef93e0e..bfc2901e0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentRecycleBinTreeServerDataSource } from './document-recycle-bin-tree.server.data-source.js'; -import { UmbDocumentRecycleBinTreeItemModel, UmbDocumentRecycleBinTreeRootModel } from './types.js'; +import type { UmbDocumentRecycleBinTreeItemModel, UmbDocumentRecycleBinTreeRootModel } from './types.js'; import { UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT } from './document-recycle-bin-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbDocumentRecycleBinTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts index af437d41b0..9da40d7cdf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts @@ -1,5 +1,6 @@ -import { UmbDocumentRecycleBinTreeItemModel } from './types.js'; -import { DocumentResource, RecycleBinItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDocumentRecycleBinTreeItemModel } from './types.js'; +import type { RecycleBinItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DocumentResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.store.ts index f9a432ae37..aa7ffa7a64 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts index 1cdc3cd240..f4ee05e653 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts @@ -1,6 +1,6 @@ -import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityItemStore, UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts index c620159fb4..a2f643c6a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts @@ -1,14 +1,17 @@ -import { UmbDocumentTreeStore, UMB_DOCUMENT_TREE_STORE_CONTEXT } from '../tree/document-tree.store.js'; +import type { UmbDocumentTreeStore} from '../tree/document-tree.store.js'; +import { UMB_DOCUMENT_TREE_STORE_CONTEXT } from '../tree/document-tree.store.js'; import { UmbDocumentServerDataSource } from './sources/document.server.data.js'; -import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT } from './document.store.js'; +import type { UmbDocumentStore} from './document.store.js'; +import { UMB_DOCUMENT_STORE_CONTEXT } from './document.store.js'; import { UMB_DOCUMENT_ITEM_STORE_CONTEXT, type UmbDocumentItemStore } from './document-item.store.js'; import { UmbDocumentItemServerDataSource } from './sources/document-item.server.data.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import type { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; export class UmbDocumentRepository extends UmbBaseController implements UmbApi { #init!: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts index 2ef5453e2d..a169eb23bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts @@ -1,8 +1,8 @@ -import { DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document-item.server.data.ts index 36f9a45ff7..417f56ccfe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document-item.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document-item.server.data.ts @@ -1,5 +1,6 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import { DocumentItemResponseModel, DocumentResource } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { DocumentResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts index 805240d798..e13f82804e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts @@ -1,17 +1,18 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; -import { - DocumentResource, +import type { DocumentResponseModel, - ContentStateModel, CreateDocumentRequestModel, UpdateDocumentRequestModel, PublishDocumentRequestModel, - UnpublishDocumentRequestModel, + UnpublishDocumentRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + DocumentResource, + ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; /** * A data source for the Document that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts index 1b2679bdae..295fecbe26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/document-tracked-reference.repository.ts @@ -1,5 +1,5 @@ import { UmbDocumentTrackedReferenceServerDataSource } from './document-tracked-reference.server.data.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export class UmbDocumentTrackedReferenceRepository extends UmbBaseController { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts index 1ff1228eaa..972222f3b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tracked-reference/repository/manifests.ts @@ -1,5 +1,5 @@ import { UmbDocumentTrackedReferenceRepository } from './document-tracked-reference.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_TRACKED_REFERENCE_REPOSITORY_ALIAS = 'Umb.Repository.Document.TrackedReference'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts index f696b3237b..0a27b7d80e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentTreeServerDataSource } from './document-tree.server.data-source.js'; -import { UmbDocumentTreeItemModel, UmbDocumentTreeRootModel } from './types.js'; +import type { UmbDocumentTreeItemModel, UmbDocumentTreeRootModel } from './types.js'; import { UMB_DOCUMENT_TREE_STORE_CONTEXT } from './document-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbDocumentTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index 218b0f7258..6004acd243 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -1,6 +1,7 @@ -import { UmbDocumentTreeItemModel } from './types.js'; +import type { UmbDocumentTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { DocumentResource, DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DocumentResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts index 35343edce3..77c573b2c3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts index 813b73fc71..d54cca5129 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.context.ts @@ -1,4 +1,4 @@ -import { UmbDocumentTreeItemModel } from '../types.js'; +import type { UmbDocumentTreeItemModel } from '../types.js'; import { UmbTreeItemContextBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts index cdcb498ec1..a52bfa4310 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts @@ -1,9 +1,9 @@ -import { UmbDocumentTreeItemModel } from '../types.js'; +import type { UmbDocumentTreeItemModel } from '../types.js'; import { UmbDocumentTreeItemContext } from './document-tree-item.context.js'; import { css, html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbTreeItemElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbTreeItemElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-tree-item') export class UmbDocumentTreeItemElement extends UmbLitElement implements UmbTreeItemElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts index 25531a2e35..693f02bdcd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts @@ -1,4 +1,4 @@ -import { PublishedStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PublishedStateModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbDocumentTreeItemModel extends UmbEntityTreeItemModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts index 5f8d4b501f..4dbc0054fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/document-permission.repository.ts @@ -1,5 +1,5 @@ import { UmbDocumentPermissionServerDataSource } from './document-permission.server.data.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export class UmbDocumentPermissionRepository extends UmbBaseController { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts index d20227b8c3..73e3c36b08 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/repository/manifests.ts @@ -1,5 +1,5 @@ import { UmbDocumentPermissionRepository } from './document-permission.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_PERMISSION_REPOSITORY_ALIAS = 'Umb.Repository.Document.Permission'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index c458470a48..1c4ec4170f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -4,8 +4,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { customElement, state, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; -import { VariantModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import type { VariantModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-document-workspace-editor') export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index dff1683135..9c6b374ef3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { type ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-document-workspace-split-view') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context-token.ts index dbee388c78..65cb0d1ec3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context-token.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import type { UmbDocumentWorkspaceContext } from './document-workspace.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; export const UMB_DOCUMENT_WORKSPACE_CONTEXT = new UmbContextToken< UmbSaveableWorkspaceContextInterface, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index 3a91ce21df..3a89f4b731 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -6,8 +6,10 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import { UmbApi, UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestWorkspace, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbApi} from '@umbraco-cms/backoffice/extension-api'; +import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestWorkspace} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-workspace') export class UmbDocumentWorkspaceElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts index c415da2f8a..7381b9b633 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.stories.ts @@ -1,5 +1,5 @@ import './document-workspace-editor.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDocumentWorkspaceElement } from './document-workspace.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts index 9be6ded828..4740295f88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts @@ -1,9 +1,10 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from '../../document-workspace.context-token.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import type { PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-document-workspace-view-edit-properties') export class UmbDocumentWorkspaceViewEditPropertiesElement extends UmbLitElement { @property({ type: String, attribute: 'container-name', reflect: false }) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts index c05bbbaa78..51adb30ce2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.ts @@ -3,7 +3,7 @@ import { css, html, customElement, property, state, repeat } from '@umbraco-cms/ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import './document-workspace-view-edit-properties.element.js'; @customElement('umb-document-workspace-view-edit-tab') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts index 8535e3fe41..dfa77db940 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts @@ -3,15 +3,16 @@ import type { UmbDocumentWorkspaceViewEditTabElement } from './document-workspac import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; -import { - encodeFolderName, +import type { UmbRoute, UmbRouterSlotChangeEvent, - UmbRouterSlotInitEvent, + UmbRouterSlotInitEvent} from '@umbraco-cms/backoffice/router'; +import { + encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-workspace-view-edit') export class UmbDocumentWorkspaceViewEditElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-history.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-history.element.ts index c74ac7ab8d..a7b3d4d70c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-history.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-history.element.ts @@ -10,12 +10,13 @@ import { repeat, ifDefined, } from '@umbraco-cms/backoffice/external/lit'; -import { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { + AuditLogWithUsernameResponseModel} from '@umbraco-cms/backoffice/backend-api'; import { AuditLogBaseModel, - AuditLogWithUsernameResponseModel, DirectionModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbCurrentUserContext } from '@umbraco-cms/backoffice/current-user'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-reference.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-reference.element.ts index ab1a63a690..5c4e5df571 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-reference.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info-reference.element.ts @@ -1,8 +1,8 @@ import { css, html, customElement, state, nothing, repeat, property } from '@umbraco-cms/backoffice/external/lit'; -import { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { RelationItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { RelationItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbDocumentTrackedReferenceRepository } from '@umbraco-cms/backoffice/document'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts index 2a61663884..50a19c8f65 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts @@ -6,8 +6,8 @@ import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbra import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import './document-workspace-view-info-history.element.js'; import './document-workspace-view-info-reference.element.js'; -import { UmbDocumentWorkspaceContext } from '@umbraco-cms/backoffice/document'; -import { ContentUrlInfoModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDocumentWorkspaceContext } from '@umbraco-cms/backoffice/document'; +import type { ContentUrlInfoModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbCurrentUserContext } from '@umbraco-cms/backoffice/current-user'; @customElement('umb-document-workspace-view-info') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.stories.ts index 2a1788a0a7..d99a0a5bb4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.stories.ts @@ -1,6 +1,6 @@ import './document-workspace-view-info.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDocumentWorkspaceViewInfoElement } from './document-workspace-view-info.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts index c9fef1755b..af642d87b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts @@ -1,11 +1,13 @@ -import { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element.js'; +import type { UmbDashboardHealthCheckGroupElement } from './views/health-check-group.element.js'; import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT } from './health-check-dashboard.context.js'; import { UmbHealthCheckContext } from './health-check.context.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { HealthCheckGroupResponseModel, HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; +import type { HealthCheckGroupResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestHealthCheck, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestHealthCheck} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @customElement('umb-dashboard-health-check') diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.stories.ts index 39fc73ce8a..13ead98ebe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; import type { UmbDashboardHealthCheckOverviewElement } from './views/health-check-overview.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts index 47d6c6a382..75c362096c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check-dashboard.context.ts @@ -1,4 +1,4 @@ -import { UmbHealthCheckContext } from './health-check.context.js'; +import type { UmbHealthCheckContext } from './health-check.context.js'; import type { ManifestHealthCheck } from '@umbraco-cms/backoffice/extension-registry'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts index e32a6958db..ff5ea849ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.context.ts @@ -1,11 +1,12 @@ import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs'; -import { +import type { HealthCheckGroupPresentationModel, - HealthCheckGroupWithResultResponseModel, + HealthCheckGroupWithResultResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { HealthCheckResource, } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbHealthCheckContext { diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts index 64a88ecd85..4fe04ad1d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-action.element.ts @@ -1,8 +1,9 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { HealthCheckActionRequestModel, HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; +import type { HealthCheckActionRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts index c2fdceadcc..0231fd515f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts @@ -1,13 +1,15 @@ -import { UmbHealthCheckContext } from '../health-check.context.js'; +import type { UmbHealthCheckContext } from '../health-check.context.js'; +import type { + UmbHealthCheckDashboardContext} from '../health-check-dashboard.context.js'; import { - UMB_HEALTHCHECK_DASHBOARD_CONTEXT, - UmbHealthCheckDashboardContext, + UMB_HEALTHCHECK_DASHBOARD_CONTEXT } from '../health-check-dashboard.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { ensureSlash, path } from '@umbraco-cms/backoffice/router'; import type { ManifestHealthCheck } from '@umbraco-cms/backoffice/extension-registry'; -import { HealthCheckGroupWithResultResponseModel, StatusResultTypeModel } from '@umbraco-cms/backoffice/backend-api'; +import type { HealthCheckGroupWithResultResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { StatusResultTypeModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-health-check-group-box-overview') diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts index 0796d053fd..3e6007e11c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts @@ -1,17 +1,19 @@ -import { UmbHealthCheckContext } from '../health-check.context.js'; +import type { UmbHealthCheckContext } from '../health-check.context.js'; +import type { + UmbHealthCheckDashboardContext} from '../health-check-dashboard.context.js'; import { - UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT, } from '../health-check-dashboard.context.js'; -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, property, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { HealthCheckActionRequestModel, HealthCheckGroupPresentationModel, HealthCheckModel, + HealthCheckWithResultPresentationModel} from '@umbraco-cms/backoffice/backend-api'; +import { HealthCheckResource, - HealthCheckWithResultPresentationModel, StatusResultTypeModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts index 45254b1461..6962b144f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-overview.element.ts @@ -1,8 +1,9 @@ +import type { + UmbHealthCheckDashboardContext} from '../health-check-dashboard.context.js'; import { - UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT, } from '../health-check-dashboard.context.js'; -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts index 57e66e65c1..37f09bbcc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts @@ -1,4 +1,4 @@ -import { UmbDonutSliceElement } from './donut-slice.element.js'; +import type { UmbDonutSliceElement } from './donut-slice.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.stories.ts index 328aa86b92..546e0a51b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.stories.ts @@ -1,7 +1,7 @@ import './donut-slice.element.js'; import './donut-chart.element.js'; -import { Meta } from '@storybook/web-components'; +import type { Meta } from '@storybook/web-components'; import { html } from '@umbraco-cms/backoffice/external/lit'; export default { diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts index 4ffe1fd479..d560e1c616 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts @@ -1,6 +1,7 @@ -import { +import type { LogViewerDateRange, - UmbLogViewerWorkspaceContext, + UmbLogViewerWorkspaceContext} from '../workspace/logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT, } from '../workspace/logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts index 08623f6a80..503654227c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/log-viewer.repository.ts @@ -1,8 +1,9 @@ import { UmbLogMessagesServerDataSource, UmbLogSearchesServerDataSource } from './sources/log-viewer.server.data.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { DirectionModel, LogLevelModel, SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { DirectionModel, LogLevelModel, SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; // Move to documentation / JSdoc /* We need to create a new instance of the repository from within the element context. We want the notifications to be displayed in the right context. */ diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts index ee635d5f85..6e0abb9e50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts @@ -1,9 +1,10 @@ -import { LogMessagesDataSource, LogSearchDataSource } from './index.js'; -import { +import type { LogMessagesDataSource, LogSearchDataSource } from './index.js'; +import type { DirectionModel, LogLevelModel, - LogViewerResource, - SavedLogSearchResponseModel, + SavedLogSearchResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { + LogViewerResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts index 47fd13a7dc..47b1ec9914 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer.context.ts @@ -1,20 +1,22 @@ import { UmbLogViewerRepository } from '../repository/log-viewer.repository.js'; import { UmbBasicState, UmbArrayState, UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; -import { - DirectionModel, +import type { LogLevelCountsReponseModel, - LogLevelModel, PagedLoggerResponseModel, PagedLogMessageResponseModel, PagedLogTemplateResponseModel, PagedSavedLogSearchResponseModel, - SavedLogSearchPresenationBaseModel, + SavedLogSearchPresenationBaseModel} from '@umbraco-cms/backoffice/backend-api'; +import { + DirectionModel, + LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { query } from '@umbraco-cms/backoffice/router'; -import { UMB_WORKSPACE_CONTEXT, UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import type { UmbWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; export type PoolingInterval = 0 | 2000 | 5000 | 10000 | 20000 | 30000; export interface PoolingCOnfig { diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer/logviewer-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer/logviewer-workspace.element.ts index 0cec2b21d7..46f2342494 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer/logviewer-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer/logviewer-workspace.element.ts @@ -1,7 +1,8 @@ // TODO: Niels: I don't feel sure this is good, seems wrong: import '../../components/index.js'; import { UmbLogViewerWorkspaceContext } from '../logviewer.context.js'; -import { PropertyValueMap, css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts index 653db2e1f7..7f144b0298 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts @@ -1,7 +1,8 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { LoggerResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LoggerResponseModel } from '@umbraco-cms/backoffice/backend-api'; //TODO: implement the saved searches pagination when the API total bug is fixed @customElement('umb-log-viewer-log-level-overview') diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts index 237968569f..48734d0007 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts @@ -1,7 +1,8 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-log-viewer-log-types-chart') export class UmbLogViewerLogTypesChartElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts index 8de16dd426..143b67e796 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts @@ -1,8 +1,9 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PagedLogTemplateResponseModel, SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PagedLogTemplateResponseModel, SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; //TODO: fix pagination bug when API is fixed @customElement('umb-log-viewer-message-templates-overview') diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts index 8ed407f0fe..462b873317 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts @@ -1,8 +1,9 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; //TODO: implement the saved searches pagination when the API total bug is fixed @customElement('umb-log-viewer-saved-searches-overview') diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts index 244660252d..a1d9ede634 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/log-overview-view.element.ts @@ -1,6 +1,7 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../logviewer.context.js'; +import type { UmbLogViewerWorkspaceContext} from '../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../logviewer.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LogLevelCountsReponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; //TODO: add a disabled attribute to the show more button when the total number of items is correctly returned from the endpoint diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts index 01bd06512d..be4e236222 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts @@ -1,6 +1,6 @@ -import { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import { css, html, LitElement, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; interface LevelMapStyles { look?: InterfaceLook; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts index 63cfb9eac1..54038b7b6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts @@ -1,5 +1,6 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; -import { UUICheckboxElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UUICheckboxElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, queryAll, state } from '@umbraco-cms/backoffice/external/lit'; import { debounce } from '@umbraco-cms/backoffice/external/lodash'; import { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts index c1ed9dd636..4c62cb6933 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-message.element.ts @@ -1,15 +1,17 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { + PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; import { css, html, - PropertyValueMap, customElement, property, query, state, } from '@umbraco-cms/backoffice/external/lit'; -import { LogLevelModel, LogMessagePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LogLevelModel, LogMessagePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { query as getQuery, toQueryString } from '@umbraco-cms/backoffice/router'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts index 94a6302b7b..b39f4ecbdc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.ts @@ -1,8 +1,10 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; -import { UUIScrollContainerElement, UUIPaginationElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UUIScrollContainerElement, UUIPaginationElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DirectionModel, LogMessageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LogMessageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DirectionModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-log-viewer-messages-list') export class UmbLogViewerMessagesListElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts index 05966bb38a..f56f5874c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts @@ -1,12 +1,13 @@ -import { +import type { PoolingCOnfig, PoolingInterval, - UmbLogViewerWorkspaceContext, + UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT, } from '../../../logviewer.context.js'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbDropdownElement } from '@umbraco-cms/backoffice/components'; +import type { UmbDropdownElement } from '@umbraco-cms/backoffice/components'; @customElement('umb-log-viewer-polling-button') export class UmbLogViewerPollingButtonElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts index 2fb0101668..a23a629179 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts @@ -1,7 +1,7 @@ import { html, css, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-log-viewer-save-search-modal') export default class UmbLogViewerSaveSearchModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts index 4fb1bee70b..8250f6e4d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts @@ -1,20 +1,22 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; -import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbLogViewerWorkspaceContext} from '../../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer.context.js'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { Subject, debounceTime, tap } from '@umbraco-cms/backoffice/external/rxjs'; -import { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { query as getQuery, path, toQueryString } from '@umbraco-cms/backoffice/router'; +import type { + UmbModalManagerContext, + UmbModalContext} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, - UmbModalContext, UmbModalToken, UMB_CONFIRM_MODAL, } from '@umbraco-cms/backoffice/modal'; import './log-viewer-search-input-modal.element.js'; -import { UmbDropdownElement } from '@umbraco-cms/backoffice/components'; +import type { UmbDropdownElement } from '@umbraco-cms/backoffice/components'; export interface UmbContextSaveSearchModalData { query: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts index 91182ee457..54004484f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/log-search-view.element.ts @@ -1,4 +1,5 @@ -import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT } from '../../logviewer.context.js'; +import type { UmbLogViewerWorkspaceContext} from '../../logviewer.context.js'; +import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../logviewer.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.context.ts index 4165176fc9..360d11881a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/components/input-media-type/input-media-type.context.ts @@ -1,8 +1,8 @@ import { UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_MEDIA_TYPE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMediaTypePickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts index 9f6c65013c..69ce67fac7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/create.action.ts @@ -1,8 +1,9 @@ -import { UmbMediaTypeDetailRepository } from '../../repository/detail/media-type-detail.repository.js'; +import type { UmbMediaTypeDetailRepository } from '../../repository/detail/media-type-detail.repository.js'; import { UMB_MEDIA_TYPE_CREATE_OPTIONS_MODAL } from './modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateMediaTypeEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/manifests.ts index e1195739df..6b365e0901 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/manifests.ts @@ -5,7 +5,7 @@ import { } from '../../index.js'; import { UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbCreateMediaTypeEntityAction } from './create.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts index f172161f05..d4d0e13713 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/create/modal/media-type-create-options-modal.element.ts @@ -1,5 +1,5 @@ import { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from '../../../tree/index.js'; -import { UmbMediaTypeCreateOptionsModalData } from './index.js'; +import type { UmbMediaTypeCreateOptionsModalData } from './index.js'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts index 614536af72..c3f41f2781 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/manifests.ts @@ -1,6 +1,6 @@ import { UmbMediaTypeDetailRepository } from './media-type-detail.repository.js'; import { UmbMediaTypeDetailStore } from './media-type-detail.store.js'; -import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Detail'; export const UMB_MEDIA_TYPE_DETAIL_STORE_ALIAS = 'Umb.Store.MediaType.Detail'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts index 9075fcf675..e34caf2e5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.repository.ts @@ -1,7 +1,7 @@ -import { UmbMediaTypeDetailModel } from '../../types.js'; +import type { UmbMediaTypeDetailModel } from '../../types.js'; import { UmbMediaTypeServerDataSource } from './media-type-detail.server.data-source.js'; import { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbMediaTypeDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index 5d51160155..0c50795389 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -1,11 +1,12 @@ -import { UmbMediaTypeDetailModel } from '../../types.js'; +import type { UmbMediaTypeDetailModel } from '../../types.js'; import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; -import { +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { CreateMediaTypeRequestModel, - MediaTypeResource, - UpdateMediaTypeRequestModel, + UpdateMediaTypeRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts index df507bcdbe..ef41036d22 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.store.ts @@ -1,7 +1,7 @@ -import { UmbMediaTypeDetailModel } from '../../types.js'; +import type { UmbMediaTypeDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts index f267e9e3db..3061bd7ff8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/manifests.ts @@ -1,6 +1,6 @@ import { UmbMediaTypeItemRepository } from './media-type-item.repository.js'; import { UmbMediaTypeItemStore } from './media-type-item.store.js'; -import { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Item'; export const UMB_MEDIA_TYPE_ITEM_STORE_ALIAS = 'Umb.Store.MediaType.Item'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts index 8eec8ef031..44ce2b78a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.repository.ts @@ -1,7 +1,7 @@ -import { UmbMediaTypeItemModel } from './types.js'; +import type { UmbMediaTypeItemModel } from './types.js'; import { UmbMediaTypeItemServerDataSource } from './media-type-item.server.data-source.js'; import { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT } from './media-type-item.store.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbMediaTypeItemRepository extends UmbItemRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts index 0f466a14ab..0fc150df29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts @@ -1,5 +1,6 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import { MediaTypeItemResponseModel, MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaTypeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts index 34ffd86057..b94ff5957f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts @@ -1,6 +1,6 @@ -import { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/types.ts index 30a844af5a..feaa8401a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/types.ts @@ -1,3 +1,3 @@ -import { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbMediaTypeItemModel = MediaTypeItemResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/utils.ts index c7eb49bad9..7d647d7139 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/utils.ts @@ -1,4 +1,4 @@ -import { CreateFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateFolderRequestModel } from '@umbraco-cms/backoffice/backend-api'; export const createFolderTreeItem = (item: CreateFolderRequestModel) => { if (!item) throw new Error('item is null or undefined'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts index d04d867cd9..089ffa86e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.repository.ts @@ -1,9 +1,10 @@ import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from '../index.js'; import { UmbMediaTypeFolderServerDataSource } from './media-type-folder.server.data-source.js'; -import { UmbMediaTypeFolderTreeItemModel } from './types.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbMediaTypeFolderTreeItemModel } from './types.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; export class UmbMediaTypeFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts index 0dd05854d0..834d08b9b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/media-type-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts index 2bb3db97a8..6760842e26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/folder/types.ts @@ -1,5 +1,5 @@ -import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbMediaTypeTreeItemModel } from '../types.js'; +import type { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import type { UmbMediaTypeTreeItemModel } from '../types.js'; export interface UmbMediaTypeFolderTreeItemModel extends UmbMediaTypeTreeItemModel { entityType: typeof UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts index a287edb595..737c372fe2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMediaTypeTreeServerDataSource } from './media-type-tree.server.data-source.js'; import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.js'; -import { UmbMediaTypeTreeItemModel, UmbMediaTypeTreeRootModel } from './types.js'; +import type { UmbMediaTypeTreeItemModel, UmbMediaTypeTreeRootModel } from './types.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbMediaTypeTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts index 4b9c1824ef..0fb4b7b804 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts @@ -1,6 +1,7 @@ import { UMB_MEDIA_TYPE_ENTITY_TYPE, UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbMediaTypeTreeItemModel } from './types.js'; -import { MediaTypeResource, MediaTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbMediaTypeTreeItemModel } from './types.js'; +import type { MediaTypeTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts index 0c7a3e3b40..faabb3e6fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts @@ -1,8 +1,8 @@ -import { UmbMediaTypeDetailModel } from '../types.js'; +import type { UmbMediaTypeDetailModel } from '../types.js'; import { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from '../repository/index.js'; -import { UmbMediaTypeTreeItemModel } from './types.js'; +import type { UmbMediaTypeTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts index f19335e0cd..83e715ea89 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/types.ts @@ -1,5 +1,5 @@ -import { UmbMediaTypeEntityType, UmbMediaTypeFolderEntityType, UmbMediaTypeRootEntityType } from '../entity.js'; -import { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbMediaTypeEntityType, UmbMediaTypeFolderEntityType, UmbMediaTypeRootEntityType } from '../entity.js'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbMediaTypeTreeItemModel extends UmbUniqueTreeItemModel { entityType: UmbMediaTypeEntityType | UmbMediaTypeFolderEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts index 17615edc28..828514db06 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/types.ts @@ -1,5 +1,5 @@ -import { UmbMediaTypeEntityType } from './entity.js'; -import { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbMediaTypeEntityType } from './entity.js'; +import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; export interface UmbMediaTypeDetailModel extends UmbContentTypeModel { entityType: UmbMediaTypeEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts index 211af780d7..6691c7270f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace-editor.element.ts @@ -1,11 +1,13 @@ -import { UmbMediaTypeWorkspaceContext } from './media-type-workspace.context.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbMediaTypeWorkspaceContext } from './media-type-workspace.context.js'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_ICON_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, + UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index 60cf748d78..592d7d5efc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -1,12 +1,13 @@ import { UmbMediaTypeDetailRepository } from '../repository/detail/media-type-detail.repository.js'; import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../index.js'; -import { UmbMediaTypeDetailModel } from '../types.js'; +import type { UmbMediaTypeDetailModel } from '../types.js'; +import type { + UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index c5d1e1f216..4282822402 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -1,12 +1,14 @@ -import { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; +import type { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; import './media-type-workspace-view-edit-property.element.js'; -import { UmbMediaTypeDetailModel } from '../../../types.js'; +import type { UmbMediaTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbContentTypePropertyStructureHelper, PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; -import { UmbSorterController, UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; +import type { PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; +import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { MediaTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index c375d6c6b8..cd88dc2b49 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -1,13 +1,15 @@ import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + UmbConfirmModalData} from '@umbraco-cms/backoffice/modal'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UMB_PROPERTY_SETTINGS_MODAL, UMB_WORKSPACE_MODAL, - UmbConfirmModalData, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts index d483bdf2a6..bbef256383 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts @@ -1,12 +1,13 @@ -import { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; -import { UmbMediaTypeDetailModel } from '../../../types.js'; +import type { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; +import type { UmbMediaTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import './media-type-workspace-view-edit-properties.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts index 97c49edb4c..a920094e78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts @@ -1,21 +1,23 @@ -import { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; -import { UmbMediaTypeDetailModel } from '../../../types.js'; +import type { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; +import type { UmbMediaTypeDetailModel } from '../../../types.js'; import type { UmbMediaTypeWorkspaceViewEditTabElement } from './media-type-workspace-view-edit-tab.element.js'; import { css, html, customElement, state, repeat, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; -import { encodeFolderName, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { MediaTypePropertyTypeContainerResponseModel, PropertyTypeContainerModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbRoute , UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; +import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG: UmbSorterConfig = { compareElementToModel: (element: HTMLElement, model: MediaTypePropertyTypeContainerResponseModel) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts index 63aa48f2e5..235ba18173 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts @@ -1,11 +1,11 @@ -import { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; +import type { UmbMediaTypeWorkspaceContext } from '../../media-type-workspace.context.js'; import type { UmbInputMediaTypeElement } from '../../../components/input-media-type/input-media-type.element.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-media-type-workspace-view-structure') export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts index 23f34ec68e..15d6e8e15f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-grid-collection-view.element.ts @@ -1,8 +1,9 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { UmbDefaultCollectionContext, UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; +import type { UmbDefaultCollectionContext} from '@umbraco-cms/backoffice/collection'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; @customElement('umb-media-grid-collection-view') export class UmbMediaGridCollectionViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts index 5d77c42a5a..9b60943705 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/collection-view/media-table-collection-view.element.ts @@ -10,7 +10,8 @@ import type { UmbTableOrderedEvent, UmbTableSelectedEvent, } from '@umbraco-cms/backoffice/components'; -import { UmbDefaultCollectionContext, UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; +import type { UmbDefaultCollectionContext} from '@umbraco-cms/backoffice/collection'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-media-table-collection-view') diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts index a2d30b73fb..5672498455 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts @@ -1,8 +1,9 @@ -import { UmbImageCropperFocalPoint } from './index.js'; +import type { UmbImageCropperFocalPoint } from './index.js'; import { clamp } from '@umbraco-cms/backoffice/utils'; +import type { + PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; import { LitElement, - PropertyValueMap, css, html, nothing, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts index f8a1d89946..089620dfd0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts @@ -1,12 +1,13 @@ -import { UmbImageCropperCrop, UmbImageCropperFocalPoint } from './index.js'; +import type { UmbImageCropperCrop, UmbImageCropperFocalPoint } from './index.js'; import { calculateExtrapolatedValue, clamp, inverseLerp, lerp } from '@umbraco-cms/backoffice/utils'; +import type { + PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; import { customElement, property, query, state, LitElement, - PropertyValueMap, css, html, } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts index 9a93d83a37..320706afcd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/input-image-cropper.element.ts @@ -3,7 +3,7 @@ import './image-cropper.element.js'; import './image-cropper-focus-setter.element.js'; import './image-cropper-preview.element.js'; import type { UmbImageCropperElement } from './image-cropper.element.js'; -import { +import type { UmbImageCropperCrop, UmbImageCropperCrops, UmbImageCropperFocalPoint, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts index 32fa9e4857..6099956b5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts @@ -1,7 +1,7 @@ import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_MEDIA_TREE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMediaPickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.stories.ts index 821dc7c993..0667b54a28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-media.element.js'; import type { UmbInputMediaElement } from './input-media.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts index 8394a9c7e4..f7cd5f5ec7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts @@ -1,6 +1,6 @@ import type { UmbMediaRepository } from '../../repository/media.repository.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbMediaCopyEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts index ccec3c0d78..460005a0e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts @@ -3,7 +3,7 @@ import { UMB_MEDIA_COLLECTION_ALIAS } from '../collection/index.js'; import { UmbMediaMoveEntityBulkAction } from './move/move.action.js'; import { UmbMediaCopyEntityBulkAction } from './copy/copy.action.js'; import { UmbMediaTrashEntityBulkAction } from './trash/trash.action.js'; -import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; const entityActions: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts index 926e41d7e2..b3493213e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts @@ -1,9 +1,10 @@ import type { UmbMediaRepository } from '../../repository/media.repository.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_MEDIA_TREE_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts index 0f342d74f4..fa8c892847 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/trash/trash.action.ts @@ -1,9 +1,10 @@ import type { UmbMediaRepository } from '../../repository/media.repository.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts index 0254ebdcdb..bae1f868dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts @@ -1,4 +1,4 @@ -import { ContentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { ContentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export * from './components/index.js'; export * from './repository/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts index b70d30f8e6..c76cd11fd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import '../../components/input-image-cropper/input-image-cropper.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.stories.ts index 38824bc373..cc6a9d0148 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-cropper/property-editor-ui-image-cropper.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIImageCropperElement } from './property-editor-ui-image-cropper.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts index 9bcc8f503d..a0fc22c28d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property, css, repeat, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; export type UmbCrop = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts index dc39cb14b1..4c338e15f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/image-crops-configuration/property-editor-ui-image-crops-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIImageCropsConfigurationElement } from './property-editor-ui-image-crops-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.stories.ts index 050381f9e8..e22546422d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-picker/property-editor-ui-media-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIMediaPickerElement } from './property-editor-ui-media-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts index 91e7ee347f..5f1d36dc0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts @@ -1,7 +1,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; -import { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts index e5adb47981..76862033c2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts @@ -1,13 +1,16 @@ import { UMB_MEDIA_TREE_STORE_CONTEXT, type UmbMediaTreeStore } from '../tree/index.js'; -import { UMB_MEDIA_STORE_CONTEXT, UmbMediaStore } from './media.store.js'; +import type { UmbMediaStore } from './media.store.js'; +import { UMB_MEDIA_STORE_CONTEXT } from './media.store.js'; import { UmbMediaDetailServerDataSource } from './sources/media-detail.server.data-source.js'; import { UmbMediaItemServerDataSource } from './sources/media-item.server.data-source.js'; -import { UMB_MEDIA_ITEM_STORE_CONTEXT, UmbMediaItemStore } from './media-item.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbMediaItemStore } from './media-item.store.js'; +import { UMB_MEDIA_ITEM_STORE_CONTEXT } from './media-item.store.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbMediaRepository extends UmbBaseController implements UmbApi { #init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts index 4d0cdb7a55..87f634ed49 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts @@ -2,7 +2,7 @@ import type { UmbMediaDetailModel } from '../index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts index 636c45121e..7f4fd828c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts @@ -1,6 +1,6 @@ import type { UmbMediaDetailModel } from '../../index.js'; import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; -import { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts index c270dcff41..f635ef0033 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts @@ -1,5 +1,6 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import { MediaResource, MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { MediaResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts index 45dfa54da6..29d534bf1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_MEDIA_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMediaTreeServerDataSource } from './media-tree.server.data-source.js'; -import { UmbMediaTreeItemModel, UmbMediaTreeRootModel } from './types.js'; +import type { UmbMediaTreeItemModel, UmbMediaTreeRootModel } from './types.js'; import { UMB_MEDIA_TREE_STORE_CONTEXT } from './media-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbMediaTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts index 8c06c8005c..adb3d58556 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index 27fe963dcf..92663a2ff7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -1,13 +1,14 @@ import { UmbMediaRepository } from '../repository/media.repository.js'; import type { UmbMediaDetailModel } from '../index.js'; +import type { + UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import { appendToFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; type EntityType = UmbMediaDetailModel; export class UmbMediaWorkspaceContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts index a05a4e39fa..76bdc799e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.element.ts @@ -1,4 +1,4 @@ -import { type UmbMediaWorkspaceContext } from './media-workspace.context.js'; +import type { UmbMediaWorkspaceContext } from './media-workspace.context.js'; import { UmbMediaWorkspaceEditorElement } from './media-workspace-editor.element.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts index 98f50cfa1c..ab3e2d7050 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts @@ -1,5 +1,5 @@ import './media-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { data as mediaNodes } from '../../../../mocks/data/media.data.js'; import type { UmbMediaWorkspaceElement } from './media-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts index 633d576f99..71b3730d6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.element.ts @@ -1,7 +1,7 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-media-edit-workspace-view') export class UmbMediaEditWorkspaceViewElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts index eca04dbf6b..ea42ea62ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/edit/media-edit-workspace-view.stories.ts @@ -1,6 +1,6 @@ import './media-edit-workspace-view.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbMediaEditWorkspaceViewElement } from './media-edit-workspace-view.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts index ca49ae19db..06fdb068fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.element.ts @@ -1,7 +1,7 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-media-info-workspace-view') export class UmbMediaInfoWorkspaceViewElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts index f941f660d3..0c972a1b85 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/views/info/media-info-workspace-view.stories.ts @@ -1,6 +1,6 @@ import './media-info-workspace-view.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbMediaInfoWorkspaceViewElement } from './media-info-workspace-view.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts index 8f4edfcd16..cdefc905ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/menu.manifests.ts @@ -1,4 +1,4 @@ -import { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; const menu: ManifestMenu = { type: 'menu', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts index e3e674a63b..8bf1f9c126 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/dashboards/welcome/dashboard-members-welcome.stories.ts @@ -1,6 +1,6 @@ import './dashboard-members-welcome.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardMembersWelcomeElement } from './dashboard-members-welcome.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.repository.ts index f9bb8cc4d9..6d9306d9dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.repository.ts @@ -1,4 +1,4 @@ -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbMemberGroupDetailRepository extends UmbRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.store.ts index 9e2f994141..8fc3817755 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/detail/member-group-detail.store.ts @@ -1,7 +1,7 @@ import type { UmbMemberGroupDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts index e79a9d6a68..4308b6e75d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_MEMBER_GROUP_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMemberGroupTreeServerDataSource } from './member-group-tree.server.data-source.js'; -import { UmbMemberGroupTreeItemModel, UmbMemberGroupTreeRootModel } from './types.js'; +import type { UmbMemberGroupTreeItemModel, UmbMemberGroupTreeRootModel } from './types.js'; import { UMB_MEMBER_GROUP_TREE_STORE_CONTEXT } from './member-group-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbMemberGroupTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts index 6ba7a5c6a2..2fd8663d41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts @@ -1,6 +1,7 @@ -import { UmbMemberGroupTreeItemModel } from './types.js'; +import type { UmbMemberGroupTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { EntityTreeItemResponseModel, MemberGroupResource } from '@umbraco-cms/backoffice/backend-api'; +import type { EntityTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { MemberGroupResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.store.ts index 1bb09263ba..9376f8a775 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/types.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/types.ts index 6e3be81788..82fd159f48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/types.ts @@ -1,4 +1,4 @@ -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export interface UmbMemberGroupDetailModel extends UmbEntityTreeItemModel { id: string; // TODO: Remove this when the backend is fixed diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts index 39f4ac530a..1f81f13f87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.stories.ts @@ -1,6 +1,6 @@ import './member-group-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { data } from '../../../../mocks/data/member.data.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.context.ts index e2dbb59411..82875b0c7f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/components/input-member-type/input-member-type.context.ts @@ -1,8 +1,8 @@ import { UMB_MEMBER_TYPE_PICKER_MODAL } from '../../../../core/modal/token/member-type-picker-modal.token.js'; import { UMB_MEMBER_TYPE_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { MemberTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { MemberTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMemberTypePickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts index 8e2d90ee1f..ca8f4c1453 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.repository.ts @@ -1,10 +1,13 @@ import type { MemberTypeDetails } from '../types.js'; -import { UmbMemberTypeTreeStore, UMB_MEMBER_TYPE_TREE_STORE_CONTEXT } from '../tree/index.js'; -import { UmbMemberTypeStore, UMB_MEMBER_TYPE_STORE_CONTEXT } from './member-type.store.js'; +import type { UmbMemberTypeTreeStore} from '../tree/index.js'; +import { UMB_MEMBER_TYPE_TREE_STORE_CONTEXT } from '../tree/index.js'; +import type { UmbMemberTypeStore} from './member-type.store.js'; +import { UMB_MEMBER_TYPE_STORE_CONTEXT } from './member-type.store.js'; import { UmbMemberTypeDetailServerDataSource } from './sources/member-type.detail.server.data.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; export class UmbMemberTypeRepository extends UmbBaseController { #init!: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts index 75f49a674b..cbc2cdb1cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts @@ -1,7 +1,7 @@ import type { MemberTypeDetails } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts index 4f11f402d6..71bcddb6e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/sources/member-type.detail.server.data.ts @@ -1,7 +1,7 @@ import type { MemberTypeDetails } from '../../types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; /** * @description - A data source for the MemberType detail that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts index 66362901e2..a630ebdd9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMemberTypeTreeServerDataSource } from './member-type-tree.server.data-source.js'; -import { UmbMemberTypeTreeItemModel, UmbMemberTypeTreeRootModel } from './types.js'; +import type { UmbMemberTypeTreeItemModel, UmbMemberTypeTreeRootModel } from './types.js'; import { UMB_MEMBER_TYPE_TREE_STORE_CONTEXT } from './member-type-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbMemberTypeTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts index 791b6212a4..81bde60878 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts @@ -1,6 +1,7 @@ -import { UmbMemberTypeTreeItemModel } from './types.js'; +import type { UmbMemberTypeTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { EntityTreeItemResponseModel, MemberTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { EntityTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { MemberTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.store.ts index 59cb96576b..fcc26adf03 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/types.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/types.ts index be136a1c48..77c7290013 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/types.ts @@ -1,4 +1,4 @@ -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export interface MemberTypeDetails extends UmbEntityTreeItemModel { id: string; // TODO: Remove this when the backend is fixed diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts index 97fc91b9e0..9c525fad2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.element.ts @@ -2,7 +2,7 @@ import { UmbMemberTypeWorkspaceEditorElement } from './member-type-workspace-edi import { UmbMemberTypeWorkspaceContext } from './member-type-workspace.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbRoute } from '@umbraco-cms/backoffice/router'; +import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-member-type-workspace') diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.stories.ts index 7bca7fc5db..ccdc261bf7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-member.element.js'; import type { UmbInputMemberElement } from './input-member.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.repository.ts index 0ccdd38aaa..393c518c26 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.repository.ts @@ -1,4 +1,4 @@ -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbMemberDetailRepository extends UmbRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.store.ts index 3bea5a8962..106dcb5914 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/repository/detail/member-detail.store.ts @@ -1,7 +1,7 @@ import type { UmbMemberDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts index e8b56d33c8..bd82e58686 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_MEMBER_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMemberTreeServerDataSource } from './member-tree.server.data-source.js'; -import { UmbMemberTreeItemModel, UmbMemberTreeRootModel } from './types.js'; +import type { UmbMemberTreeItemModel, UmbMemberTreeRootModel } from './types.js'; import { UMB_MEMBER_TREE_STORE_CONTEXT } from './member-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbMemberTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts index 9aa43b3da3..65bf625a5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts @@ -1,5 +1,5 @@ -import { UmbMemberTreeItemModel } from './types.js'; -import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbMemberTreeItemModel } from './types.js'; +import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.store.ts index 2634d20b4e..12e88b03a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/types.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/types.ts index e02eed9eba..63ff037b2a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/types.ts @@ -1,4 +1,4 @@ -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export interface UmbMemberDetailModel extends UmbEntityTreeItemModel { id: string; // TODO: Remove this when the backend is fixed diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts index 8aa6cf082f..0acf882353 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.context.ts @@ -6,7 +6,7 @@ import { type UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export class UmbMemberWorkspaceContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts index 1c247360a1..20b04dda5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/workspace/member-workspace.stories.ts @@ -1,6 +1,6 @@ import './member-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { data } from '../../../../mocks/data/member.data.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/menu.manifests.ts index ec49273360..a26da9c1ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/menu.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/menu.manifests.ts @@ -1,4 +1,4 @@ -import { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MEMBER_MENU_ALIAS = 'Umb.Menu.Member'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts index 0a51223015..a084553220 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts @@ -1,7 +1,7 @@ import type { UmbInputDocumentElement } from '../../../documents/documents/components/input-document/input-document.element.js'; import type { UmbInputMediaElement } from '../../../media/media/components/input-media/input-media.element.js'; import type { UmbInputLanguagePickerElement } from '../../../settings/languages/components/input-language-picker/input-language-picker.element.js'; -import { UUIBooleanInputEvent, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, @@ -14,9 +14,11 @@ import { } from '@umbraco-cms/backoffice/external/lit'; // TODO: update to module imports when ready import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { PackageDefinitionResponseModel, PackageResource } from '@umbraco-cms/backoffice/backend-api'; +import type { PackageDefinitionResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { PackageResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-workspace-package-builder') diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts index 8704957eaf..502bd8285a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts @@ -1,8 +1,9 @@ import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import { +import type { ManifestWorkspace, - UmbSectionViewElement, + UmbSectionViewElement} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry, } from '@umbraco-cms/backoffice/extension-registry'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts index bb7a0261c8..37095b16e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/packages-created-overview.element.ts @@ -1,9 +1,11 @@ import { html, css, nothing, ifDefined, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; -import { PackageDefinitionResponseModel, PackageResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { PackageDefinitionResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { PackageResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; @customElement('umb-packages-created-overview') export class UmbPackagesCreatedOverviewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index 283b3ee72d..fc0859b2e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -1,13 +1,16 @@ import { html, css, nothing, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; -import { ManifestPackageView, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPackageView} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { PackageResource } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; @customElement('umb-installed-packages-section-view-item') export class UmbInstalledPackagesSectionViewItemElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts index 9e5ff435fd..a4c8ec204c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view.element.ts @@ -4,7 +4,7 @@ import { html, css, customElement, state, repeat } from '@umbraco-cms/backoffice import { combineLatest } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbSectionViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbSectionViewElement } from '@umbraco-cms/backoffice/extension-registry'; import './installed-packages-section-view-item.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts index 7ccd2dc9d0..8e62ee91b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/market-place/packages-market-place-section-view.element.ts @@ -1,6 +1,6 @@ import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbSectionViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbSectionViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-packages-market-place-section-view') export class UmbPackagesMarketPlaceSectionViewElement extends UmbLitElement implements UmbSectionViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts index 8d0a265c6c..bfd4a68302 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.repository.ts @@ -1,8 +1,10 @@ -import { UmbPackageStore, UMB_PACKAGE_STORE_TOKEN } from './package.store.js'; +import type { UmbPackageStore} from './package.store.js'; +import { UMB_PACKAGE_STORE_TOKEN } from './package.store.js'; import { UmbPackageServerDataSource } from './sources/package.server.data.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbApi, ManifestBase, isManifestBaseType } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi, ManifestBase} from '@umbraco-cms/backoffice/extension-api'; +import { isManifestBaseType } from '@umbraco-cms/backoffice/extension-api'; import { OpenAPI } from '@umbraco-cms/backoffice/backend-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts index 3b6a382bf6..a485cf71f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/package.store.ts @@ -1,7 +1,7 @@ import type { UmbPackage } from '../../types.js'; import { ReplaySubject } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import type { PackageMigrationStatusResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/server-extension.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/server-extension.controller.ts index 615c2b87c8..2ab203436b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/server-extension.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/server-extension.controller.ts @@ -1,7 +1,7 @@ import { UmbPackageRepository } from './package.repository.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; export class UmbExtensionInitializer extends UmbBaseController { #extensionRegistry: UmbBackofficeExtensionRegistry; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts index 7fc91fa1ee..19a9dce4fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts @@ -1,4 +1,4 @@ -import { PackageManifestResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PackageManifestResponseModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbPackage = PackageManifestResponseModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts index 8a03974269..21e64a478b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/create.action.ts @@ -1,6 +1,6 @@ -import { UmbRelationTypeRepository } from '../repository/relation-type.repository.js'; +import type { UmbRelationTypeRepository } from '../repository/relation-type.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCreateRelationTypeEntityAction extends UmbEntityActionBase { // TODO: Could EntityActions take the manifest instead, for more flexibility? diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/manifests.ts index 4dd71b899c..eef265b708 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity-actions/manifests.ts @@ -2,7 +2,7 @@ import { UMB_RELATION_TYPE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UMB_RELATION_TYPE_ENTITY_TYPE, UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../index.js'; import { UmbCreateRelationTypeEntityAction } from './create.action.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts index 0af82d025b..022eacf9c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/manifests.ts @@ -1,6 +1,6 @@ import { UmbRelationTypeRepository } from './relation-type.repository.js'; import { UmbRelationTypeStore } from './relation-type.store.js'; -import { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RELATION_TYPE_REPOSITORY_ALIAS = 'Umb.Repository.RelationType'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts index 9f6d5ff308..d2eeca5a2f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.repository.ts @@ -1,11 +1,14 @@ -import { UmbRelationTypeTreeStore, UMB_RELATION_TYPE_TREE_STORE_CONTEXT } from '../tree/index.js'; +import type { UmbRelationTypeTreeStore} from '../tree/index.js'; +import { UMB_RELATION_TYPE_TREE_STORE_CONTEXT } from '../tree/index.js'; import { UmbRelationTypeServerDataSource } from './sources/relation-type.server.data.js'; -import { UmbRelationTypeStore, UMB_RELATION_TYPE_STORE_CONTEXT } from './relation-type.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbRelationTypeStore} from './relation-type.store.js'; +import { UMB_RELATION_TYPE_STORE_CONTEXT } from './relation-type.store.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { CreateRelationTypeRequestModel, UpdateRelationTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { CreateRelationTypeRequestModel, UpdateRelationTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbRelationTypeRepository extends UmbBaseController implements UmbApi { #init!: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts index 8547d10d1e..c73cd30795 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/relation-type.store.ts @@ -2,7 +2,7 @@ import type { RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend- import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export const UMB_RELATION_TYPE_STORE_CONTEXT = new UmbContextToken('UmbRelationTypeStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts index 2e91fb1006..65d9ea2aab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/repository/sources/relation-type.server.data.ts @@ -1,9 +1,10 @@ import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; -import { - RelationTypeResource, +import type { RelationTypeResponseModel, CreateRelationTypeRequestModel, - UpdateRelationTypeRequestModel, + UpdateRelationTypeRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + RelationTypeResource, RelationResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts index a78f67e151..1fc833fa55 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../entities.js'; import { UmbRelationTypeTreeServerDataSource } from './relation-type-tree.server.data-source.js'; -import { UmbRelationTypeTreeItemModel, UmbRelationTypeTreeRootModel } from './types.js'; +import type { UmbRelationTypeTreeItemModel, UmbRelationTypeTreeRootModel } from './types.js'; import { UMB_RELATION_TYPE_TREE_STORE_CONTEXT } from './relation-type-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbRelationTypeTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts index 0d70e7bcdc..e631086f63 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts @@ -1,5 +1,6 @@ -import { UmbRelationTypeTreeItemModel } from './types.js'; -import { EntityTreeItemResponseModel, RelationTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbRelationTypeTreeItemModel } from './types.js'; +import type { EntityTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { RelationTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts index dc773dc75a..84d41aa20f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace-editor.element.ts index 87d69331c6..0cf3af40ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace-editor.element.ts @@ -1,8 +1,9 @@ import { UMB_RELATION_TYPE_WORKSPACE_CONTEXT } from './relation-type-workspace.context.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @element umb-relation-type-workspace-editor * @description - Element for displaying a Relation Type Workspace diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.stories.ts index 401fd251ed..5154fa4647 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type-workspace.stories.ts @@ -1,6 +1,6 @@ import './relation-type-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import { data } from '../../../../mocks/data/relations/relation-type.data.js'; import type { UmbRelationTypeWorkspaceElement } from './relation-type-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts index 070f8a4157..77c84fe1ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.ts @@ -1,5 +1,5 @@ import { UMB_RELATION_TYPE_WORKSPACE_CONTEXT } from '../../relation-type-workspace.context.js'; -import { +import type { UUIBooleanInputEvent, UUIRadioGroupElement, UUIRadioGroupEvent, @@ -9,7 +9,7 @@ import { import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-relation-type-workspace-view-relation-type') export class UmbRelationTypeWorkspaceViewRelationTypeElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts index f979f463f7..21106ae32e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbRelationTypeWorkspaceViewRelationTypeElement } from './relation-type-workspace-view-relation-type.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts index 5c57f3cf40..63f15997c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.ts @@ -1,10 +1,10 @@ import { UMB_RELATION_TYPE_WORKSPACE_CONTEXT } from '../../relation-type-workspace.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; +import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { RelationResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { RelationResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-workspace-view-relation-type-relation') export class UmbWorkspaceViewRelationTypeRelationElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts index d40d136808..cae6902234 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/views/relation/workspace-view-relation-type-relation.stories.ts @@ -1,6 +1,6 @@ import './workspace-view-relation-type-relation.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbWorkspaceViewRelationTypeRelationElement } from './workspace-view-relation-type-relation.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts index 0a8b0eacbb..4e22ef6f76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/manifests.ts @@ -1,5 +1,5 @@ import { UmbRelationRepository } from './relation.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RELATION_REPOSITORY_ALIAS = 'Umb.Repository.Relation'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts index 0c996a3b39..a77c3581d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/repository/relation.repository.ts @@ -1,8 +1,9 @@ import { UmbRelationServerDataSource } from './sources/relation.server.data.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbRelationRepository extends UmbBaseController implements UmbApi { #init!: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts index 446366045f..23a09d3751 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.element.ts @@ -1,5 +1,5 @@ -import { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers.js'; -import { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers.js'; +import type { UmbDashboardExamineIndexElement } from './views/section-view-examine-indexers.js'; +import type { UmbDashboardExamineSearcherElement } from './views/section-view-examine-searchers.js'; import { html, css, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts index 2ce9c7490a..15cd3931df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/dashboard-examine-management.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; //import type { UmbDashboardExamineManagementElement } from './dashboard-examine-management.element.js'; import './dashboard-examine-management.element.js'; import type { UmbDashboardExamineOverviewElement } from './views/section-view-examine-overview.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings-modal.element.ts index 9259f65c76..0e9570875d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/modal-views/fields-settings-modal.element.ts @@ -1,8 +1,9 @@ import { html, css, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { UmbExamineFieldsSettingsModalValue, - UmbExamineFieldsSettingsModalData, + UmbExamineFieldsSettingsModalData} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts index 0a04601e61..8f65775ed5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts @@ -1,7 +1,9 @@ -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; -import { HealthStatusModel, IndexResponseModel, IndexerResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { IndexResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { HealthStatusModel, IndexerResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts index 38ea3ca2e8..8d9842353a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-overview.ts @@ -1,11 +1,12 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { + IndexResponseModel, + SearcherResponseModel} from '@umbraco-cms/backoffice/backend-api'; import { HealthStatusModel, - IndexResponseModel, IndexerResource, - SearcherResponseModel, SearcherResource, } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts index 1bda89c9df..cf8d5c8486 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts @@ -1,14 +1,16 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, query, property } from '@umbraco-cms/backoffice/external/lit'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_EXAMINE_FIELDS_SETTINGS_MODAL, } from '@umbraco-cms/backoffice/modal'; -import { +import type { SearchResultResponseModel, - SearcherResource, - FieldPresentationModel, + FieldPresentationModel} from '@umbraco-cms/backoffice/backend-api'; +import { + SearcherResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts index 88e1749e8b..4feff032c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/umb-search-header-app.element.ts @@ -1,6 +1,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, customElement } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-search-header-app') diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts index b448af70af..0fa63428a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.element.ts @@ -1,8 +1,9 @@ -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { + ModelsBuilderResponseModel} from '@umbraco-cms/backoffice/backend-api'; import { - ModelsBuilderResponseModel, ModelsBuilderResource, ModelsModeModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts index 3c75559663..5a03eda267 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/models-builder/dashboard-models-builder.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardModelsBuilderElement } from './dashboard-models-builder.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts index 0d3ac97708..f1a486e3fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardPerformanceProfilingElement } from './dashboard-performance-profiling.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts index b7b5183944..64e604f4ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.element.ts @@ -1,6 +1,7 @@ -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { PublishedCacheResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts index 98e72d5b27..10bc6a885b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/published-status/dashboard-published-status.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardPublishedStatusElement } from './dashboard-published-status.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts index c555c14b78..db7b35f266 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardSettingsWelcomeElement } from './dashboard-settings-welcome.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts index 667a5553cc..1264a2d6db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.element.ts @@ -1,7 +1,8 @@ import { css, html, customElement, state, unsafeHTML } from '@umbraco-cms/backoffice/external/lit'; -import { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; +import type { + TelemetryResponseModel} from '@umbraco-cms/backoffice/backend-api'; import { - TelemetryResponseModel, TelemetryLevelModel, TelemetryResource, ApiError, diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts index 2a8a380fb4..2fb59bb552 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/telemetry/dashboard-telemetry.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbDashboardTelemetryElement } from './dashboard-telemetry.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts index 01ebdfe19a..c053f8596a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.element.ts @@ -1,8 +1,10 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; @customElement('umb-extension-root-workspace') export class UmbExtensionRootWorkspaceElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts index 2497ed6cf8..bf6e1d4c8c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/extensions/workspace/extension-root-workspace.stories.ts @@ -1,6 +1,6 @@ import './extension-root-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbExtensionRootWorkspaceElement } from './extension-root-workspace.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts index a7e3cfadf3..7a299895af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language-select.element.ts @@ -1,9 +1,10 @@ import { UmbLanguageRepository } from '../repository/language.repository.js'; -import { UMB_APP_LANGUAGE_CONTEXT, UmbAppLanguageContext } from './app-language.context.js'; -import { UUIMenuItemEvent, UUIPopoverContainerElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbAppLanguageContext } from './app-language.context.js'; +import { UMB_APP_LANGUAGE_CONTEXT } from './app-language.context.js'; +import type { UUIMenuItemEvent, UUIPopoverContainerElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, repeat, ifDefined, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-app-language-select') export class UmbAppLanguageSelectElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts index c5fbe94e8f..f19b3cafec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/app-language.context.ts @@ -1,10 +1,10 @@ import { UmbLanguageRepository } from '../repository/language.repository.js'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbAppLanguageContext extends UmbBaseController implements UmbApi { #languageRepository: UmbLanguageRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts index 0b8ec9fa4d..88679ed68d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/app-language-select/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts index 986313829b..74eda92b20 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/components/input-language-picker/input-language-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-language-picker.element.js'; import type { UmbInputLanguagePickerElement } from './input-language-picker.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts index aae26d3732..b63433df60 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/language-create-entity-action.ts @@ -1,6 +1,6 @@ -import { UmbLanguageRepository } from '../repository/language.repository.js'; +import type { UmbLanguageRepository } from '../repository/language.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbLanguageCreateEntityAction extends UmbEntityActionBase { // TODO: Could EntityActions take the manifest instead, for more flexibility? diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts index 6bbae33930..3ec129431a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/entity-actions/manifests.ts @@ -2,7 +2,7 @@ import { UMB_LANGUAGE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UMB_LANGUAGE_ENTITY_TYPE, UMB_LANGUAGE_ROOT_ENTITY_TYPE } from '../index.js'; import { UmbLanguageCreateEntityAction } from './language-create-entity-action.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts index 72dc6590c8..ca49671c5c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/modals/language-picker/language-picker-modal.element.ts @@ -1,11 +1,12 @@ import { UmbLanguageRepository } from '../../repository/language.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; -import { +import type { UmbLanguagePickerModalValue, - UmbLanguagePickerModalData, + UmbLanguagePickerModalData} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts index ea90e071cc..dbcf5495b8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts @@ -1,8 +1,8 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbItemStore } from '@umbraco-cms/backoffice/store'; export const UMB_LANGUAGE_ITEM_STORE_CONTEXT = new UmbContextToken('UmbLanguageItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts index d03a64ad4a..cb55470134 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.repository.ts @@ -1,12 +1,15 @@ import { UmbLanguageServerDataSource } from './sources/language.server.data.js'; -import { UmbLanguageStore, UMB_LANGUAGE_STORE_CONTEXT } from './language.store.js'; +import type { UmbLanguageStore} from './language.store.js'; +import { UMB_LANGUAGE_STORE_CONTEXT } from './language.store.js'; import { UmbLanguageItemServerDataSource } from './sources/language-item.server.data.js'; -import { UMB_LANGUAGE_ITEM_STORE_CONTEXT, UmbLanguageItemStore } from './language-item.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbLanguageItemStore } from './language-item.store.js'; +import { UMB_LANGUAGE_ITEM_STORE_CONTEXT } from './language-item.store.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { LanguageItemResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { LanguageItemResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; export class UmbLanguageRepository extends UmbBaseController implements UmbItemRepository { #init: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts index a3c1e7df5a..d3480239eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts @@ -1,8 +1,8 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const UMB_LANGUAGE_STORE_CONTEXT = new UmbContextToken('UmbLanguageStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language-item.server.data.ts index 9a9392e330..0bda804380 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language-item.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language-item.server.data.ts @@ -1,7 +1,8 @@ -import { LanguageResource, LanguageItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { LanguageResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; /** * A data source for Languages that fetches Language items from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language.server.data.ts index 623ac777b7..a018e2e1b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/sources/language.server.data.ts @@ -1,7 +1,8 @@ -import { - LanguageResource, +import type { LanguageResponseModel, - CreateLanguageRequestModel, + CreateLanguageRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + LanguageResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts index 80918807a0..1e5992ea3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/components/language-root-table-delete-column-layout.element.ts @@ -1,7 +1,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-language-root-table-delete-column-layout') export class UmbLanguageRootTableDeleteColumnLayoutElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts index d173f0016c..e6407b6b51 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language-root/language-root-workspace.element.ts @@ -1,9 +1,9 @@ import { UmbLanguageRepository } from '../../repository/language.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; +import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import './components/language-root-table-delete-column-layout.element.js'; import './components/language-root-table-name-column-layout.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-editor.element.ts index bc9156cc52..17fd0a7911 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/language-workspace-editor.element.ts @@ -1,8 +1,9 @@ import { UMB_LANGUAGE_WORKSPACE_CONTEXT } from './language-workspace.context.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-language-workspace-editor') export class UmbLanguageWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts index 87bf80b3df..00ad6a7640 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.ts @@ -1,12 +1,13 @@ import { UMB_LANGUAGE_WORKSPACE_CONTEXT } from '../../language-workspace.context.js'; import type { UmbInputLanguagePickerElement } from '../../../../components/input-language-picker/input-language-picker.element.js'; import type { UmbInputCultureSelectElement } from '@umbraco-cms/backoffice/culture'; -import { UUIBooleanInputEvent, UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; +import { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-language-details-workspace-view') diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/menu.manifests.ts index 2a4c862535..bd49448aba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/menu.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/menu.manifests.ts @@ -1,4 +1,4 @@ -import { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu } from '@umbraco-cms/backoffice/extension-registry'; const menu: ManifestMenu = { type: 'menu', diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts index 06d3d3678f..c6af46c0dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/section.manifests.ts @@ -1,5 +1,4 @@ -import { ManifestSectionSidebarAppMenuKind } from '@umbraco-cms/backoffice/extension-registry'; -import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestSectionSidebarAppMenuKind , ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; const sectionAlias = 'Umb.Section.Settings'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.stories.ts index 97c87ef4ba..17156646ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/components/input-static-file/input-static-file.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './input-static-file.element.js'; import type { UmbInputStaticFileElement } from './input-static-file.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/static-file-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/static-file-picker-modal.token.ts index d671ae3cca..f98fc765f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/static-file-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/modals/static-file-picker-modal.token.ts @@ -1,6 +1,7 @@ import { UMB_STATIC_FILE_TREE_ALIAS } from '@umbraco-cms/backoffice/static-file'; -import { StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import type { StaticFileItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbStaticFilePickerModalData = UmbTreePickerModalData; export type UmbStaticFilePickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.ts index 7803ca90c4..297b68e483 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.element.ts @@ -1,6 +1,6 @@ -import { UmbInputStaticFileElement } from '../../components/index.js'; +import type { UmbInputStaticFileElement } from '../../components/index.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import '../../components/input-static-file/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.stories.ts index c77875e502..2f805137b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/property-editors/static-file-picker/property-editor-ui-static-file-picker.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIStaticFilePickerElement } from './property-editor-ui-static-file-picker.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts index 756378ff92..805634d1ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_STATIC_FILE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbStaticFileTreeServerDataSource } from './static-file-tree.server.data-source.js'; -import { UmbStaticFileTreeItemModel, UmbStaticFileTreeRootModel } from './types.js'; +import type { UmbStaticFileTreeItemModel, UmbStaticFileTreeRootModel } from './types.js'; import { UMB_STATIC_FILE_TREE_STORE_CONTEXT } from './static-file-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbStaticFileTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts index 4e75353aab..9ca8904269 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts @@ -1,6 +1,6 @@ -import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_STATIC_FILE_ENTITY_TYPE, UMB_STATIC_FILE_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbStaticFileTreeItemModel } from './types.js'; +import type { UmbStaticFileTreeItemModel } from './types.js'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { StaticFileResource, type FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts index a2e76ca9b2..3f1a2604f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts index e45df36ba7..7f7705632d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/types.ts @@ -1,4 +1,4 @@ -import { UmbStaticFileEntityType, UmbStaticFileFolderEntityType, UmbStaticFileRootEntityType } from '../entity.js'; +import type { UmbStaticFileEntityType, UmbStaticFileFolderEntityType, UmbStaticFileRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbStaticFileTreeItemModel extends UmbUniqueTreeItemModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts index f5600257ff..9a955eed20 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts @@ -10,9 +10,10 @@ import { state, repeat, } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIInputElement, UUIInputEvent, UUITagElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement, UUIInputEvent, UUITagElement } from '@umbraco-cms/backoffice/external/uui'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { TagResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { TagResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-tags-input') export class UmbTagsInputElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts index cdac94257a..d18ff289be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './tags-input.element.js'; import type { UmbTagsInputElement } from './tags-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts index defb1408d0..cd52ca5c88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.element.ts @@ -1,6 +1,6 @@ -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts index 468d9c1240..d3a41d0a3e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/config/storage-type/property-editor-ui-tags-storage-type.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUITagsStorageTypeElement } from './property-editor-ui-tags-storage-type.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts index 636d4866f0..034d99d223 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.element.ts @@ -1,9 +1,9 @@ -import { UmbTagsInputElement } from '../../components/tags-input/tags-input.element.js'; +import type { UmbTagsInputElement } from '../../components/tags-input/tags-input.element.js'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts index 59df42227d..2fbe449fe2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/property-editors/tags/property-editor-ui-tags.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUITagsElement } from './property-editor-ui-tags.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts index d5a2412c8e..328553a7e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.repository.ts @@ -1,8 +1,9 @@ import { UmbTagServerDataSource } from './sources/tag.server.data.js'; -import { UmbTagStore, UMB_TAG_STORE_CONTEXT } from './tag.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbTagStore} from './tag.store.js'; +import { UMB_TAG_STORE_CONTEXT } from './tag.store.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbTagRepository extends UmbBaseController implements UmbApi { #init!: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts index 661c3fa90a..f087b91baa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts @@ -2,7 +2,7 @@ import type { TagResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export const UMB_TAG_STORE_CONTEXT = new UmbContextToken('UmbTagStore'); /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.controller.ts index f30c2e42a4..49d995cd74 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.controller.ts @@ -1,4 +1,4 @@ -import { +import type { CodeEditorConstructorOptions, CodeEditorSearchOptions, CodeEditorTheme, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts index ad6c7745b7..59555b0d28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.element.ts @@ -3,12 +3,13 @@ import type { CodeEditorLanguage, CodeEditorSearchOptions, UmbCodeEditorHost } f import { CodeEditorTheme } from './code-editor.model.js'; import { UMB_THEME_CONTEXT } from '@umbraco-cms/backoffice/themes'; import { monacoEditorStyles, monacoJumpingCursorHack } from '@umbraco-cms/backoffice/external/monaco-editor'; +import type { + PropertyValues, + Ref} from '@umbraco-cms/backoffice/external/lit'; import { css, html, - PropertyValues, createRef, - Ref, ref, customElement, property, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.stories.ts index eac2ec2da2..55e4876250 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/code-editor.stories.ts @@ -1,6 +1,7 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbCodeEditorElement } from './code-editor.element.js'; -import { CodeEditorLanguage, CodeEditorTheme } from './code-editor.model.js'; +import type { CodeEditorLanguage} from './code-editor.model.js'; +import { CodeEditorTheme } from './code-editor.model.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './code-editor.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/themes/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/themes/index.ts index 723e5aff63..bcaa4ebea6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/themes/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/code-editor/themes/index.ts @@ -1,4 +1,4 @@ -import { CodeEditorTheme } from '../code-editor.model.js'; +import type { CodeEditorTheme } from '../code-editor.model.js'; import { UmbCodeEditorThemeHighContrastLight } from './code-editor.hc-light.theme.js'; import { UmbCodeEditorThemeHighContrastDark } from './code-editor.hc-dark.theme.js'; import { UmbCodeEditorThemeLight } from './code-editor.light.theme.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts index f3fe42c931..996bbfe530 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts @@ -1,18 +1,20 @@ import { UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS } from '../../modals/manifests.js'; import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils/index.js'; -import { UmbChooseInsertTypeModalValue, CodeSnippetType } from '../../modals/insert-choose-type-sidebar.element.js'; +import type { UmbChooseInsertTypeModalValue} from '../../modals/insert-choose-type-sidebar.element.js'; +import { CodeSnippetType } from '../../modals/insert-choose-type-sidebar.element.js'; import { UmbDictionaryRepository } from '@umbraco-cms/backoffice/dictionary'; import { customElement, property, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { + UmbDictionaryItemPickerModalValue, + UmbModalManagerContext, + UmbModalContext, + UmbPartialViewPickerModalValue} from '@umbraco-cms/backoffice/modal'; import { UMB_DICTIONARY_ITEM_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT, UMB_PARTIAL_VIEW_PICKER_MODAL, - UmbDictionaryItemPickerModalValue, - UmbModalManagerContext, - UmbModalContext, - UmbModalToken, - UmbPartialViewPickerModalValue, + UmbModalToken } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/menu.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/menu.manifests.ts index e1f110f970..0b1437c2b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/menu.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/menu.manifests.ts @@ -1,4 +1,4 @@ -import { ManifestMenu, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestMenu, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const sectionAlias = 'Umb.Section.Settings'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts index 37cf4bfa87..4da80658ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts @@ -1,12 +1,13 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import type { + UmbModalManagerContext, + UmbModalContext, + UmbDictionaryItemPickerModalValue} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, UMB_PARTIAL_VIEW_PICKER_MODAL, - UmbModalContext, UMB_DICTIONARY_ITEM_PICKER_MODAL, - UmbDictionaryItemPickerModalValue, UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts index 427ac228f4..c8cf5632d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-section-modal/insert-section-input.element.ts @@ -1,4 +1,5 @@ -import { UUIBooleanInputElement, UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import { UUIBooleanInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts index fefe77b850..05a8acf3fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_PARTIAL_VIEW_PICKER_MODAL_ALIAS } from '@umbraco-cms/backoffice/modal'; export const UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS = 'Umb.Modal.Templating.Insert.ChooseType.Sidebar'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts index 107c6b3bea..459a8c2441 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/partial-view-picker-modal.element.ts @@ -1,11 +1,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { - UmbPartialViewPickerModalData, - UmbPartialViewPickerModalValue, - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; -import { UmbTreeElement, type UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; +import type { UmbPartialViewPickerModalData, UmbPartialViewPickerModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbTreeElement, UmbTreeSelectionConfiguration } from '@umbraco-cms/backoffice/tree'; @customElement('umb-partial-view-picker-modal') export default class UmbPartialViewPickerModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts index e4c2f3e87f..b029dc636e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/create.action.ts @@ -1,7 +1,8 @@ import { UMB_PARTIAL_VIEW_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbPartialViewCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts index 5938ff9911..8fd7f22acd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/manifests.ts @@ -1,7 +1,7 @@ import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UmbPartialViewCreateOptionsEntityAction } from './create.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts index 5eb7e72ec0..4791b315e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.ts @@ -1,9 +1,10 @@ import { UMB_PARTIAL_VIEW_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; import { UMB_PARTIAL_VIEW_FROM_SNIPPET_MODAL } from '../snippet-modal/create-from-snippet-modal.token.js'; -import { UmbPartialViewCreateOptionsModalData } from './index.js'; +import type { UmbPartialViewCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @customElement('umb-partial-view-create-options-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts index ca284fee0c..578f15e830 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts @@ -1,4 +1,4 @@ -import { UmbCreatePartialViewFromSnippetModalData } from './create-from-snippet-modal.token.js'; +import type { UmbCreatePartialViewFromSnippetModalData } from './create-from-snippet-modal.token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts index b355f34759..bf63d4920b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/manifests.ts @@ -3,7 +3,7 @@ import { UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from '../repository/index.js'; import { manifests as createManifests } from './create/manifests.js'; import { manifests as renameManifests } from './rename/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const partialViewActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts index f1ceedc582..bfb7122455 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/manifests.ts @@ -1,7 +1,7 @@ import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../../entity.js'; import { UmbRenamePartialViewRepository } from './rename-partial-view.repository.js'; import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RENAME_PARTIAL_VIEW_REPOSITORY_ALIAS = 'Umb.Repository.PartialView.Rename'; export const UMB_RENAME_PARTIAL_VIEW_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.PartialView.Rename'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts index 6676e3942a..667bb9b4ae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.repository.ts @@ -1,7 +1,7 @@ import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from '../../repository/partial-view-detail.store.js'; -import { UmbPartialViewDetailModel } from '../../types.js'; +import type { UmbPartialViewDetailModel } from '../../types.js'; import { UmbRenamePartialViewServerDataSource } from './rename-partial-view.server.data-source.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action'; export class UmbRenamePartialViewRepository extends UmbRenameRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts index 31c440c54f..93584d1425 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.ts @@ -1,10 +1,11 @@ +import { UmbPartialViewDetailServerDataSource } from '../../repository/partial-view-detail.server.data-source.js'; import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbPartialViewDetailServerDataSource } from '../../repository/partial-view-detail.server.data-source.js'; -import { RenameStylesheetRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { RenameStylesheetRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenamePartialViewServerDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts index 03917c98eb..69731f773e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts @@ -1,6 +1,6 @@ import { UmbPartialViewDetailRepository } from './partial-view-detail.repository.js'; import { UmbPartialViewDetailStore } from './partial-view-detail.store.js'; -import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_PARTIAL_VIEW_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.PartialView.Detail'; export const UMB_PARTIAL_VIEW_DETAIL_STORE_ALIAS = 'Umb.Store.PartialView.Detail'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts index 7b8311f208..da36abf8c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.repository.ts @@ -1,7 +1,7 @@ -import { UmbPartialViewDetailModel } from '../types.js'; +import type { UmbPartialViewDetailModel } from '../types.js'; import { UmbPartialViewDetailServerDataSource } from './partial-view-detail.server.data-source.js'; import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from './partial-view-detail.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbPartialViewDetailRepository extends UmbDetailRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts index 8a15ee4ebc..0ce4877aae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.server.data-source.ts @@ -1,16 +1,17 @@ +import type { UmbPartialViewDetailModel } from '../types.js'; +import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { type UmbPartialViewDetailModel } from '../types.js'; -import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; -import { +import type { CreatePartialViewRequestModel, - PartialViewResource, - UpdatePartialViewRequestModel, + UpdatePartialViewRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbPartialViewDetailServerDataSource implements UmbDetailDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts index 37814e4eb0..3176bcc4f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-view-detail.store.ts @@ -1,6 +1,6 @@ -import { UmbPartialViewDetailModel } from '../types.js'; +import type { UmbPartialViewDetailModel } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts index fbed404302..ec895cd630 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts @@ -1,9 +1,10 @@ import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbPartialViewTreeItemModel } from '../types.js'; +import type { UmbPartialViewTreeItemModel } from '../types.js'; import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from '../partial-view-tree.store.js'; import { UmbPartialViewFolderServerDataSource } from './partial-view-folder.server.data-source.js'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbPartialViewFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts index be5cb0c0d4..0d62a9d5d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.server.data-source.ts @@ -1,6 +1,7 @@ import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; -import { CreatePartialViewFolderRequestModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { CreatePartialViewFolderRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts index 9f031e78ef..129d387c8d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbPartialViewTreeServerDataSource } from './partial-view-tree.server.data-source.js'; -import { UmbPartialViewTreeItemModel, UmbPartialViewTreeRootModel } from './types.js'; +import type { UmbPartialViewTreeItemModel, UmbPartialViewTreeRootModel } from './types.js'; import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from './partial-view-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; // TODO: TREE STORE TYPE PROBLEM: export class UmbPartialViewTreeRepository diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts index 6894f2c478..3bdf84386f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts @@ -1,8 +1,9 @@ -import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbPartialViewTreeItemModel } from './types.js'; +import type { UmbPartialViewTreeItemModel } from './types.js'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { FileSystemTreeItemPresentationModel, PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; +import type { FileSystemTreeItemPresentationModel} from '@umbraco-cms/backoffice/backend-api'; +import { PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts index 07a7508121..b07f03c206 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts @@ -1,9 +1,9 @@ import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { UMB_PARTIAL_VIEW_DETAIL_STORE_CONTEXT } from '../repository/partial-view-detail.store.js'; -import { UmbPartialViewDetailModel } from '../types.js'; -import { UmbPartialViewTreeItemModel } from './types.js'; +import type { UmbPartialViewDetailModel } from '../types.js'; +import type { UmbPartialViewTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/types.ts index 4905680a71..25e76b711e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/types.ts @@ -1,4 +1,4 @@ -import { UmbPartialViewEntityType, UmbPartialViewFolderEntityType, UmbPartialViewRootEntityType } from '../entity.js'; +import type { UmbPartialViewEntityType, UmbPartialViewFolderEntityType, UmbPartialViewRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbPartialViewTreeItemModel extends UmbUniqueTreeItemModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/types.ts index 0c880c3c7d..27d428a73c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/types.ts @@ -1,4 +1,4 @@ -import { UmbPartialViewEntityType } from './entity.js'; +import type { UmbPartialViewEntityType } from './entity.js'; export interface UmbPartialViewDetailModel { entityType: UmbPartialViewEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts index 966f56e0fe..b4bc167ead 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace-editor.element.ts @@ -1,12 +1,13 @@ -import { UmbTemplatingInsertMenuElement } from '../../components/index.js'; +import type { UmbTemplatingInsertMenuElement } from '../../components/index.js'; import { UMB_TEMPLATE_QUERY_BUILDER_MODAL } from '../../templates/modals/modal-tokens.js'; import { getQuerySnippet } from '../../utils/index.js'; import { UMB_PARTIAL_VIEW_WORKSPACE_CONTEXT } from './partial-view-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; -import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; @customElement('umb-partial-view-workspace-editor') export class UmbPartialViewWorkspaceEditorElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index 521342cf11..4ef52f9b56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -3,8 +3,9 @@ import type { UmbPartialViewDetailModel } from '../types.js'; import { UMB_PARTIAL_VIEW_ENTITY_TYPE } from '../entity.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts index be2dc7f67f..f7409825a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.element.ts @@ -3,7 +3,7 @@ import { UmbPartialViewWorkspaceEditorElement } from './partial-view-workspace-e import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; +import type { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; import '../../components/insert-menu/templating-insert-menu.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts index 7d6a1ead0f..4ef4970f09 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/create.action.ts @@ -1,7 +1,8 @@ import { UMB_SCRIPT_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbScriptCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts index 1d2209278e..04935f74ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/manifests.ts @@ -1,7 +1,7 @@ import { UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UmbScriptCreateOptionsEntityAction } from './create.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts index c383bf22ce..b7235077f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.ts @@ -1,8 +1,9 @@ import { UMB_SCRIPT_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; -import { UmbScriptCreateOptionsModalData } from './index.js'; +import type { UmbScriptCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @customElement('umb-script-create-options-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts index 2bbb0e2e42..6b57734a1f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/manifests.ts @@ -3,7 +3,7 @@ import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { manifests as createManifests } from './create/manifests.js'; import { manifests as renameManifests } from './rename/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DELETE_SCRIPT_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Delete'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts index 69e9c99817..50d3b97461 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/manifests.ts @@ -1,7 +1,7 @@ import { UMB_SCRIPT_ENTITY_TYPE } from '../../entity.js'; import { UmbRenameScriptRepository } from './rename-script.repository.js'; import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RENAME_SCRIPT_REPOSITORY_ALIAS = 'Umb.Repository.Script.Rename'; export const UMB_RENAME_SCRIPT_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Script.Rename'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts index 630162c613..3575cf951a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.repository.ts @@ -1,7 +1,7 @@ import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from '../../repository/index.js'; -import { UmbScriptDetailModel } from '../../types.js'; +import type { UmbScriptDetailModel } from '../../types.js'; import { UmbRenameScriptServerDataSource } from './rename-script.server.data-source.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action'; export class UmbRenameScriptRepository extends UmbRenameRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts index 760c22eff8..0c850bc538 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.ts @@ -1,10 +1,11 @@ +import { UmbScriptDetailServerDataSource } from '../../repository/script-detail.server.data-source.js'; import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbScriptDetailServerDataSource } from '../../repository/script-detail.server.data-source.js'; -import { RenameStylesheetRequestModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { RenameStylesheetRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { ScriptResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenameScriptServerDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts index 6dd3212951..04a6f1a0d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/manifests.ts @@ -1,6 +1,6 @@ import { UmbScriptDetailRepository } from './script-detail.repository.js'; import { UmbScriptDetailStore } from './script-detail.store.js'; -import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_SCRIPT_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Script.Detail'; export const UMB_SCRIPT_DETAIL_STORE_ALIAS = 'Umb.Store.Script.Detail'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts index bc4eb49675..d4b5b7cb9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.repository.ts @@ -1,8 +1,8 @@ -import { UmbScriptDetailModel } from '../types.js'; +import type { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from './script-detail.store.js'; import { UmbScriptDetailServerDataSource } from './script-detail.server.data-source.js'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbScriptDetailRepository extends UmbDetailRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts index 1daaaac0b1..ec4dd7277e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.server.data-source.ts @@ -1,16 +1,17 @@ -import { UmbScriptDetailModel } from '../types.js'; +import type { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { +import type { CreateScriptRequestModel, - ScriptResource, - UpdateScriptRequestModel, + UpdateScriptRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbScriptDetailServerDataSource implements UmbDetailDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts index dc8aaa5e8a..de50cbd738 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/repository/script-detail.store.ts @@ -1,6 +1,6 @@ -import { UmbScriptDetailModel } from '../types.js'; +import type { UmbScriptDetailModel } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts index 71f184dd91..c9e7d86bdc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts @@ -1,8 +1,10 @@ import { UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UMB_SCRIPT_TREE_STORE_CONTEXT, UmbScriptTreeItemModel } from '../index.js'; +import type { UmbScriptTreeItemModel } from '../index.js'; +import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../index.js'; import { UmbScriptFolderServerDataSource } from './script-folder.server.data-source.js'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbScriptFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts index 56d6e20fa2..17e712a47c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.server.data-source.ts @@ -1,6 +1,7 @@ import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; -import { CreateScriptFolderRequestModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { CreateScriptFolderRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts index ebb84eefb9..c3340d49ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts @@ -1,9 +1,9 @@ import { UMB_SCRIPT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbScriptTreeServerDataSource } from './script-tree.server.data-source.js'; -import { UmbScriptTreeItemModel, UmbScriptTreeRootModel } from './types.js'; +import type { UmbScriptTreeItemModel, UmbScriptTreeRootModel } from './types.js'; import { UMB_SCRIPT_TREE_STORE_CONTEXT } from './script-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; // TODO: TREE STORE TYPE PROBLEM: export class UmbScriptTreeRepository extends UmbTreeRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts index c414283133..647c233a3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.server.data-source.ts @@ -1,8 +1,9 @@ -import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbScriptTreeItemModel } from './types.js'; +import type { UmbScriptTreeItemModel } from './types.js'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { FileSystemTreeItemPresentationModel, ScriptResource } from '@umbraco-cms/backoffice/backend-api'; +import type { FileSystemTreeItemPresentationModel} from '@umbraco-cms/backoffice/backend-api'; +import { ScriptResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts index 1ab0d85003..2fe2ae2077 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.store.ts @@ -1,9 +1,9 @@ import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; -import { UmbScriptDetailModel } from '../types.js'; +import type { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_DETAIL_STORE_CONTEXT } from '../repository/index.js'; -import { UmbScriptTreeItemModel } from './types.js'; +import type { UmbScriptTreeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbStoreConnector } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts index 7428f2f887..d7496433d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/types.ts @@ -1,4 +1,4 @@ -import { UmbScriptEntityType, UmbScriptFolderEntityType, UmbScriptRootEntityType } from '../entity.js'; +import type { UmbScriptEntityType, UmbScriptFolderEntityType, UmbScriptRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbScriptTreeItemModel extends UmbUniqueTreeItemModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts index 497367e0a7..2c904c19b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/types.ts @@ -1,4 +1,4 @@ -import { UmbScriptEntityType } from './entity.js'; +import type { UmbScriptEntityType } from './entity.js'; export interface UmbScriptDetailModel { entityType: UmbScriptEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts index dc3054ea6d..408a1a133f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace-editor.element.ts @@ -1,4 +1,4 @@ -import { UmbScriptWorkspaceContext } from './script-workspace.context.js'; +import type { UmbScriptWorkspaceContext } from './script-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts index a5d794b22d..d60c15ef7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.context.ts @@ -1,9 +1,9 @@ import { UmbScriptDetailRepository } from '../repository/index.js'; -import { UmbScriptDetailModel } from '../types.js'; +import type { UmbScriptDetailModel } from '../types.js'; import { UMB_SCRIPT_ENTITY_TYPE } from '../entity.js'; import { UMB_SCRIPT_WORKSPACE_ALIAS } from './manifests.js'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts index 5a2553d566..41cfd09090 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/script-workspace.element.ts @@ -3,7 +3,7 @@ import { UmbScriptWorkspaceEditorElement } from './script-workspace-editor.eleme import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; +import type { UmbRoute, IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; @customElement('umb-script-workspace') diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts index 6f42004d9c..d73459a14b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.context.ts @@ -1,8 +1,8 @@ import { UMB_STYLESHEET_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; -import { UmbStylesheetItemModel } from '../../types.js'; +import type { UmbStylesheetItemModel } from '../../types.js'; import { UMB_STYLESHEET_PICKER_MODAL } from './stylesheet-picker-modal.token.js'; import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbStylesheetPickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts index da82cd4f03..73699431dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-input.element.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetItemModel } from '../../types.js'; +import type { UmbStylesheetItemModel } from '../../types.js'; import { UmbStylesheetPickerContext } from './stylesheet-input.context.js'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts index 9b689e9818..98352fdfe6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-input/stylesheet-picker-modal.token.ts @@ -1,5 +1,6 @@ -import { UmbStylesheetTreeItemModel } from '../../tree/types.js'; -import { UmbModalToken, UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbStylesheetTreeItemModel } from '../../tree/types.js'; +import type { UmbPickerModalValue, UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbStylesheetPickerModalData = UmbTreePickerModalData; export type UmbStylesheetPickerModalValue = UmbPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts index d222693b22..9402b9ca3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_STYLESHEET_RULE_SETTINGS_MODAL_ALIAS = 'Umb.Modal.StylesheetRuleSettings'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts index 9c5fcabd50..0312d8e6c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-input.element.ts @@ -1,9 +1,10 @@ -import { UmbStylesheetRule } from '../../types.js'; +import type { UmbStylesheetRule } from '../../types.js'; import { UMB_STYLESHEET_RULE_SETTINGS_MODAL } from './stylesheet-rule-settings-modal.token.js'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { css, html, customElement, repeat, property } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; // TODO: add sorting when we have a generic sorting component/functionality for ref lists diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts index 6ee8d13d1c..cb3501c6a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/components/stylesheet-rule-input/stylesheet-rule-settings-modal.token.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetRule } from '../../types.js'; +import type { UmbStylesheetRule } from '../../types.js'; import { UMB_STYLESHEET_RULE_SETTINGS_MODAL_ALIAS } from './manifests.js'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts index 818270d5fa..12a164d1a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/create.action.ts @@ -1,7 +1,8 @@ import { UMB_STYLESHEET_CREATE_OPTIONS_MODAL } from './options-modal/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbStylesheetCreateOptionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts index f29815ad7f..92148b8548 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/manifests.ts @@ -1,7 +1,7 @@ import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE, UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UmbStylesheetCreateOptionsEntityAction } from './create.action.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts index 59bf60940a..7fce9e42d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.ts @@ -1,8 +1,9 @@ import { UMB_STYLESHEET_FOLDER_REPOSITORY_ALIAS } from '../../../tree/folder/index.js'; -import { UmbStylesheetCreateOptionsModalData } from './index.js'; +import type { UmbStylesheetCreateOptionsModalData } from './index.js'; import { html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbCreateFolderEntityAction } from '@umbraco-cms/backoffice/tree'; @customElement('umb-stylesheet-create-options-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts index 4701ac0b2e..c0e81e3ca1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/manifests.ts @@ -3,7 +3,7 @@ import { UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { manifests as createManifests } from './create/manifests.js'; import { manifests as renameManifests } from './rename/manifests.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const stylesheetActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts index a3ec788dd1..3c9afff80d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/manifests.ts @@ -1,7 +1,7 @@ import { UMB_STYLESHEET_ENTITY_TYPE } from '../../entity.js'; import { UmbRenameStylesheetRepository } from './rename-stylesheet.repository.js'; import { UmbRenameEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_RENAME_STYLESHEET_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Rename'; export const UMB_RENAME_STYLESHEET_ENTITY_ACTION_ALIAS = 'Umb.EntityAction.Stylesheet.Rename'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts index b3ac93c611..47ae8c6cc1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.repository.ts @@ -1,7 +1,7 @@ import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from '../../repository/stylesheet-detail.store.js'; -import { type UmbStylesheetDetailModel } from '../../types.js'; +import type { UmbStylesheetDetailModel } from '../../types.js'; import { UmbRenameStylesheetServerDataSource } from './rename-stylesheet.server.data-source.js'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRenameRepositoryBase } from '@umbraco-cms/backoffice/entity-action'; export class UmbRenameStylesheetRepository extends UmbRenameRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts index c869c823b1..ee6ea14d3a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.ts @@ -3,8 +3,9 @@ import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { RenameStylesheetRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { RenameStylesheetRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbRenameStylesheetServerDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts index d8a770162f..381998f77b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.repository.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetItemModel } from '../../types.js'; +import type { UmbStylesheetItemModel } from '../../types.js'; import { UmbStylesheetItemServerDataSource } from './stylesheet-item.server.data-source.js'; import { UMB_STYLESHEET_ITEM_STORE_CONTEXT } from './stylesheet-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts index adccd19b47..aa89b3cbe1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.ts @@ -1,6 +1,6 @@ -import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbStylesheetItemModel } from '../../types.js'; +import type { UmbStylesheetItemModel } from '../../types.js'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts index e6e463676f..fd49733d29 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/item/stylesheet-item.store.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetItemModel } from '../../types.js'; +import type { UmbStylesheetItemModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts index 5c199b1d1c..dfd685dc14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/manifests.ts @@ -1,7 +1,7 @@ import { UmbStylesheetDetailRepository } from './stylesheet-detail.repository.js'; import { manifests as itemManifests } from './item/manifests.js'; import { UmbStylesheetDetailStore } from './stylesheet-detail.store.js'; -import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_STYLESHEET_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Stylesheet.Detail'; export const UMB_STYLESHEET_DETAIL_STORE_ALIAS = 'Umb.Store.Stylesheet.Detail'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts index 8c17059df0..0d163581e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.repository.ts @@ -1,7 +1,7 @@ -import { UmbStylesheetDetailModel } from '../types.js'; +import type { UmbStylesheetDetailModel } from '../types.js'; import { UmbStylesheetDetailServerDataSource } from './stylesheet-detail.server.data-source.js'; import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from './stylesheet-detail.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbStylesheetDetailRepository extends UmbDetailRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts index f9d545ee64..3d8d4d4b1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.ts @@ -1,16 +1,17 @@ -import { UmbStylesheetDetailModel } from '../types.js'; +import type { UmbStylesheetDetailModel } from '../types.js'; import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; import { UmbServerFilePathUniqueSerializer, appendFileExtensionIfNeeded, } from '@umbraco-cms/backoffice/server-file-system'; -import { +import type { CreateStylesheetRequestModel, - StylesheetResource, - UpdateStylesheetRequestModel, + UpdateStylesheetRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbStylesheetDetailServerDataSource implements UmbDetailDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts index 11a4b253e7..7fdb4e9928 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/repository/stylesheet-detail.store.ts @@ -1,6 +1,6 @@ -import { UmbStylesheetDetailModel } from '../types.js'; +import type { UmbStylesheetDetailModel } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts index 66178bb78e..896db7232e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts @@ -1,9 +1,10 @@ import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UmbStylesheetTreeItemModel } from '../types.js'; +import type { UmbStylesheetTreeItemModel } from '../types.js'; import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from '../stylesheet-tree.store.js'; import { UmbStylesheetFolderServerDataSource } from './stylesheet-folder.server.data-source.js'; -import { UmbFolderModel, UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbStylesheetFolderRepository extends UmbFolderRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts index e8dce30b0b..26023566c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.server.data-source.ts @@ -1,6 +1,7 @@ import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; -import { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; -import { CreateStylesheetFolderRequestModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbCreateFolderModel, UmbFolderDataSource, UmbUpdateFolderModel } from '@umbraco-cms/backoffice/tree'; +import type { CreateStylesheetFolderRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts index 7a8c2f94c9..ae87973a2a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.repository.ts @@ -1,9 +1,9 @@ import { UMB_STYLESHEET_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbStylesheetTreeServerDataSource } from './stylesheet-tree.server.data-source.js'; import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from './stylesheet-tree.store.js'; -import { UmbStylesheetTreeItemModel, UmbStylesheetTreeRootModel } from './types.js'; +import type { UmbStylesheetTreeItemModel, UmbStylesheetTreeRootModel } from './types.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbStylesheetTreeRepository extends UmbTreeRepositoryBase< UmbStylesheetTreeItemModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts index 0ffcda2d07..cbb0902ea3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.ts @@ -1,7 +1,8 @@ -import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../entity.js'; -import { UmbStylesheetTreeItemModel } from './types.js'; -import { FileSystemTreeItemPresentationModel, StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbStylesheetTreeItemModel } from './types.js'; +import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; +import type { FileSystemTreeItemPresentationModel} from '@umbraco-cms/backoffice/backend-api'; +import { StylesheetResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts index 05a20b0b3f..b8bcc08642 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/stylesheet-tree.store.ts @@ -1,7 +1,7 @@ -import { UmbStylesheetDetailModel } from '../types.js'; +import type { UmbStylesheetDetailModel } from '../types.js'; import { UMB_STYLESHEET_DETAIL_STORE_CONTEXT } from '../repository/index.js'; import { UMB_STYLESHEET_ENTITY_TYPE } from '../entity.js'; -import { UmbStylesheetTreeItemModel } from './types.js'; +import type { UmbStylesheetTreeItemModel } from './types.js'; import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts index 5dd271943a..f8a05f6783 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/types.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetEntityType, UmbStylesheetFolderEntityType, UmbStylesheetRootEntityType } from '../entity.js'; +import type { UmbStylesheetEntityType, UmbStylesheetFolderEntityType, UmbStylesheetRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbStylesheetTreeItemModel extends UmbUniqueTreeItemModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts index 91c8e771aa..7623b49192 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/types.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetEntityType, UmbStylesheetFolderEntityType } from './entity.js'; +import type { UmbStylesheetEntityType, UmbStylesheetFolderEntityType } from './entity.js'; export interface UmbStylesheetDetailModel { entityType: UmbStylesheetEntityType; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts index 3674b0a913..e5157c77aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/utils/stylesheet-rule-manager.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetRule } from '../types.js'; +import type { UmbStylesheetRule } from '../types.js'; export class UmbStylesheetRuleManager { #umbRuleRegex = /\/\*\*\s*umb_name:\s*(?[^*\r\n]*?)\s*\*\/\s*(?[^,{]*?)\s*{\s*(?.*?)\s*}/gis; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts index e43d63ac32..4dc7b39fef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace-editor.element.ts @@ -1,4 +1,4 @@ -import { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js'; +import type { UmbStylesheetWorkspaceContext } from './stylesheet-workspace.context.js'; import type { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts index 225a3d4da7..a14eb15452 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.stories.ts @@ -1,6 +1,6 @@ import './stylesheet-workspace.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbStylesheetWorkspaceElement } from './stylesheet-workspace.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts index 6e7c340495..d840c96834 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/code-editor/stylesheet-code-editor-workspace-view.element.ts @@ -1,7 +1,8 @@ -import { UMB_STYLESHEET_WORKSPACE_CONTEXT, UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; +import type { UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; +import { UMB_STYLESHEET_WORKSPACE_CONTEXT } from '../../stylesheet-workspace.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; +import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-stylesheet-code-editor-workspace-view') diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts index e5fc02424d..dfc49b5b17 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.ts @@ -1,12 +1,12 @@ -import { UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; -import { UmbStylesheetRule } from '../../../types.js'; -import { UmbStylesheetRuleInputElement } from '../../../components/index.js'; +import type { UmbStylesheetWorkspaceContext } from '../../stylesheet-workspace.context.js'; +import type { UmbStylesheetRule } from '../../../types.js'; +import type { UmbStylesheetRuleInputElement } from '../../../components/index.js'; import { UmbStylesheetRuleManager } from '../../../utils/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-stylesheet-rich-text-rule-workspace-view') export class UmbStylesheetRichTextRuleWorkspaceViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts index 83ac3be422..ff881c5b4b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/input-template/input-template.element.ts @@ -4,14 +4,16 @@ import '../template-card/template-card.element.js'; import { UmbTemplateRepository } from '../../repository/template.repository.js'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_TEMPLATE_PICKER_MODAL, UMB_TEMPLATE_MODAL, - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ItemResponseModelBaseModel, TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { ItemResponseModelBaseModel} from '@umbraco-cms/backoffice/backend-api'; +import { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-input-template') export class UmbInputTemplateElement extends FormControlMixin(UmbLitElement) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts index 7ce63c66c5..dc071c0f38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/components/template-card/template-card.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbTemplateCardElement } from './template-card.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import './template-card.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts index 4dc38218e1..35eede6b2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/create/create.action.ts @@ -1,5 +1,5 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbCreateEntityAction }> extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts index b0c85e6208..5f0c6048c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/entity-actions/manifests.ts @@ -1,7 +1,7 @@ import { UMB_TEMPLATE_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbCreateEntityAction } from './create/create.action.js'; -import { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; const entityActions: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/manifests.ts index 3262600c7e..d1c637b1ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_MODAL_TEMPLATING_QUERY_BUILDER_SIDEBAR_ALIAS = 'Umb.Modal.Templating.Query.Builder.Sidebar'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/modal-tokens.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/modal-tokens.ts index 3ab0c31a21..a47003933e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/modal-tokens.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/modal-tokens.ts @@ -1,5 +1,5 @@ import { UMB_MODAL_TEMPLATING_QUERY_BUILDER_SIDEBAR_ALIAS } from './manifests.js'; -import { +import type { TemplateQueryBuilderModalData, UmbTemplateQueryBuilderModalValue, } from './query-builder/query-builder.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts index cc3739744d..e56d036dd1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder-filter.element.ts @@ -1,7 +1,8 @@ import { localizeOperators, localizePropertyType } from './utils.js'; -import { type UUIComboboxListElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIComboboxListElement } from '@umbraco-cms/backoffice/external/uui'; +import type { + PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; import { - PropertyValueMap, css, html, customElement, @@ -10,11 +11,12 @@ import { ifDefined, } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { +import type { OperatorModel, TemplateQueryExecuteFilterPresentationModel, - TemplateQueryPropertyTypeModel, - TemplateQuerySettingsResponseModel, + TemplateQuerySettingsResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { + TemplateQueryPropertyTypeModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-query-builder-filter') diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts index 0876832f59..559bea366d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts @@ -1,15 +1,16 @@ import { UmbTemplateRepository } from '../../repository/template.repository.js'; import { localizePropertyType, localizeSort } from './utils.js'; import type { UmbQueryBuilderFilterElement } from './query-builder-filter.element.js'; -import { UUIComboboxListElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIComboboxListElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, query, queryAll, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement, UMB_DOCUMENT_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, + UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; -import { +import type { TemplateQueryExecuteModel, TemplateQueryResultResponseModel, TemplateQuerySettingsResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/utils.ts index 1ccd3bdbca..78622b7be0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/utils.ts @@ -1,8 +1,9 @@ -import { - OperatorModel, +import type { TemplateQueryExecuteSortModel, TemplateQueryOperatorModel, - TemplateQueryPropertyPresentationModel, + TemplateQueryPropertyPresentationModel} from '@umbraco-cms/backoffice/backend-api'; +import { + OperatorModel, TemplateQueryPropertyTypeModel, UserOrderModel, } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts index 274063b931..dddfa7a795 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/manifests.ts @@ -1,7 +1,7 @@ import { UmbTemplateRepository } from '../repository/template.repository.js'; import { UmbTemplateStore } from './template.store.js'; import { UmbTemplateItemStore } from './template-item.store.js'; -import { ManifestStore, ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestStore, ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_TEMPLATE_REPOSITORY_ALIAS = 'Umb.Repository.Template'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts index 82d6fb4830..f13fa00fab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts @@ -1,6 +1,6 @@ import type { DataSourceResponse, UmbPagedData } from '@umbraco-cms/backoffice/repository'; import type { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export interface TemplateTreeDataSource { getRootItems(): Promise>>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts index d531f2d8a6..1a24030f9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.detail.server.data.ts @@ -1,9 +1,10 @@ -import { +import type { TemplateResponseModel, - TemplateResource, CreateTemplateRequestModel, UpdateTemplateRequestModel, - TemplateScaffoldResponseModel, + TemplateScaffoldResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { + TemplateResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.item.server.data.ts index 319979677a..ec984e027e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.item.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.item.server.data.ts @@ -1,5 +1,6 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import { TemplateItemResponseModel, TemplateResource } from '@umbraco-cms/backoffice/backend-api'; +import type { TemplateItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { TemplateResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.query-builder.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.query-builder.server.data.ts index ea043493d4..af553f73e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.query-builder.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/template.query-builder.server.data.ts @@ -1,4 +1,5 @@ -import { TemplateQueryExecuteModel, TemplateResource } from '@umbraco-cms/backoffice/backend-api'; +import type { TemplateQueryExecuteModel} from '@umbraco-cms/backoffice/backend-api'; +import { TemplateResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts index 6f182fcea2..436c4383d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts @@ -1,6 +1,6 @@ -import { TemplateItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { TemplateItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts index aaa92ec247..64da0e0b18 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.repository.ts @@ -1,20 +1,24 @@ -import { UmbTemplateTreeStore, UMB_TEMPLATE_TREE_STORE_CONTEXT } from '../tree/index.js'; -import { UmbTemplateStore, UMB_TEMPLATE_STORE_CONTEXT } from './template.store.js'; +import type { UmbTemplateTreeStore} from '../tree/index.js'; +import { UMB_TEMPLATE_TREE_STORE_CONTEXT } from '../tree/index.js'; +import type { UmbTemplateStore} from './template.store.js'; +import { UMB_TEMPLATE_STORE_CONTEXT } from './template.store.js'; import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data.js'; -import { UMB_TEMPLATE_ITEM_STORE_CONTEXT, UmbTemplateItemStore } from './template-item.store.js'; +import type { UmbTemplateItemStore } from './template-item.store.js'; +import { UMB_TEMPLATE_ITEM_STORE_CONTEXT } from './template-item.store.js'; import { UmbTemplateItemServerDataSource } from './sources/template.item.server.data.js'; import { UmbTemplateQueryBuilderServerDataSource } from './sources/template.query-builder.server.data.js'; import type { UmbItemDataSource, UmbItemRepository } from '@umbraco-cms/backoffice/repository'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { CreateTemplateRequestModel, TemplateItemResponseModel, TemplateQueryExecuteModel, UpdateTemplateRequestModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbTemplateRepository extends UmbBaseController diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts index f849746457..6909401eb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts @@ -1,10 +1,10 @@ import { UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbTemplateTreeServerDataSource } from './template-tree.server.data-source.js'; -import { UmbTemplateTreeItemModel, UmbTemplateTreeRootModel } from './types.js'; +import type { UmbTemplateTreeItemModel, UmbTemplateTreeRootModel } from './types.js'; import { UMB_TEMPLATE_TREE_STORE_CONTEXT } from './template-tree.store.js'; import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export class UmbTemplateTreeRepository extends UmbTreeRepositoryBase diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts index a4cc424383..4437c8f203 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts @@ -1,6 +1,7 @@ -import { UmbTemplateTreeItemModel } from './types.js'; +import type { UmbTemplateTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { EntityTreeItemResponseModel, TemplateResource } from '@umbraco-cms/backoffice/backend-api'; +import type { EntityTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { TemplateResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts index 06d57947ae..a878f3eb9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts index 4d13bbef89..9875952e80 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace-editor.element.ts @@ -5,12 +5,13 @@ import { getQuerySnippet } from '../../utils/index.js'; import { UMB_TEMPLATE_WORKSPACE_CONTEXT } from './template-workspace.context.js'; import type { UmbCodeEditorElement } from '@umbraco-cms/backoffice/code-editor'; import { camelCase } from '@umbraco-cms/backoffice/external/lodash'; -import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, query, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, - UMB_TEMPLATE_PICKER_MODAL, - UmbModalManagerContext, + UMB_TEMPLATE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { Subject, debounceTime } from '@umbraco-cms/backoffice/external/rxjs'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts index 48553749df..b64a6e09c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/template-workspace.context.ts @@ -1,8 +1,9 @@ import { UmbTemplateRepository } from '../repository/index.js'; import { UmbTemplateTreeRepository } from '../tree/index.js'; import { loadCodeEditor } from '@umbraco-cms/backoffice/code-editor'; +import type { + UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import { UmbBooleanState, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/manifests.ts index 28644423d9..62024e27f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestDashboard } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestDashboard } from '@umbraco-cms/backoffice/extension-registry'; export const dashboard: ManifestDashboard = { type: 'dashboard', diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts index c8a8360271..f02a7b7f7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.stories.ts @@ -1,6 +1,6 @@ import './umbraco-news-dashboard.element.js'; -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbUmbracoNewsDashboardElement } from './umbraco-news-dashboard.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts index e893f40c64..f3a58e2921 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-header-app.element.ts @@ -1,7 +1,9 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CURRENT_USER_MODAL, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts index bff02807ef..e24ac6f72b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user-history.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts index f1d7a498df..a41700c52d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts @@ -1,7 +1,7 @@ -import { UmbCurrentUser } from './types.js'; +import type { UmbCurrentUser } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; import { UserResource } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts index dd843ca087..ff429117d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user/current-user-modal.element.ts @@ -1,10 +1,11 @@ import { UMB_CURRENT_USER_CONTEXT } from '../../current-user.context.js'; -import { type UmbCurrentUser } from '../../types.js'; +import type { UmbCurrentUser } from '../../types.js'; import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-current-user-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/manifests.ts index bc3f9d482a..98d5a2e84e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/manifests.ts @@ -1,4 +1,4 @@ -import { ManifestUserProfileApp } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestUserProfileApp } from '@umbraco-cms/backoffice/extension-registry'; export const userProfileApps: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts index ed64c34311..041c5eba84 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-history.element.ts @@ -1,6 +1,7 @@ -import { +import type { UmbCurrentUserHistoryItem, - UmbCurrentUserHistoryStore, + UmbCurrentUserHistoryStore} from '../current-user-history.store.js'; +import { UMB_CURRENT_USER_HISTORY_STORE_CONTEXT, } from '../current-user-history.store.js'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts index c7c67df8dc..599d63d859 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-profile.element.ts @@ -1,8 +1,9 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { - UmbModalManagerContext, UMB_CHANGE_PASSWORD_MODAL, UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts index c569439d80..e4708f1d0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts @@ -1,8 +1,10 @@ -import { UmbThemeContext, UMB_THEME_CONTEXT } from '@umbraco-cms/backoffice/themes'; +import type { UmbThemeContext} from '@umbraco-cms/backoffice/themes'; +import { UMB_THEME_CONTEXT } from '@umbraco-cms/backoffice/themes'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { ManifestTheme, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTheme} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-user-profile-app-themes') export class UmbUserProfileAppThemesElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/utils/is-current-user.function.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/utils/is-current-user.function.ts index bfa34694e9..12ed90a23c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/utils/is-current-user.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/utils/is-current-user.function.ts @@ -1,6 +1,6 @@ import { UMB_CURRENT_USER_CONTEXT } from '../current-user.context.js'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export const isCurrentUser = async (host: UmbControllerHost, userId: string) => { let currentUserContext: typeof UMB_CURRENT_USER_CONTEXT.TYPE | undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/modals/change-password/change-password-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/modals/change-password/change-password-modal.element.ts index 4b6f32389b..12c37d9482 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/modals/change-password/change-password-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/modals/change-password/change-password-modal.element.ts @@ -1,10 +1,12 @@ import { UmbUserItemRepository } from '../../user/repository/item/user-item.repository.js'; import { UMB_CURRENT_USER_CONTEXT } from '../../current-user/current-user.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, CSSResultGroup, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { +import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbChangePasswordModalData, - UmbChangePasswordModalValue, + UmbChangePasswordModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/action/manifests.ts index 9e6be0ecc3..1153828d5c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/action/manifests.ts @@ -1,5 +1,5 @@ import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const createManifest: ManifestTypes = { type: 'collectionAction', diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-name-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-name-column-layout.element.ts index e8988bbdbe..912a78edb0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-name-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-name-column-layout.element.ts @@ -1,5 +1,5 @@ import { html, LitElement, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTableItem } from '@umbraco-cms/backoffice/components'; +import type { UmbTableItem } from '@umbraco-cms/backoffice/components'; @customElement('umb-user-group-table-name-column-layout') export class UmbUserGroupTableNameColumnLayoutElement extends LitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/manifests.ts index b7f03262a8..27480c73b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/manifests.ts @@ -4,7 +4,7 @@ import { } from './repository/manifests.js'; import { manifests as collectionViewManifests } from './views/manifests.js'; import { manifests as collectionActionManifests } from './action/manifests.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_GROUP_COLLECTION_ALIAS = 'Umb.Collection.UserGroup'; const collection: ManifestTypes = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts index d24823703b..a158d4b754 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/manifests.ts @@ -1,5 +1,5 @@ import { UmbUserGroupCollectionRepository } from './user-group-collection.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_GROUP_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.UserGroupCollection'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts index 82aab2eb2e..4191d87bd3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.repository.ts @@ -1,9 +1,10 @@ -import { UmbUserGroupCollectionFilterModel } from '../../types.js'; -import { UMB_USER_GROUP_STORE_CONTEXT, UmbUserGroupStore } from '../../repository/user-group.store.js'; +import type { UmbUserGroupCollectionFilterModel } from '../../types.js'; +import type { UmbUserGroupStore } from '../../repository/user-group.store.js'; +import { UMB_USER_GROUP_STORE_CONTEXT } from '../../repository/user-group.store.js'; import { UmbUserGroupCollectionServerDataSource } from './user-group-collection.server.data-source.js'; -import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbCollectionDataSource, UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; export class UmbUserGroupCollectionRepository extends UmbBaseController implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts index 56cfece714..90f7a2b6d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/repository/user-group-collection.server.data-source.ts @@ -2,7 +2,8 @@ import type { UmbUserGroupCollectionFilterModel } from '../../types.js'; import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UserGroupResponseModel, UserGroupResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserGroupResource } from '@umbraco-cms/backoffice/backend-api'; /** * A data source for the UserGroup that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/manifests.ts index ac5e3bc10c..f60f868c07 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/manifests.ts @@ -1,5 +1,5 @@ import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import { ManifestCollectionView } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollectionView } from '@umbraco-cms/backoffice/extension-registry'; const tableCollectionView: ManifestCollectionView = { type: 'collectionView', diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts index c0efa4a779..87647d5881 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts @@ -1,13 +1,14 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UMB_DEFAULT_COLLECTION_CONTEXT, UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; -import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; +import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import '../components/user-group-table-name-column-layout.element.js'; import '../components/user-group-table-sections-column-layout.element.js'; -import { +import type { UmbTableColumn, UmbTableConfig, UmbTableDeselectedEvent, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.stories.ts index df4a14f36e..f2871f2e8b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/input-user-group/user-group-input.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import type { UmbUserGroupInputElement } from './user-group-input.element.js'; import './user-group-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts index 9001c994ef..d9be491df6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts @@ -1,7 +1,8 @@ import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; -import { ManifestUserPermission, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestUserPermission} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts index 93884ed4e7..3785a69729 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-actions/manifests.ts @@ -1,7 +1,7 @@ import { UMB_USER_GROUP_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UMB_USER_GROUP_ENTITY_TYPE } from '../index.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts index d7ba789db4..e6fa13b837 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/entity-bulk-actions/delete/delete.action.ts @@ -3,7 +3,8 @@ import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbDeleteUserGroupEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts index 667593c6fa..d8237e7bff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/modals/user-group-picker/user-group-picker-modal.element.ts @@ -2,9 +2,10 @@ import { UmbUserGroupCollectionRepository } from '../../collection/repository/in import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; -import { UMB_USER_GROUP_PICKER_MODAL, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UUIMenuItemEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UMB_USER_GROUP_PICKER_MODAL} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UUIMenuItemEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbSelectedEvent, UmbDeselectedEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-user-group-picker-modal') export class UmbUserGroupPickerModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group-item.server.data-source.ts index eeceaf190e..c7a8325165 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group-item.server.data-source.ts @@ -1,7 +1,8 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UserGroupItemResponseModel, UserGroupResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserGroupResource } from '@umbraco-cms/backoffice/backend-api'; /** * A data source for user group items that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts index 648c52a99d..11d0618d14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/sources/user-group.server.data-source.ts @@ -1,10 +1,11 @@ -import { UmbUserGroupDetailDataSource } from '../../types.js'; +import type { UmbUserGroupDetailDataSource } from '../../types.js'; import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; -import { +import type { UserGroupResponseModel, - UserGroupResource, UpdateUserGroupRequestModel, - CreateUserGroupRequestModel, + CreateUserGroupRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { + UserGroupResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts index de26ba1def..049f98058a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.repository.ts @@ -1,19 +1,21 @@ -import { UmbUserGroupDetailDataSource } from '../types.js'; +import type { UmbUserGroupDetailDataSource } from '../types.js'; import { UmbUserGroupServerDataSource } from './sources/user-group.server.data-source.js'; -import { UMB_USER_GROUP_ITEM_STORE_CONTEXT, UmbUserGroupItemStore } from './user-group-item.store.js'; +import type { UmbUserGroupItemStore } from './user-group-item.store.js'; +import { UMB_USER_GROUP_ITEM_STORE_CONTEXT } from './user-group-item.store.js'; import { UmbUserGroupItemServerDataSource } from './sources/user-group-item.server.data-source.js'; -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import { UserGroupItemResponseModel, UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { UserGroupItemResponseModel, UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbItemDataSource, UmbItemRepository, UmbDataSourceErrorResponse, DataSourceResponse, } from '@umbraco-cms/backoffice/repository'; -import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; // TODO: implement export class UmbUserGroupRepository diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts index f70b43dd99..f30f5f0a5a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group.store.ts @@ -1,6 +1,6 @@ import type { UserGroupDetails } from '../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts index 868554092e..887f736aad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/section-view/user-group-section-view.element.ts @@ -2,7 +2,7 @@ import { UMB_USER_GROUP_COLLECTION_ALIAS } from '../collection/index.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbRoute } from '@umbraco-cms/backoffice/router'; +import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @customElement('umb-user-group-section-view') export class UmbUserGroupSectionViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/types.ts index 0865ee481c..c6bf45112c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/types.ts @@ -1,10 +1,10 @@ -import { +import type { CreateUserGroupRequestModel, UpdateUserGroupRequestModel, UserGroupResponseModel, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbEntityBase } from '@umbraco-cms/backoffice/models'; -import { UmbDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; export interface UserGroupEntity extends UmbEntityBase { type: 'user-group'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts index 271b089fde..12315424f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts @@ -2,7 +2,7 @@ import { UMB_USER_GROUP_WORKSPACE_CONTEXT } from '../user-group-workspace.contex import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-user-group-default-permission-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts index 4ed1e1bb76..eeabca24bd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-granular-permission-list.element.ts @@ -1,7 +1,7 @@ import { UMB_USER_GROUP_WORKSPACE_CONTEXT } from '../user-group-workspace.context.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-user-group-granular-permission-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts index 86fc9f3e77..726a26dd4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace-editor.element.ts @@ -1,15 +1,16 @@ import { UMB_USER_GROUP_ENTITY_TYPE } from '../index.js'; import { UMB_USER_GROUP_WORKSPACE_CONTEXT } from './user-group-workspace.context.js'; -import { UmbUserInputElement } from '@umbraco-cms/backoffice/user'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbUserInputElement } from '@umbraco-cms/backoffice/user'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; -import { UmbInputSectionElement } from '@umbraco-cms/backoffice/components'; -import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; +import type { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; +import type { UmbInputSectionElement } from '@umbraco-cms/backoffice/components'; +import type { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; import './components/user-group-default-permission-list.element.js'; import './components/user-group-granular-permission-list.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts index 690b4f4e8c..2ae5dde3ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts @@ -1,7 +1,8 @@ import { UmbUserGroupRepository } from '../repository/user-group.repository.js'; import { UmbUserRepository } from '../../user/repository/user.repository.js'; +import type { + UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import type { UserGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts index b8cfe02734..475cbf6db6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts @@ -1,8 +1,10 @@ -import { UmbChangeEvent, UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; -import { ManifestUserPermission, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbChangeEvent} from '@umbraco-cms/backoffice/event'; +import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { ManifestUserPermission} from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { css, html, customElement, property, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; -import { UmbUserPermissionSettingElement } from '@umbraco-cms/backoffice/user'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbUserPermissionSettingElement } from '@umbraco-cms/backoffice/user'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-entity-user-permission-settings-list') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/conditions/user-permission.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/conditions/user-permission.condition.ts index 74e1a3d0f8..b5329783c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/conditions/user-permission.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/conditions/user-permission.condition.ts @@ -1,6 +1,6 @@ import { UMB_CURRENT_USER_CONTEXT } from '../../current-user/current-user.context.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/entity-user-permission-settings/entity-user-permission-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/entity-user-permission-settings/entity-user-permission-settings-modal.element.ts index 1c049604f4..0eb6f69665 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/entity-user-permission-settings/entity-user-permission-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/entity-user-permission-settings/entity-user-permission-settings-modal.element.ts @@ -1,11 +1,12 @@ import { html, customElement, css, nothing, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { UmbEntityUserPermissionSettingsModalData, - UmbEntityUserPermissionSettingsModalValue, + UmbEntityUserPermissionSettingsModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; -import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-entity-user-permission-settings-modal') export class UmbEntityUserPermissionSettingsModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts index aea2a4ce0e..568acb00bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/create-user.collection-action.ts @@ -1,9 +1,10 @@ import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UMB_CREATE_USER_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UmbModalManagerContext, + UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbCreateUserCollectionAction extends UmbCollectionActionBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/manifests.ts index 84999d72b4..262f90e0dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/action/manifests.ts @@ -1,6 +1,6 @@ import { UmbCreateUserCollectionAction } from './create-user.collection-action.js'; import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const createManifest: ManifestTypes = { type: 'collectionAction', diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts index b0932b7032..b0eb080a20 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/manifests.ts @@ -3,7 +3,7 @@ import { manifests as collectionRepositoryManifests } from './repository/manifes import { manifests as collectionViewManifests } from './views/manifests.js'; import { manifests as collectionActionManifests } from './action/manifests.js'; import { UmbUserCollectionContext } from './user-collection.context.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_COLLECTION_ALIAS = 'Umb.Collection.User'; const collectionManifest: ManifestTypes = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts index ec781d9f09..122f7e3dee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/manifests.ts @@ -1,5 +1,5 @@ import { UmbUserCollectionRepository } from './user-collection.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.UserCollection'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts index 06282b9841..ca175d9029 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/types.ts @@ -1,5 +1,5 @@ -import { UmbUserCollectionFilterModel, UmbUserDetailModel } from '../../types.js'; -import { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbUserCollectionFilterModel, UmbUserDetailModel } from '../../types.js'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; export interface UmbUserCollectionDataSource extends UmbCollectionDataSource {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts index b7e3e4717a..a142f1c7b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.repository.ts @@ -1,8 +1,8 @@ -import { UmbUserCollectionFilterModel } from '../../types.js'; +import type { UmbUserCollectionFilterModel } from '../../types.js'; import { UmbUserRepositoryBase } from '../../repository/user-repository-base.js'; import { UmbUserCollectionServerDataSource } from './user-collection.server.data-source.js'; -import { UmbUserCollectionDataSource } from './types.js'; -import { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; +import type { UmbUserCollectionDataSource } from './types.js'; +import type { UmbCollectionRepository } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbUserCollectionRepository extends UmbUserRepositoryBase implements UmbCollectionRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts index 17d28ea782..b42a8d8c28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/repository/user-collection.server.data-source.ts @@ -1,7 +1,8 @@ -import { type UmbUserCollectionFilterModel, type UmbUserDetailModel } from '../../types.js'; +import type { UmbUserCollectionFilterModel, UmbUserDetailModel } from '../../types.js'; import { UMB_USER_ENTITY_TYPE } from '../../entity.js'; -import { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; -import { UserResource, UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UserResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts index 2c1bd1da4d..06c781d607 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts @@ -1,5 +1,5 @@ -import { UmbUserCollectionContext } from './user-collection.context.js'; -import { +import type { UmbUserCollectionContext } from './user-collection.context.js'; +import type { UUIBooleanInputEvent, UUICheckboxElement, UUIRadioGroupElement, @@ -8,8 +8,9 @@ import { import { css, html, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; -import { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; -import { UserGroupResponseModel, UserOrderModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { UserGroupResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserOrderModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbUserGroupCollectionRepository } from '@umbraco-cms/backoffice/user-group'; @customElement('umb-user-collection-header') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts index 03373333b4..d2b30f2fa3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection.context.ts @@ -1,8 +1,8 @@ -import { UmbUserCollectionFilterModel, UmbUserDetailModel } from '../types.js'; +import type { UmbUserCollectionFilterModel, UmbUserDetailModel } from '../types.js'; import { UMB_COLLECTION_VIEW_USER_GRID } from './views/index.js'; import { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; -import { UserOrderModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UserOrderModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbUserCollectionContext extends UmbDefaultCollectionContext< UmbUserDetailModel, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/grid/user-grid-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/grid/user-grid-collection-view.element.ts index e8947ff0fc..044984e9de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/grid/user-grid-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/grid/user-grid-collection-view.element.ts @@ -1,11 +1,12 @@ import { getDisplayStateFromUserStatus } from '../../../../utils.js'; -import { UmbUserCollectionContext } from '../../user-collection.context.js'; -import { type UmbUserDetailModel } from '../../../types.js'; +import type { UmbUserCollectionContext } from '../../user-collection.context.js'; +import type { UmbUserDetailModel } from '../../../types.js'; import { css, html, nothing, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UMB_DEFAULT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UserGroupResponseModel, UserStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbUserGroupCollectionRepository } from '@umbraco-cms/backoffice/user-group'; @customElement('umb-user-grid-collection-view') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/manifests.ts index 7dbe123656..bcdccca167 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/manifests.ts @@ -1,5 +1,5 @@ import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import { ManifestCollectionView } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestCollectionView } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_COLLECTION_VIEW_USER_TABLE = 'Umb.CollectionView.User.Table'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts index f0b3f2dace..a0d4a01bf1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts @@ -1,8 +1,8 @@ -import { UmbUserCollectionContext } from '../../user-collection.context.js'; +import type { UmbUserCollectionContext } from '../../user-collection.context.js'; import type { UmbUserDetailModel } from '../../../types.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { +import type { UmbTableElement, UmbTableColumn, UmbTableDeselectedEvent, @@ -17,7 +17,7 @@ import { UmbUserGroupRepository } from '@umbraco-cms/backoffice/user-group'; import './column-layouts/name/user-table-name-column-layout.element.js'; import './column-layouts/status/user-table-status-column-layout.element.js'; -import { UserGroupItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserGroupItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-user-table-collection-view') export class UmbUserTableCollectionViewElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts index 62a2bc0612..80461c338f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts @@ -2,7 +2,7 @@ import { css, html, customElement, property, repeat, state, ifDefined } from '@u import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbDocumentRepository } from '@umbraco-cms/backoffice/document'; -import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-user-document-start-node') export class UmbUserDocumentStartNodeElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-input/user-input.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-input/user-input.stories.ts index 4f3e686298..fdbf7283c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-input/user-input.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-input/user-input.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryObj } from '@storybook/web-components'; +import type { Meta, StoryObj } from '@storybook/web-components'; import './user-input.element.js'; import type { UmbUserInputElement } from './user-input.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts index 5cd1818857..ad1b7bc408 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts @@ -1,7 +1,7 @@ import { css, html, customElement, property, repeat, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbMediaRepository } from '@umbraco-cms/backoffice/media'; @customElement('umb-user-media-start-node') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-permission-setting/user-permission-setting.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-permission-setting/user-permission-setting.element.ts index ba504104d0..4392d31fbd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-permission-setting/user-permission-setting.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-permission-setting/user-permission-setting.element.ts @@ -1,4 +1,4 @@ -import { type UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIBooleanInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-action-base.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-action-base.condition.ts index d7402c1ec6..7d4dc86a87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-action-base.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-action-base.condition.ts @@ -1,8 +1,8 @@ -import { UmbUserDetailModel } from '../types.js'; -import { UmbUserWorkspaceContext } from '../workspace/user-workspace.context.js'; +import type { UmbUserDetailModel } from '../types.js'; +import type { UmbUserWorkspaceContext } from '../workspace/user-workspace.context.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { isCurrentUser } from '@umbraco-cms/backoffice/current-user'; -import { +import type { UmbConditionConfigBase, UmbConditionControllerArguments, UmbExtensionCondition, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-delete-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-delete-action.condition.ts index 6b018156bd..431efbb26e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-delete-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-delete-action.condition.ts @@ -1,5 +1,5 @@ import { UmbUserActionConditionBase } from './user-allow-action-base.condition.js'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-disable-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-disable-action.condition.ts index 7af87ee8c9..97d09e22c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-disable-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-disable-action.condition.ts @@ -1,6 +1,6 @@ import { UmbUserActionConditionBase } from './user-allow-action-base.condition.js'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-enable-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-enable-action.condition.ts index af50746b39..a6bfc34437 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-enable-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-enable-action.condition.ts @@ -1,6 +1,6 @@ import { UmbUserActionConditionBase } from './user-allow-action-base.condition.js'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-unlock-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-unlock-action.condition.ts index 2183c0d6d5..5905adc8c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-unlock-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/user-allow-unlock-action.condition.ts @@ -1,6 +1,6 @@ import { UmbUserActionConditionBase } from './user-allow-action-base.condition.js'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts index 8f89d5063e..792039638c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/change-password/change-user-password.action.ts @@ -1,6 +1,6 @@ -import { UmbChangeUserPasswordRepository } from '../../repository/change-password/change-user-password.repository.js'; +import type { UmbChangeUserPasswordRepository } from '../../repository/change-password/change-user-password.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts index 588ed28ed1..8baa41765e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts @@ -1,7 +1,7 @@ -import { type UmbDisableUserRepository } from '../../repository/disable/disable-user.repository.js'; +import type { UmbDisableUserRepository } from '../../repository/disable/disable-user.repository.js'; import { UmbUserItemRepository } from '../../repository/item/user-item.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts index 85fd8d5649..112a32986b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts @@ -1,7 +1,7 @@ -import { type UmbEnableUserRepository } from '../../repository/enable/enable-user.repository.js'; +import type { UmbEnableUserRepository } from '../../repository/enable/enable-user.repository.js'; import { UmbUserItemRepository } from '../../repository/item/user-item.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/manifests.ts index 7722238f39..552ff5bdae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/manifests.ts @@ -11,7 +11,7 @@ import { UmbEnableUserEntityAction } from './enable/enable-user.action.js'; import { UmbChangeUserPasswordEntityAction } from './change-password/change-user-password.action.js'; import { UmbUnlockUserEntityAction } from './unlock/unlock-user.action.js'; import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts index 11745c49b0..6678573259 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts @@ -1,7 +1,7 @@ -import { type UmbUnlockUserRepository } from '../../repository/index.js'; +import type { UmbUnlockUserRepository } from '../../repository/index.js'; import { UmbUserItemRepository } from '../../repository/item/user-item.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts index 74a04fc394..a01a74021b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/delete/delete.action.ts @@ -1,9 +1,10 @@ -import { UmbUserDetailRepository } from '../../repository/index.js'; +import type { UmbUserDetailRepository } from '../../repository/index.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbUserDeleteEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/disable/disable.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/disable/disable.action.ts index 10e82ae0d7..5a2e1a7cf7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/disable/disable.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/disable/disable.action.ts @@ -1,5 +1,5 @@ -import { UmbDisableUserRepository } from '../../repository/disable/disable-user.repository.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbDisableUserRepository } from '../../repository/disable/disable-user.repository.js'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; export class UmbDisableUserEntityBulkAction extends UmbEntityBulkActionBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/enable/enable.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/enable/enable.action.ts index 1d0428eb7c..22ab8a58fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/enable/enable.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/enable/enable.action.ts @@ -1,6 +1,6 @@ -import { UmbEnableUserRepository } from '../../repository/enable/enable-user.repository.js'; +import type { UmbEnableUserRepository } from '../../repository/enable/enable-user.repository.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbEnableUserEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/manifests.ts index fd6c25e7de..d88c2c3316 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/manifests.ts @@ -10,7 +10,7 @@ import { UmbEnableUserEntityBulkAction } from './enable/enable.action.js'; import { UmbSetGroupUserEntityBulkAction } from './set-group/set-group.action.js'; import { UmbUnlockUserEntityBulkAction } from './unlock/unlock.action.js'; import { UmbDisableUserEntityBulkAction } from './disable/disable.action.js'; -import { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; const entityActions: Array = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts index 5400af8eb0..855b2fb275 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/set-group/set-group.action.ts @@ -1,8 +1,9 @@ -import { UmbUserRepository } from '../../repository/user.repository.js'; +import type { UmbUserRepository } from '../../repository/user.repository.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbSetGroupUserEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/unlock/unlock.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/unlock/unlock.action.ts index 9b4073e218..46bde134e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/unlock/unlock.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-bulk-actions/unlock/unlock.action.ts @@ -1,6 +1,6 @@ -import { type UmbUnlockUserRepository } from '../../repository/index.js'; +import type { UmbUnlockUserRepository } from '../../repository/index.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export class UmbUnlockUserEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts index 3ecee0eedf..13eff04e73 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/invite-user.collection-action.ts @@ -1,7 +1,8 @@ import { UMB_INVITE_USER_MODAL } from '../modal/index.js'; import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbInviteUserCollectionAction extends UmbCollectionActionBase { #modalManagerContext: UmbModalManagerContext | undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/manifests.ts index d414f41f07..296eb22ea1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/collection-action/manifests.ts @@ -1,6 +1,6 @@ import { UmbInviteUserCollectionAction } from './invite-user.collection-action.js'; import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const inviteManifest: ManifestTypes = { type: 'collectionAction', diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/manifests.ts index 9175766d77..bdd9989993 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/manifests.ts @@ -2,7 +2,7 @@ import { UMB_INVITE_USER_REPOSITORY_ALIAS } from '../repository/manifests.js'; import { UMB_USER_ENTITY_TYPE } from '../../entity.js'; import { UmbResendInviteToUserEntityAction } from './resend-invite/resend-invite.action.js'; import { manifest as conditionManifest } from './resend-invite/resend-invite.action.condition.js'; -import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts index 267ae20c27..44d223d1dd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts @@ -1,6 +1,6 @@ import { UmbUserActionConditionBase } from '../../../conditions/user-allow-action-base.condition.js'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; -import { +import type { ManifestCondition, UmbConditionConfigBase, UmbConditionControllerArguments, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts index 0be41309ae..ea36da0b9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.ts @@ -1,7 +1,7 @@ -import { type UmbEnableUserRepository } from '../../../repository/enable/enable-user.repository.js'; +import type { UmbEnableUserRepository } from '../../../repository/enable/enable-user.repository.js'; import { UMB_RESEND_INVITE_TO_USER_MODAL } from '../../index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { type UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbResendInviteToUserEntityAction extends UmbEntityActionBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/invite/user-invite-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/invite/user-invite-modal.element.ts index efed76bbb1..04cde4e6ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/invite/user-invite-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/invite/user-invite-modal.element.ts @@ -1,4 +1,4 @@ -import { UmbUserGroupInputElement } from '../../../../user-group/components/input-user-group/user-group-input.element.js'; +import type { UmbUserGroupInputElement } from '../../../../user-group/components/input-user-group/user-group-input.element.js'; import { UmbInviteUserRepository } from '../../repository/invite-user.repository.js'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts index 22b54d81f5..94817665a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/modal/resend-invite/resend-invite-to-user-modal.element.ts @@ -1,5 +1,5 @@ import { UmbInviteUserRepository } from '../../repository/invite-user.repository.js'; -import { +import type { UmbResendInviteToUserModalData, UmbResendInviteToUserModalValue, } from './resend-invite-to-user-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user-server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user-server.data-source.ts index 8c2e71d002..8dc7d87d2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user-server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user-server.data-source.ts @@ -1,8 +1,9 @@ import { UmbUserServerDataSource } from '../../repository/detail/user-detail.server.data-source.js'; -import { type UmbInviteUserDataSource } from './types.js'; -import { +import type { UmbInviteUserDataSource } from './types.js'; +import type { InviteUserRequestModel, - ResendInviteUserRequestModel, + ResendInviteUserRequestModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts index 7ef2325c05..73b9c01692 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/invite-user.repository.ts @@ -1,7 +1,7 @@ import { UmbUserRepositoryBase } from '../../repository/user-repository-base.js'; import { UmbInviteUserServerDataSource } from './invite-user-server.data-source.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { InviteUserRequestModel, ResendInviteUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { InviteUserRequestModel, ResendInviteUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbInviteUserRepository extends UmbUserRepositoryBase { #inviteSource: UmbInviteUserServerDataSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts index 218e4595c1..5032efa8e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/manifests.ts @@ -1,5 +1,5 @@ import { UmbInviteUserRepository } from './invite-user.repository.js'; -import { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_INVITE_USER_REPOSITORY_ALIAS = 'Umb.Repository.User.Invite'; const inviteRepository: ManifestRepository = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/types.ts index ca096d0a21..57e9c692c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/repository/types.ts @@ -1,6 +1,6 @@ -import { UmbUserDetailModel } from '../../types.js'; -import { InviteUserRequestModel, ResendInviteUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import { DataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbUserDetailModel } from '../../types.js'; +import type { InviteUserRequestModel, ResendInviteUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbInviteUserDataSource { invite(requestModel: InviteUserRequestModel): Promise>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts index 61ec621963..55fc354eae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-modal.element.ts @@ -1,12 +1,13 @@ import { UmbUserDetailRepository } from '../../repository/index.js'; -import { type UmbUserGroupInputElement } from '@umbraco-cms/backoffice/user-group'; +import type { UmbUserGroupInputElement } from '@umbraco-cms/backoffice/user-group'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, query } from '@umbraco-cms/backoffice/external/lit'; +import type { + UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement, UMB_MODAL_MANAGER_CONTEXT, - UMB_CREATE_USER_SUCCESS_MODAL, - UmbModalManagerContext, + UMB_CREATE_USER_SUCCESS_MODAL } from '@umbraco-cms/backoffice/modal'; @customElement('umb-user-create-modal') diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts index cc81e3a8eb..6e0a626157 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts @@ -1,18 +1,20 @@ import { UmbUserItemRepository } from '../../repository/item/user-item.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIInputPasswordElement } from '@umbraco-cms/backoffice/external/uui'; -import { +import type { UUIInputPasswordElement } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbNotificationDefaultData, - UmbNotificationContext, + UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT, } from '@umbraco-cms/backoffice/notification'; -import { +import type { UmbCreateUserSuccessModalData, - UmbCreateUserSuccessModalValue, + UmbCreateUserSuccessModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement, } from '@umbraco-cms/backoffice/modal'; -import { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-user-create-success-modal') export class UmbUserCreateSuccessModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-picker/user-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-picker/user-picker-modal.element.ts index 389459999a..f4b5b96e2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-picker/user-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-picker/user-picker-modal.element.ts @@ -1,9 +1,11 @@ import { UmbUserCollectionRepository } from '../../collection/repository/user-collection.repository.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, state, ifDefined, PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; -import { UmbUserPickerModalData, UmbUserPickerModalValue, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import type { UmbUserPickerModalData, UmbUserPickerModalValue} from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; -import { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-user-picker-modal') export class UmbUserPickerModalElement extends UmbModalBaseElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts index 8e3208fb04..6bcdaf481e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/change-password/change-user-password.repository.ts @@ -1,7 +1,7 @@ import { UmbUserRepositoryBase } from '../user-repository-base.js'; import { UmbChangeUserPasswordServerDataSource } from './change-user-password.server.data-source.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; export class UmbChangeUserPasswordRepository extends UmbUserRepositoryBase { #changePasswordSource: UmbChangeUserPasswordServerDataSource; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts index ef0f10d3b2..5d5ebe2427 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.repository.ts @@ -1,10 +1,10 @@ import { UmbUserRepositoryBase } from '../user-repository-base.js'; -import { UmbUserDetailDataSource } from '../../types.js'; +import type { UmbUserDetailDataSource } from '../../types.js'; import { UmbUserServerDataSource } from './user-detail.server.data-source.js'; -import { IUmbUserDetailRepository } from './types.js'; +import type { IUmbUserDetailRepository } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTemporaryFileRepository } from '@umbraco-cms/backoffice/temporary-file'; -import { CreateUserRequestModel, UpdateUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateUserRequestModel, UpdateUserRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; export class UmbUserDetailRepository extends UmbUserRepositoryBase implements IUmbUserDetailRepository { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.server.data-source.ts index bee67b87e6..8b1a119c0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/detail/user-detail.server.data-source.ts @@ -1,14 +1,16 @@ -import { UmbUserDetailModel, UmbUserDetailDataSource } from '../../types.js'; +import type { UmbUserDetailModel, UmbUserDetailDataSource } from '../../types.js'; import { UMB_USER_ENTITY_TYPE } from '../../entity.js'; -import { +import type { DataSourceResponse, - UmbDataSourceErrorResponse, + UmbDataSourceErrorResponse} from '@umbraco-cms/backoffice/repository'; +import { extendDataSourceResponseData, } from '@umbraco-cms/backoffice/repository'; -import { +import type { CreateUserRequestModel, UpdateUserRequestModel, - UserPresentationBaseModel, + UserPresentationBaseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserResource, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.server.data-source.ts index 6116753c5a..526f16f530 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/disable-user.server.data-source.ts @@ -1,4 +1,4 @@ -import { type UmbDisableUserDataSource } from './types.js'; +import type { UmbDisableUserDataSource } from './types.js'; import { UserResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/types.ts index 8a206deb90..968fbdf151 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/disable/types.ts @@ -1,4 +1,4 @@ -import { UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbDisableUserDataSource { disable(userIds: string[]): Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts index 71b8dde49b..db6442cbe3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.repository.ts @@ -1,6 +1,6 @@ import { UmbUserRepositoryBase } from '../user-repository-base.js'; import { UmbEnableUserServerDataSource } from './enable-user.server.data-source.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbEnableUserRepository extends UmbUserRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.server.data-source.ts index e020b34fbd..823bc47dd1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/enable-user.server.data-source.ts @@ -1,4 +1,4 @@ -import { type UmbEnableUserDataSource } from './types.js'; +import type { UmbEnableUserDataSource } from './types.js'; import { UserResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/types.ts index 68e16426a4..f36a1f80a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/enable/types.ts @@ -1,4 +1,4 @@ -import { UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbEnableUserDataSource { enable(userIds: string[]): Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts index 2bdc867ee6..38e3aa6158 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/manifests.ts @@ -1,6 +1,6 @@ import { UmbUserItemStore } from './user-item.store.js'; import { UmbUserItemRepository } from './user-item.repository.js'; -import { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestItemStore, ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_USER_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.User.Item'; export const UMB_USER_ITEM_STORE_ALIAS = 'Umb.ItemStore.User'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts index bfd7f73841..3f15eaaa15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts @@ -2,7 +2,7 @@ import { UmbUserItemServerDataSource } from './user-item.server.data-source.js'; import { UMB_USER_ITEM_STORE_CONTEXT } from './user-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbUserItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts index fb53ae89d4..3087588765 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts @@ -1,7 +1,8 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { UserItemResponseModel, UserResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UserItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import { UserResource } from '@umbraco-cms/backoffice/backend-api'; /** * A data source for user items that fetches data from the server diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/sources/user-set-group.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/sources/user-set-group.server.data-source.ts index b2d90a58e4..3eb373def2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/sources/user-set-group.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/sources/user-set-group.server.data-source.ts @@ -1,4 +1,4 @@ -import { UmbUserSetGroupDataSource } from '../../types.js'; +import type { UmbUserSetGroupDataSource } from '../../types.js'; import { UserResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/types.ts index 33d388bc08..53946707e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/types.ts @@ -1,4 +1,4 @@ -import { UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; export interface UmbUnlockUserDataSource { unlock(userIds: string[]): Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts index 4ff8f3e402..387822e9d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.repository.ts @@ -1,6 +1,6 @@ import { UmbUserRepositoryBase } from '../user-repository-base.js'; import { UmbUnlockUserServerDataSource } from './unlock-user.server.data-source.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbUnlockUserRepository extends UmbUserRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts index a710a6f87c..ce455f1353 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/unlock/unlock-user.server.data-source.ts @@ -1,4 +1,4 @@ -import { type UmbUnlockUserDataSource } from './types.js'; +import type { UmbUnlockUserDataSource } from './types.js'; import { UserResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts index a54a8e7dcb..038d76cfc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user-repository-base.ts @@ -1,7 +1,10 @@ -import { UMB_USER_STORE_CONTEXT, UmbUserStore } from './user.store.js'; -import { UMB_USER_ITEM_STORE_CONTEXT, UmbUserItemStore } from './item/user-item.store.js'; +import type { UmbUserStore } from './user.store.js'; +import { UMB_USER_STORE_CONTEXT } from './user.store.js'; +import type { UmbUserItemStore } from './item/user-item.store.js'; +import { UMB_USER_ITEM_STORE_CONTEXT } from './item/user-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_NOTIFICATION_CONTEXT, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbUserRepositoryBase extends UmbRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.repository.ts index 0749816ab4..814d229a50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.repository.ts @@ -1,4 +1,4 @@ -import { UmbUserSetGroupDataSource } from '../types.js'; +import type { UmbUserSetGroupDataSource } from '../types.js'; import { UmbUserSetGroupsServerDataSource } from './sources/user-set-group.server.data-source.js'; import { UmbUserRepositoryBase } from './user-repository-base.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts index ae02be34b9..654d48017c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/user.store.ts @@ -1,8 +1,8 @@ -import { type UmbUserDetailModel } from '../index.js'; +import type { UmbUserDetailModel } from '../index.js'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; export const UMB_USER_STORE_CONTEXT = new UmbContextToken('UmbUserStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/types.ts index b57e801f0e..3fec9fcb40 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/types.ts @@ -8,7 +8,7 @@ import type { UserStateModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDataSource, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbDataSource, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository'; export type UmbUserDetailModel = UserResponseModel & { entityType: 'user'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts index d63b9ad69c..5860dca7d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts @@ -2,11 +2,11 @@ import { UMB_USER_WORKSPACE_CONTEXT } from '../../user-workspace.context.js'; import { html, customElement, state, css, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; -import { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; -import { UmbUserGroupInputElement } from '@umbraco-cms/backoffice/user-group'; +import type { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document'; +import type { UmbInputMediaElement } from '@umbraco-cms/backoffice/media'; +import type { UmbUserGroupInputElement } from '@umbraco-cms/backoffice/user-group'; @customElement('umb-user-workspace-access-settings') export class UmbUserWorkspaceAccessSettingsElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-info/user-workspace-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-info/user-workspace-info.element.ts index c10b796dbb..c393c9cdde 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-info/user-workspace-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-info/user-workspace-info.element.ts @@ -1,6 +1,6 @@ import { getDisplayStateFromUserStatus } from '../../../../utils.js'; import { UMB_USER_WORKSPACE_CONTEXT } from '../../user-workspace.context.js'; -import { UmbUserDetailModel } from '../../../types.js'; +import type { UmbUserDetailModel } from '../../../types.js'; import { html, customElement, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-profile-settings/user-workspace-profile-settings.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-profile-settings/user-workspace-profile-settings.element.ts index ae4f4d3af1..ff15d96eb9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-profile-settings/user-workspace-profile-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-profile-settings/user-workspace-profile-settings.element.ts @@ -2,9 +2,9 @@ import { UMB_USER_WORKSPACE_CONTEXT } from '../../user-workspace.context.js'; import { html, customElement, state, ifDefined, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbUiCultureInputElement } from '@umbraco-cms/backoffice/localization'; +import type { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import type { UmbUiCultureInputElement } from '@umbraco-cms/backoffice/localization'; @customElement('umb-user-workspace-profile-settings') export class UmbUserWorkspaceProfileSettingsElement extends UmbLitElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace-editor.element.ts index 217d59907e..5cefbf8308 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace-editor.element.ts @@ -1,7 +1,8 @@ -import { type UmbUserDetailModel } from '../index.js'; +import type { UmbUserDetailModel } from '../index.js'; import { UMB_USER_ENTITY_TYPE } from '../entity.js'; -import { UmbUserWorkspaceContext } from './user-workspace.context.js'; -import { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; +import type { UmbUserWorkspaceContext } from './user-workspace.context.js'; +import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts index b66160bc72..b6a33fe970 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user-workspace.context.ts @@ -1,8 +1,9 @@ -import { type UmbUserDetailModel } from '../types.js'; +import type { UmbUserDetailModel } from '../types.js'; import { UMB_USER_ENTITY_TYPE } from '../entity.js'; import { UmbUserDetailRepository } from '../repository/index.js'; +import type { + UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; import { - UmbSaveableWorkspaceContextInterface, UmbEditableWorkspaceContextBase, } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts b/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts index 47fd1a9126..636a87e5e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; import { getDisplayStateFromUserStatus } from './utils.js'; -import { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; describe('UmbUserExtensions', () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts index d880a9b44b..e94253c37d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts @@ -1,5 +1,5 @@ -import { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; -import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import type { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; interface DisplayStatus { look: InterfaceLook; diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts index b3e80000e2..0d77f7143e 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts @@ -13,6 +13,9 @@ * License for the specific language governing permissions and limitations under * the License. */ +import type { + LocationLike, + StringMap} from '@umbraco-cms/backoffice/external/openid'; import { BaseTokenRequestHandler, BasicQueryStringUtils, @@ -26,9 +29,7 @@ import { GRANT_TYPE_REFRESH_TOKEN, RevokeTokenRequest, TokenRequest, - TokenResponse, - LocationLike, - StringMap, + TokenResponse } from '@umbraco-cms/backoffice/external/openid'; const requestor = new FetchRequestor(); diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts index 3ec2beb473..b307a4b7b9 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts @@ -1,4 +1,4 @@ -import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; export interface IUmbAuthContext { isAuthorized: Observable; diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts index f1ce0984da..b7c70219f0 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts @@ -1,4 +1,4 @@ -import { IUmbAuthContext } from './auth.context.interface.js'; +import type { IUmbAuthContext } from './auth.context.interface.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export const UMB_AUTH_CONTEXT = new UmbContextToken('UmbAuthContext'); diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts index af3768cad2..8a0a298e06 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts @@ -1,7 +1,7 @@ -import { type IUmbAuthContext } from './auth.context.interface.js'; +import type { IUmbAuthContext } from './auth.context.interface.js'; import { UmbAuthFlow } from './auth-flow.js'; import { UMB_AUTH_CONTEXT } from './auth.context.token.js'; -import { type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts index 5f9aa40124..a9720878ef 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/icon-registry/icon.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import icons from '../../../src/shared/icon-registry/icons/icons.json'; import { html, repeat } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts b/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts index 5d65a25807..16b3a99a80 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/resources/resource.controller.ts @@ -1,11 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { isApiError, isCancelError, isCancelablePromise } from './apiTypeValidators.function.js'; -import { - UmbNotificationContext, - UMB_NOTIFICATION_CONTEXT, - UmbNotificationOptions, -} from '@umbraco-cms/backoffice/notification'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_NOTIFICATION_CONTEXT, type UmbNotificationOptions } from '@umbraco-cms/backoffice/notification'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; @@ -13,7 +9,7 @@ import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; export class UmbResourceController extends UmbBaseController { #promise: Promise; - #notificationContext?: UmbNotificationContext; + #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; constructor(host: UmbControllerHost, promise: Promise, alias?: string) { super(host, alias); From c0c89448daf0934fffbaa139fcbd9c84f4b6e1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 20:10:12 +0100 Subject: [PATCH 568/786] hide multiple lit versions log from tests --- src/Umbraco.Web.UI.Client/web-test-runner.config.mjs | 3 +++ 1 file changed, 3 insertions(+) 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 9cf753f9a6..7a0d981ce5 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -157,6 +157,9 @@ export default { if (args[0].indexOf('Lit is in dev mode.') === 0) { return; } + if (args[0].indexOf('Multiple versions of Lit loaded.') === 0) { + return; + } systemWarn(...args); }; From 7152f2a3f40013f4dd600af9bbaa67e71f2f9738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 20:19:59 +0100 Subject: [PATCH 569/786] media tree server data type imports --- .../media/media/tree/media-tree.server.data-source.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index f707b48039..8902aeb618 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -1,6 +1,6 @@ -import { UmbMediaTreeItemModel } from './types.js'; +import type { UmbMediaTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import { MediaResource, MediaTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { MediaResource, type MediaTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** From 089ca4b26cd922d3b2b59bd45c5d6e49a47b8091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 20:22:54 +0100 Subject: [PATCH 570/786] element mixin type imports --- .../src/libs/element-api/element.mixin.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts index 3bc366e655..8f3c361bbf 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts @@ -1,15 +1,10 @@ import { UmbLocalizeController } from '@umbraco-cms/backoffice/localization-api'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/extension-api'; -import { UmbControllerHostElementMixin , UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { - UmbContextToken, - UmbContextCallback} from '@umbraco-cms/backoffice/context-api'; -import { - UmbContextConsumerController, - UmbContextProviderController, -} from '@umbraco-cms/backoffice/context-api'; -import type { ObserverCallback} from '@umbraco-cms/backoffice/observable-api'; +import { UmbControllerHostElementMixin, type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbContextToken, UmbContextCallback } from '@umbraco-cms/backoffice/context-api'; +import { UmbContextConsumerController, UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; +import type { ObserverCallback } from '@umbraco-cms/backoffice/observable-api'; import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; export declare class UmbElement extends UmbControllerHostElement { From 8b79460299885ef86b469445d251df6a45552261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 20:22:58 +0100 Subject: [PATCH 571/786] interface --- .../src/libs/controller-api/controller-host.interface.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts index 038b1e2e72..b9a8d36586 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/controller-api/controller-host.interface.ts @@ -1,6 +1,6 @@ import type { UmbController } from './controller.interface.js'; -export declare class UmbControllerHost { +export interface UmbControllerHost { hasController(controller: UmbController): boolean; getControllers(filterMethod: (ctrl: UmbController) => boolean): UmbController[]; addController(controller: UmbController): void; From e5b166e3a0c735cdfdf01d744ca3d9c4a6b46fa9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 20:31:35 +0100 Subject: [PATCH 572/786] add reload children to document types --- .../document-types/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts index a4992d329c..9a9bc9e598 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/manifests.ts @@ -6,6 +6,7 @@ import { import { UmbDocumentTypeTreeRepository } from './document-type-tree.repository.js'; import { UmbDocumentTypeTreeStore } from './document-type.tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; +import { manifests as reloadManifests } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -54,4 +55,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests, ...reloadManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..15f2a1174c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,20 @@ +import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/detail/manifests.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import { type ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentType.Tree.ReloadTreeItemChildren', + name: 'Reload Document Type Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: UMB_DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS, + entityTypes: [UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE], + }, + }, +]; From c843c42d2fea31e839717cc3e4ddc2a548fc1b1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 20:34:11 +0100 Subject: [PATCH 573/786] remove unused styles --- .../property-editor-ui-markdown-editor.element.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts index 53b3bf61d6..eb1c2b39a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.element.ts @@ -1,7 +1,6 @@ import type { UmbInputMarkdownElement } from '../../../components/input-markdown-editor/index.js'; import '../../../components/input-markdown-editor/index.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -39,8 +38,6 @@ export class UmbPropertyEditorUIMarkdownEditorElement extends UmbLitElement impl @change=${this.#onChange} .value=${this.value}>`; } - - static styles = [UmbTextStyles]; } export default UmbPropertyEditorUIMarkdownEditorElement; From 2d7a40fb0461475cb648e8de957f856fad7f3492 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 20:36:25 +0100 Subject: [PATCH 574/786] add document type mock folder handlers --- .../handlers/document-type/folder.handlers.ts | 44 +++++++++++++++++++ .../src/mocks/handlers/document-type/index.ts | 3 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/folder.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/folder.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/folder.handlers.ts new file mode 100644 index 0000000000..565890e0b3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/folder.handlers.ts @@ -0,0 +1,44 @@ +const { rest } = window.MockServiceWorker; +import { umbDocumentTypeMockDb } from '../../data/document-type/document-type.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const folderHandlers = [ + rest.post(umbracoPath(`${UMB_SLUG}/folder`), async (req, res, ctx) => { + const requestBody = await req.json(); + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const id = umbDocumentTypeMockDb.folder.create(requestBody); + + return res( + ctx.status(201), + ctx.set({ + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, + }), + ); + }), + + rest.get(umbracoPath(`${UMB_SLUG}/folder/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const response = umbDocumentTypeMockDb.folder.read(id); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.put(umbracoPath(`${UMB_SLUG}/folder/:id`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400, 'no id found')); + const requestBody = await req.json(); + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbDocumentTypeMockDb.folder.update(id, requestBody); + return res(ctx.status(200)); + }), + + rest.delete(umbracoPath(`${UMB_SLUG}/folder/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + umbDocumentTypeMockDb.folder.delete(id); + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts index 30239f1212..c905d34111 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts @@ -1,5 +1,6 @@ import { treeHandlers } from './tree.handlers.js'; import { detailHandlers } from './detail.handlers.js'; import { itemHandlers } from './item.handlers.js'; +import { folderHandlers } from './folder.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...detailHandlers]; +export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...detailHandlers]; From d117e130c0875277e9518d7116d92aae3c507702 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 24 Jan 2024 20:50:33 +0100 Subject: [PATCH 575/786] allow reload children for document type folders --- .../tree/reload-tree-item-children/manifests.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts index 15f2a1174c..63f50a58e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts @@ -1,4 +1,8 @@ -import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; +import { + UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, +} from '../../entity.js'; import { UMB_DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS } from '../../repository/detail/manifests.js'; import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; import { type ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -14,7 +18,11 @@ export const manifests: Array = [ icon: 'icon-refresh', label: 'Reload children...', repositoryAlias: UMB_DOCUMENT_TYPE_DETAIL_REPOSITORY_ALIAS, - entityTypes: [UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE], + entityTypes: [ + UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_ENTITY_TYPE, + UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, + ], }, }, ]; From 64ecd3c4b9918aac45548ec3b3d75cdfe16d69ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 24 Jan 2024 21:02:30 +0100 Subject: [PATCH 576/786] out comment markdown test --- .../markdown-editor/property-editor-ui-markdown-editor.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts index 5626c6e1ff..10ae4f4a86 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/markdown-editor/property-editor-ui-markdown-editor.test.ts @@ -1,4 +1,4 @@ -import { expect, fixture, html } from '@open-wc/testing'; +/*import { expect, fixture, html } from '@open-wc/testing'; import { UmbPropertyEditorUIMarkdownEditorElement } from './property-editor-ui-markdown-editor.element.js'; import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; @@ -19,3 +19,4 @@ describe('UmbPropertyEditorUIMarkdownEditorElement', () => { }); } }); +*/ From ec0bdebbb4c003cfa6e4671a2501a7e2a2dcd052 Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Wed, 24 Jan 2024 21:17:53 +0100 Subject: [PATCH 577/786] #1136 adjust call to set value on super --- .../core/components/input-tiny-mce/input-tiny-mce.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index e7f94896c4..457b945401 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -44,7 +44,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { } set value(newValue: FormDataEntryValue | FormData) { - this._value = newValue; + super.value = newValue; const newContent = newValue?.toString() ?? ''; if(this.#editorRef && this.#editorRef.getContent() != newContent) { From c3402528f3a4b048ea3cb538b75a761d3dd4d75d Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Wed, 24 Jan 2024 23:29:07 +0100 Subject: [PATCH 578/786] Adjust property-layout to avoid auto --- .../core/property/property-layout/property-layout.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.element.ts index d5971aea5a..58ab5a5bd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property-layout/property-layout.element.ts @@ -69,7 +69,7 @@ export class UmbPropertyLayoutElement extends LitElement { css` :host { display: grid; - grid-template-columns: 200px auto; + grid-template-columns: 200px minmax(0,1fr); column-gap: var(--uui-size-layout-2); border-bottom: 1px solid var(--uui-color-divider); padding: var(--uui-size-layout-1) 0; From 8f437cd2686d0a21af46ba27d48098228e98b0ba Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Wed, 24 Jan 2024 23:52:51 +0100 Subject: [PATCH 579/786] #1154 Revert z-index change to RTE --- .../core/components/input-tiny-mce/input-tiny-mce.element.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index d868cd5d79..cd632093e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -344,10 +344,6 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { line-height: 1 !important; } - /* Solves issue 1019 by lowering un-needed z-index on header.*/ - .tox.tox-tinymce .tox-editor-header { - z-index:0; - } `, ]; } From f07ef1d6e5ca9fe3342cf1e1dbdb3787ba505043 Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Thu, 25 Jan 2024 01:45:13 +0100 Subject: [PATCH 580/786] #846 make data type picker modal medium --- .../core/modal/token/data-type-picker-flow-modal.token.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-flow-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-flow-modal.token.ts index 8e9250b345..d6acec2fda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-flow-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/data-type-picker-flow-modal.token.ts @@ -14,6 +14,6 @@ export const UMB_DATA_TYPE_PICKER_FLOW_MODAL = new UmbModalToken< >('Umb.Modal.DataTypePickerFlow', { modal: { type: 'sidebar', - size: 'small', + size: 'medium', }, }); From b2d10ba764da37601ad5903460ceab217587563f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 25 Jan 2024 09:04:27 +0100 Subject: [PATCH 581/786] eslint ignorer --- .../packages/media/media/tree/media-tree.server.data-source.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index 8902aeb618..ea9fb31c1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -27,6 +27,7 @@ export class UmbMediaTreeServerDataSource extends UmbTreeServerDataSourceBase< } } +// eslint-disable-next-line local-rules/no-direct-api-import const getRootItems = () => MediaResource.getTreeMediaRoot({}); const getChildrenOf = (parentUnique: string | null) => { From 2eee77581689d2684763a00e644e6f6e86a7686d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 09:59:31 +0100 Subject: [PATCH 582/786] clean up when item is destroyed --- .../tree/tree-item-base/tree-item-base.context.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index 8a089eccfe..d04e4381ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -9,8 +9,8 @@ import { UmbBooleanState, UmbDeepState, UmbStringState } from '@umbraco-cms/back import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UMB_ACTION_EVENT_CONTEXT, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; -import { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action'; +import { UMB_ACTION_EVENT_CONTEXT, type UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import type { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action'; import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; export type UmbTreeItemUniqueFunction = ( @@ -233,6 +233,14 @@ export class UmbTreeItemContextBase constructPath(pathname: string, entityType: string, unique: string | null) { return `section/${pathname}/workspace/${entityType}/edit/${unique}`; } + + destroy(): void { + this.#actionEventContext?.removeEventListener( + UmbReloadTreeItemChildrenRequestEntityActionEvent.TYPE, + this.#onReloadRequest as EventListener, + ); + super.destroy(); + } } export const UMB_TREE_ITEM_CONTEXT = new UmbContextToken>('UmbTreeItemContext'); From 1f3e7a4b9615ff55922df54dabcd02c251f34956 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 10:20:36 +0100 Subject: [PATCH 583/786] reload document tree items --- .../documents/documents/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts index cad95f0d15..7470671496 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentTreeRepository } from './document-tree.repository.js'; import { UmbDocumentTreeStore } from './document-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..dfd8b3f192 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,20 @@ +import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Document.Tree.ReloadTreeItemChildren', + name: 'Reload Document Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + entityTypes: [UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE], + }, + }, +]; From 974060cb9a7df3be92edab4b5648c77f9add45e6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 10:24:26 +0100 Subject: [PATCH 584/786] add reload to document recycle bin --- .../documents/recycle-bin/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts index 62e7712236..616228072f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbDocumentRecycleBinTreeRepository } from './document-recycle-bin-tree.repository.js'; import { UmbDocumentRecycleBinTreeStore } from './document-recycle-bin-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..2fc615bd39 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.DocumentRecycleBin.Tree.ReloadTreeItemChildren', + name: 'Reload Document Recycle Bin Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.DocumentRecycleBin.Tree', + entityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE], + }, + }, +]; From 77e2b7e9d631ee132074e65bba36cc098a96ef91 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 10:35:32 +0100 Subject: [PATCH 585/786] add reload to media tree --- .../packages/media/media/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts index 5ec3605b54..b6334b0d88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_MEDIA_ENTITY_TYPE, UMB_MEDIA_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMediaTreeRepository } from './media-tree.repository.js'; import { UmbMediaTreeStore } from './media-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..bb52bb908e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_MEDIA_ENTITY_TYPE, UMB_MEDIA_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Media.Tree.ReloadTreeItemChildren', + name: 'Reload Media Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.Media.Tree', + entityTypes: [UMB_MEDIA_ENTITY_TYPE, UMB_MEDIA_ROOT_ENTITY_TYPE], + }, + }, +]; From 7fc51aecb8f7eba75e733eb5dc7b8321a19afb91 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 10:38:21 +0100 Subject: [PATCH 586/786] add reload media type children --- .../media/media-types/tree/manifests.ts | 11 +++++++++-- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts index b53de760d7..448ac15eba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/manifests.ts @@ -6,7 +6,7 @@ import { import { UmbMediaTypeTreeRepository } from './media-type-tree.repository.js'; import { UmbMediaTypeTreeStore } from './media-type-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; - +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -51,4 +51,11 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; +export const manifests = [ + treeRepository, + treeStore, + tree, + treeItem, + ...folderManifests, + ...reloadTreeItemChildrenManifest, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..e53c2de2c8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_MEDIA_TYPE_ENTITY_TYPE, UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.MediaType.Tree.ReloadTreeItemChildren', + name: 'Reload Media Type Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.MediaType.Tree', + entityTypes: [UMB_MEDIA_TYPE_ENTITY_TYPE, UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE], + }, + }, +]; From b97ee56c670750a0e1ffa2eb8516ea437aac9a08 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 10:47:21 +0100 Subject: [PATCH 587/786] add more reload actions to trees --- .../members/member-groups/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++++++++ .../members/member-types/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++++++++ .../members/members/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++++++++ .../relation-types/{entities.ts => entity.ts} | 0 .../relations/relation-types/index.ts | 2 +- .../relation-types/tree/manifests.ts | 5 +++-- .../tree/relation-type-tree.repository.ts | 2 +- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++++++++ 11 files changed, 87 insertions(+), 7 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/reload-tree-item-children/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/reload-tree-item-children/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/members/members/tree/reload-tree-item-children/manifests.ts rename src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/{entities.ts => entity.ts} (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts index 6f5490951f..7ffe0327c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_MEMBER_GROUP_ENTITY_TYPE, UMB_MEMBER_GROUP_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMemberGroupTreeRepository } from './member-group-tree.repository.js'; import { UmbMemberGroupTreeStore } from './member-group-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..9bf3ee1c42 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_MEMBER_GROUP_ENTITY_TYPE, UMB_MEMBER_GROUP_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.MemberGroup.Tree.ReloadTreeItemChildren', + name: 'Reload Member Group Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.MemberGroup.Tree', + entityTypes: [UMB_MEMBER_GROUP_ENTITY_TYPE, UMB_MEMBER_GROUP_ROOT_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts index 8ff56868a5..d93a6f32aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_MEMBER_TYPE_ENTITY_TYPE, UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMemberTypeTreeRepository } from './member-type-tree.repository.js'; import { UmbMemberTypeTreeStore } from './member-type-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..d2929ce739 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_MEMBER_TYPE_ENTITY_TYPE, UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.MemberType.Tree.ReloadTreeItemChildren', + name: 'Reload Member Type Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.MemberType.Tree', + entityTypes: [UMB_MEMBER_TYPE_ENTITY_TYPE, UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts index 40fc0a89f5..fc74d4d7ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_MEMBER_ENTITY_TYPE, UMB_MEMBER_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbMemberTreeRepository } from './member-tree.repository.js'; import { UmbMemberTreeStore } from './member-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..7a6db10068 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_MEMBER_ENTITY_TYPE, UMB_MEMBER_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Member.Tree.ReloadTreeItemChildren', + name: 'Reload Member Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.Member.Tree', + entityTypes: [UMB_MEMBER_ENTITY_TYPE, UMB_MEMBER_ROOT_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entities.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entities.ts rename to src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/entity.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/index.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/index.ts index 7bbcc83722..48e5364e41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/index.ts @@ -1,2 +1,2 @@ export * from './repository/index.js'; -export * from './entities.js'; +export * from './entity.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts index fac911101f..3f3438a75d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/manifests.ts @@ -1,6 +1,7 @@ -import { UMB_RELATION_TYPE_ENTITY_TYPE, UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../entities.js'; +import { UMB_RELATION_TYPE_ENTITY_TYPE, UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbRelationTypeTreeRepository } from './relation-type-tree.repository.js'; import { UmbRelationTypeTreeStore } from './relation-type-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts index 1fc833fa55..166b8b8eda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts @@ -1,4 +1,4 @@ -import { UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../entities.js'; +import { UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbRelationTypeTreeServerDataSource } from './relation-type-tree.server.data-source.js'; import type { UmbRelationTypeTreeItemModel, UmbRelationTypeTreeRootModel } from './types.js'; import { UMB_RELATION_TYPE_TREE_STORE_CONTEXT } from './relation-type-tree.store.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..13db230eaf --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_RELATION_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.RelationType.Tree.ReloadTreeItemChildren', + name: 'Reload Relation Type Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.RelationType.Tree', + entityTypes: [UMB_RELATION_TYPE_ROOT_ENTITY_TYPE], + }, + }, +]; From 0d13010474e28570b60d0de8b914c10dd54485a6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 10:55:41 +0100 Subject: [PATCH 588/786] add reload for templating trees --- .../partial-views/tree/manifests.ts | 10 ++++++- .../reload-tree-item-children/manifests.ts | 27 +++++++++++++++++++ .../templating/scripts/tree/manifests.ts | 10 ++++++- .../reload-tree-item-children/manifests.ts | 19 +++++++++++++ .../templating/stylesheets/tree/manifests.ts | 10 ++++++- .../reload-tree-item-children/manifests.ts | 23 ++++++++++++++++ .../templating/templates/tree/manifests.ts | 3 ++- .../reload-tree-item-children/manifests.ts | 23 ++++++++++++++++ 8 files changed, 121 insertions(+), 4 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/reload-tree-item-children/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/reload-tree-item-children/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/reload-tree-item-children/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/reload-tree-item-children/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts index 6a93d9a45b..c208c9aa10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts @@ -6,6 +6,7 @@ import { import { UmbPartialViewTreeRepository } from './partial-view-tree.repository.js'; import { UmbPartialViewTreeStore } from './partial-view-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -50,4 +51,11 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; +export const manifests = [ + treeRepository, + treeStore, + tree, + treeItem, + ...folderManifests, + ...reloadTreeItemChildrenManifest, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..2f017d6156 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,27 @@ +import { + UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, + UMB_PARTIAL_VIEW_ENTITY_TYPE, + UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, +} from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.PartialView.Tree.ReloadTreeItemChildren', + name: 'Reload Partial View Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.PartialView.Tree', + entityTypes: [ + UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, + UMB_PARTIAL_VIEW_ENTITY_TYPE, + UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, + ], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts index 413e7b78b0..f40ed7b3f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/manifests.ts @@ -2,6 +2,7 @@ import { UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE, UMB_SCRIPT_ROOT_ import { UmbScriptTreeRepository } from './script-tree.repository.js'; import { UmbScriptTreeStore } from './script-tree.store.js'; import { manifests as folderManifests } from './folder/manifests.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -46,4 +47,11 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; +export const manifests = [ + treeRepository, + treeStore, + tree, + treeItem, + ...folderManifests, + ...reloadTreeItemChildrenManifest, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..f23c9d945d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Script.Tree.ReloadTreeItemChildren', + name: 'Reload Script Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.Script.Tree', + entityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts index 9b9e9a875d..43703c840f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/manifests.ts @@ -4,6 +4,7 @@ import { UMB_STYLESHEET_ROOT_ENTITY_TYPE, } from '../entity.js'; import { manifests as folderManifests } from './folder/manifests.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import { UmbStylesheetTreeRepository } from './stylesheet-tree.repository.js'; import { UmbStylesheetTreeStore } from './stylesheet-tree.store.js'; import type { @@ -51,4 +52,11 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem, ...folderManifests]; +export const manifests = [ + treeRepository, + treeStore, + tree, + treeItem, + ...folderManifests, + ...reloadTreeItemChildrenManifest, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..9222f8077c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,23 @@ +import { + UMB_STYLESHEET_ROOT_ENTITY_TYPE, + UMB_STYLESHEET_ENTITY_TYPE, + UMB_STYLESHEET_FOLDER_ENTITY_TYPE, +} from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Stylesheet.Tree.ReloadTreeItemChildren', + name: 'Reload Stylesheet Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.Stylesheet.Tree', + entityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE], + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts index 9c3d943c41..ca6e077e34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/manifests.ts @@ -1,6 +1,7 @@ import { UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbTemplateTreeRepository } from './template-tree.repository.js'; import { UmbTemplateTreeStore } from './template-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js'; import type { ManifestRepository, ManifestTree, @@ -45,4 +46,4 @@ const treeItem: ManifestTreeItem = { }, }; -export const manifests = [treeRepository, treeStore, tree, treeItem]; +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..180da25ef5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,23 @@ +import { + UMB_TEMPLATE_ROOT_ENTITY_TYPE, + UMB_TEMPLATE_ENTITY_TYPE, + UMB_TEMPLATE_FOLDER_ENTITY_TYPE, +} from '../../entity.js'; +import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; +import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + alias: 'Umb.EntityAction.Template.Tree.ReloadTreeItemChildren', + name: 'Reload Template Tree Item Children Entity Action', + weight: 10, + api: UmbReloadTreeItemChildrenEntityAction, + meta: { + icon: 'icon-refresh', + label: 'Reload children...', + repositoryAlias: 'Umb.Repository.Template.Tree', + entityTypes: [UMB_TEMPLATE_ROOT_ENTITY_TYPE, UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_FOLDER_ENTITY_TYPE], + }, + }, +]; From e823b9d70141bd93b38c587a3e0ab5d31d34015e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 12:23:50 +0100 Subject: [PATCH 589/786] handle root requests in tree context --- .../tree-item-base/tree-item-base.context.ts | 3 +- .../src/packages/core/tree/tree.context.ts | 51 +++++++++++++++++-- .../src/packages/core/tree/tree.element.ts | 16 +++--- 3 files changed, 59 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index d04e4381ff..24ea634a98 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -223,7 +223,8 @@ export class UmbTreeItemContextBase } #onReloadRequest = (event: UmbEntityActionEvent) => { - if (this.unique === undefined) return; + // Only handle children request here. Root request is handled by the tree context + if (!this.unique) return; if (event.getUnique() !== this.unique) return; if (event.getEntityType() !== this.entityType) return; this.requestChildren(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts index 1a39bd4c2c..8702857f44 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts @@ -1,5 +1,7 @@ +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from './reload-tree-item-children/index.js'; import type { UmbTreeItemModelBase } from './types.js'; import type { UmbTreeRepository } from './tree-repository.interface.js'; +import { type UmbActionEventContext, UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; import { @@ -12,6 +14,8 @@ import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controlle import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; +import type { UmbEntityActionEvent } from '@umbraco-cms/backoffice/entity-action'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; // TODO: update interface export interface UmbTreeContext extends UmbBaseController { @@ -27,14 +31,16 @@ export class UmbTreeContextBase extends UmbBaseController implements UmbTreeContext { + #treeRoot = new UmbObjectState(undefined); + treeRoot = this.#treeRoot.asObservable(); + public repository?: UmbTreeRepository; public selectableFilter?: (item: TreeItemType) => boolean = () => true; - public filter?: (item: TreeItemType) => boolean = () => true; - public readonly selection = new UmbSelectionManager(this._host); #treeAlias?: string; + #actionEventContext?: UmbActionEventContext; #initResolver?: () => void; #initialized = false; @@ -46,6 +52,20 @@ export class UmbTreeContextBase constructor(host: UmbControllerHostElement) { super(host); this.provideContext('umbTreeContext', this); + + this.consumeContext(UMB_ACTION_EVENT_CONTEXT, (instance) => { + this.#actionEventContext = instance; + this.#actionEventContext.removeEventListener( + UmbReloadTreeItemChildrenRequestEntityActionEvent.TYPE, + this.#onReloadRequest as EventListener, + ); + this.#actionEventContext.addEventListener( + UmbReloadTreeItemChildrenRequestEntityActionEvent.TYPE, + this.#onReloadRequest as EventListener, + ); + }); + + this.requestTreeRoot(); } // TODO: find a generic way to do this @@ -69,7 +89,13 @@ export class UmbTreeContextBase public async requestTreeRoot() { await this.#init; - return this.repository!.requestTreeRoot(); + const { data } = await this.repository!.requestTreeRoot(); + + if (data) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + this.#treeRoot.setValue(data); + } } public async requestRootItems() { @@ -121,4 +147,23 @@ export class UmbTreeContextBase }, ); } + + #onReloadRequest = (event: UmbEntityActionEvent) => { + // Only handle root request here. Items are handled by the tree item context + const treeRoot = this.#treeRoot.getValue(); + if (treeRoot === undefined) return; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + if (event.getUnique() !== treeRoot.unique) return; + if (event.getEntityType() !== treeRoot.entityType) return; + this.requestRootItems(); + }; + + destroy(): void { + this.#actionEventContext?.removeEventListener( + UmbReloadTreeItemChildrenRequestEntityActionEvent.TYPE, + this.#onReloadRequest as EventListener, + ); + super.destroy(); + } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts index 999ac69ffb..7332f200b3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.element.ts @@ -79,19 +79,21 @@ export class UmbTreeElement extends UmbLitElement { private _treeRoot?: UmbTreeItemModelBase; #treeContext = new UmbTreeContextBase(this); - #rootItemsObserver?: UmbObserverController>; constructor() { super(); - this.#requestTreeRoot(); + this.#observeTreeRoot(); } - async #requestTreeRoot() { - if (!this.#treeContext?.requestTreeRoot) throw new Error('Tree does not support root'); - - const { data } = await this.#treeContext.requestTreeRoot(); - this._treeRoot = data; + #observeTreeRoot() { + this.observe( + this.#treeContext.treeRoot, + (treeRoot) => { + this._treeRoot = treeRoot; + }, + 'umbTreeRootObserver', + ); } async #observeRootItems() { From c0eb87818c9036792d87e0d27f202441643149dd Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:28:05 +0100 Subject: [PATCH 590/786] context --- ...i-block-grid-type-configuration.element.ts | 64 ++++++++++++++----- .../input-block-type.element.ts | 55 +++------------- .../workspace/block-type-workspace.context.ts | 13 ++-- .../workspace/block-type-workspace.element.ts | 10 +-- 4 files changed, 73 insertions(+), 69 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 9563e8a899..1184683ea9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,7 +1,16 @@ -import type { UmbBlockTypeWithGroupKey } from '../../../block-type/index.js'; +import type { UmbBlockTypeWithGroupKey, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, property, state, repeat, nothing, css } from '@umbraco-cms/backoffice/external/lit'; +import { + html, + customElement, + property, + state, + repeat, + nothing, + css, + ifDefined, +} from '@umbraco-cms/backoffice/external/lit'; import { UmbPropertyValueChangeEvent, type UmbPropertyEditorConfigCollection, @@ -11,6 +20,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbBlockGridGroupType, UmbBlockGridGroupTypeConfiguration } from '@umbraco-cms/backoffice/block'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UMB_PROPERTY_DATASET_CONTEXT, type UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; /** * @element umb-property-editor-ui-block-grid-type-configuration @@ -21,6 +31,10 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement implements UmbPropertyEditorUiElement { #datasetContext?: UmbPropertyDatasetContext; + #blockTypeWorkspaceModalRegistration?: UmbModalRouteRegistrationController< + typeof UMB_WORKSPACE_MODAL.DATA, + typeof UMB_WORKSPACE_MODAL.VALUE + >; private _value: Array = []; @property({ attribute: false }) @@ -40,12 +54,29 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement @state() private _mappedValuesAndGroups: Array = []; + @state() + private _workspacePath?: string; + constructor() { super(); this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, async (instance) => { this.#datasetContext = instance; this.#observeProperties(); }); + + this.#blockTypeWorkspaceModalRegistration?.destroy(); + + const entityType = 'block-grid-type'; + + this.#blockTypeWorkspaceModalRegistration = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath(entityType) + .onSetup(() => { + return { data: { entityType: entityType, preset: {} }, modal: { size: 'large' } }; + }) + .observeRouteBuilder((routeBuilder) => { + const newpath = routeBuilder({}); + this._workspacePath = newpath; + }); } async #observeProperties() { @@ -71,21 +102,20 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this._mappedValuesAndGroups = [{ blocks: valuesWithNoGroup }, ...valuesWithGroup]; } - /* - #onChange(e: CustomEvent, group?: UmbBlockGridGroupTypeConfiguration) { - const groupValues = (e.target as UmbInputBlockTypeElement).value; - const newValues = groupValues.map((value) => ({ ...value, groupKey: group?.key })); - const filteredValues = this._value.filter((block) => block.contentElementTypeKey === group?.key); - this.value = [...filteredValues, ...newValues]; - this.dispatchEvent(new CustomEvent('property-value-change')); - } - */ - - #deleteItem(e: CustomEvent) { - this.value = this._value.filter((block) => block.contentElementTypeKey !== e.detail.contentElementTypeKey); + #onChange(e: CustomEvent, groupKey?: string) { + const updatedValues = (e.target as UmbInputBlockTypeElement).value.map((value) => ({ ...value, groupKey })); + const filteredValues = this.value.filter((value) => value.groupKey !== groupKey); + this.value = [...filteredValues, ...updatedValues]; this.dispatchEvent(new UmbPropertyValueChangeEvent()); } + #onCreate(e: CustomEvent, groupKey: string | null) { + const selectedElementType = e.detail.contentElementTypeKey; + if (selectedElementType) { + this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + selectedElementType + '/' + groupKey); + } + } + #deleteGroup(groupKey: string) { this.#datasetContext?.setPropertyValue( 'blockGroups', @@ -113,7 +143,9 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement `, + .workspacePath="${this._workspacePath}" + @create=${(e: CustomEvent) => this.#onCreate(e, group.key ?? null)} + @change=${(e: CustomEvent) => this.#onChange(e, group.key)}>`, )}`; } @@ -122,7 +154,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement auto-width label="Group" .value=${groupName ?? ''} - @delete=${(e: UUIInputEvent) => this.#changeGroupName(e, groupKey)}> + @change=${(e: UUIInputEvent) => this.#changeGroupName(e, groupKey)}> this.#deleteGroup(groupKey)}> diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts index 548cd15034..982b51eb4d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/input-block-type/input-block-type.element.ts @@ -1,21 +1,16 @@ import type { UmbBlockTypeBaseModel } from '../../types.js'; -import { - UMB_DOCUMENT_TYPE_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UMB_WORKSPACE_MODAL, - UmbModalRouteRegistrationController, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import '../block-type-card/index.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UMB_PROPERTY_DATASET_CONTEXT, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; @customElement('umb-input-block-type') export class UmbInputBlockTypeElement< BlockType extends UmbBlockTypeBaseModel = UmbBlockTypeBaseModel, > extends UmbLitElement { - // @property({ type: Array, attribute: false }) public get value() { return this._items; @@ -24,41 +19,12 @@ export class UmbInputBlockTypeElement< this._items = items ?? []; } - @property({ type: String, attribute: 'entity-type' }) - public get entityType() { - return this.#entityType; - } - public set entityType(entityType) { - this.#entityType = entityType; - - this.#blockTypeWorkspaceModalRegistration?.destroy(); - - if (entityType) { - // TODO: Make specific modal token that requires data. - this.#blockTypeWorkspaceModalRegistration = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) - .addAdditionalPath(entityType) - .onSetup(() => { - return { data: { entityType: entityType, preset: {} }, modal: { size: 'large' } }; - }) - .observeRouteBuilder((routeBuilder) => { - const newpath = routeBuilder({}); - this._workspacePath = newpath; - }); - } - } - #entityType?: string; + @property({ type: String }) + workspacePath?: string; @state() private _items: Array = []; - @state() - private _workspacePath?: string; - - #blockTypeWorkspaceModalRegistration?: UmbModalRouteRegistrationController< - typeof UMB_WORKSPACE_MODAL.DATA, - typeof UMB_WORKSPACE_MODAL.VALUE - >; - #datasetContext?: UmbPropertyDatasetContext; #filter: Array = []; @@ -84,25 +50,24 @@ export class UmbInputBlockTypeElement< // Only pick elements: docType.isElement && // Prevent picking the an already used element type: + this.#filter && this.#filter.find((x) => x.contentElementTypeKey === docType.unique) === undefined, }, }); const modalValue = await modalContext?.onSubmit(); const selectedElementType = modalValue.selection[0]; + if (selectedElementType) { - this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + selectedElementType); + this.dispatchEvent(new CustomEvent('create', { detail: { contentElementTypeKey: selectedElementType } })); } } }); - - // No need to fire a change event, as all changes are made directly to the property, via context api. } deleteItem(contentElementTypeKey: string) { this.value = this._items.filter((x) => x.contentElementTypeKey !== contentElementTypeKey); - this.dispatchEvent(new CustomEvent('delete', { detail: { contentElementTypeKey } })); - //this.dispatchEvent(new UmbChangeEvent()); + this.dispatchEvent(new UmbChangeEvent()); } protected getFormElement() { @@ -118,7 +83,7 @@ export class UmbInputBlockTypeElement< #renderItem = (item: BlockType) => { return html` this.deleteItem(item.contentElementTypeKey)}> diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts index 5209b21197..5883299981 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace.context.ts @@ -1,9 +1,10 @@ -import type { UmbBlockTypeBaseModel } from '../types.js'; +import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../types.js'; import type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import type { UmbInvariantableWorkspaceContextInterface, - UmbWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; + UmbWorkspaceContextInterface, +} from '@umbraco-cms/backoffice/workspace'; import { UmbEditableWorkspaceContextBase, UmbInvariantWorkspacePropertyDatasetContext, @@ -13,7 +14,7 @@ import type { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/b import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { ManifestWorkspace, PropertyEditorConfigProperty } from '@umbraco-cms/backoffice/extension-registry'; -export class UmbBlockTypeWorkspaceContext +export class UmbBlockTypeWorkspaceContext extends UmbEditableWorkspaceContextBase implements UmbInvariantableWorkspaceContextInterface { @@ -57,11 +58,15 @@ export class UmbBlockTypeWorkspaceContext { const elementTypeKey = info.match.params.elementTypeKey; - this.#workspaceContext!.create(elementTypeKey); + const groupKey = info.match.params.groupKey === 'null' ? null : info.match.params.groupKey; + this.#workspaceContext!.create(elementTypeKey, groupKey); new UmbWorkspaceIsNewRedirectController( this, From 025c2bf898f9428389d712330a57272df7636d04 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:33:16 +0100 Subject: [PATCH 591/786] build err --- ...operty-editor-ui-block-grid-group-configuration.element.ts | 4 ++-- ...operty-editor-ui-block-grid-group-configuration.stories.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts index ea8b94c594..333d2258ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.element.ts @@ -1,10 +1,10 @@ import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit'; -import { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbBlockGridGroupType } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockGridGroupType } from '@umbraco-cms/backoffice/block'; @customElement('umb-property-editor-ui-block-grid-group-configuration') export class UmbPropertyEditorUIBlockGridGroupConfigurationElement diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts index 7e8cb00391..c001579428 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-group-configuration/property-editor-ui-block-grid-group-configuration.stories.ts @@ -1,4 +1,4 @@ -import { Meta, Story } from '@storybook/web-components'; +import type { Meta, Story } from '@storybook/web-components'; import type { UmbPropertyEditorUIBlockGridGroupConfigurationElement } from './property-editor-ui-block-grid-group-configuration.element.js'; import { html } from '@umbraco-cms/backoffice/external/lit'; From 316e67df7b006e4ebccf011f790398cc7975f8d6 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:40:50 +0100 Subject: [PATCH 592/786] entity type --- ...i-block-grid-type-configuration.element.ts | 28 +++++++------------ .../src/packages/block/block-grid/types.ts | 2 ++ 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 1184683ea9..9714e9cd08 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -1,23 +1,18 @@ import type { UmbBlockTypeWithGroupKey, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { - html, - customElement, - property, - state, - repeat, - nothing, - css, - ifDefined, -} from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state, repeat, nothing, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbPropertyValueChangeEvent, type UmbPropertyEditorConfigCollection, } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { UmbBlockGridGroupType, UmbBlockGridGroupTypeConfiguration } from '@umbraco-cms/backoffice/block'; +import { + UMB_BLOCK_GRID_TYPE, + type UmbBlockGridGroupType, + type UmbBlockGridGroupTypeConfiguration, +} from '@umbraco-cms/backoffice/block'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { UMB_PROPERTY_DATASET_CONTEXT, type UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @@ -66,12 +61,10 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement this.#blockTypeWorkspaceModalRegistration?.destroy(); - const entityType = 'block-grid-type'; - this.#blockTypeWorkspaceModalRegistration = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) - .addAdditionalPath(entityType) + .addAdditionalPath(UMB_BLOCK_GRID_TYPE) .onSetup(() => { - return { data: { entityType: entityType, preset: {} }, modal: { size: 'large' } }; + return { data: { entityType: UMB_BLOCK_GRID_TYPE, preset: {} }, modal: { size: 'large' } }; }) .observeRouteBuilder((routeBuilder) => { const newpath = routeBuilder({}); @@ -141,9 +134,8 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement (group) => html`${group.key ? this.#renderGroupInput(group.key, group.name) : nothing} this.#onCreate(e, group.key ?? null)} @change=${(e: CustomEvent) => this.#onChange(e, group.key)}>`, )}`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts index a3fb79a2f7..3a51638811 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/types.ts @@ -1,5 +1,7 @@ import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../block-type/index.js'; +export const UMB_BLOCK_GRID_TYPE = 'block-grid-type'; + export interface UmbBlockGridType extends UmbBlockTypeBaseModel { columnSpanOptions: Array; allowAtRoot: boolean; From 58428ed4fd5b2b598f8906dad9d91cdea35c08f0 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:47:00 +0100 Subject: [PATCH 593/786] update types --- .../culture-and-hostnames.action.ts | 7 ++++--- .../modal/culture-and-hostnames-modal.element.ts | 15 +++++---------- .../modal/culture-and-hostnames-modal.token.ts | 2 +- .../culture-and-hostnames.repository.ts | 7 ++++--- .../culture-and-hostnames.server.data.ts | 3 ++- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts index 8fd3b2bbbf..b0f552e335 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts @@ -1,7 +1,8 @@ -import { UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentRepository } from '../../repository/document.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbModalManagerContext, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_CULTURE_AND_HOSTNAMES_MODAL } from '@umbraco-cms/backoffice/document'; export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts index c656517820..b0a34731d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts @@ -1,19 +1,14 @@ import { html, customElement, state, css, repeat, query } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - UMB_CONFIRM_MODAL, - UMB_MODAL_MANAGER_CONTEXT, - UmbModalBaseElement, - UmbModalManagerContext, -} from '@umbraco-cms/backoffice/modal'; -import { UUIInputEvent, UUIPopoverContainerElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbLanguageRepository } from '@umbraco-cms/backoffice/language'; -import { DomainPresentationModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DomainPresentationModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { - UmbCultureAndHostnamesModalData, - UmbCultureAndHostnamesModalValue, UmbDocumentCultureAndHostnamesRepository, + type UmbCultureAndHostnamesModalData, + type UmbCultureAndHostnamesModalValue, } from '@umbraco-cms/backoffice/document'; +import type { UUIInputEvent, UUIPopoverContainerElement, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; @customElement('umb-culture-and-hostnames-modal') export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts index 052fe2c4b2..b6c802805a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.token.ts @@ -1,4 +1,4 @@ -import { DomainPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DomainPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbCultureAndHostnamesModalData { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index 04bf7b6b4c..457111b7e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -1,9 +1,10 @@ import { UmbDocumentCultureAndHostnamesServerDataSource } from './culture-and-hostnames.server.data.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -import { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +import type { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController implements UmbApi { #init!: Promise; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts index 1a6fae85da..53db77e2ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts @@ -1,4 +1,5 @@ -import { DocumentResource, DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DocumentResource } from '@umbraco-cms/backoffice/backend-api'; +import type { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; From 060009ae2064888b9cc880b6aae478f162fdbb2f Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:50:28 +0100 Subject: [PATCH 594/786] type --- .../documents/entity-actions/culture-and-hostnames/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts index 40c0dd6b4e..d3824080ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UmbDocumentCultureAndHostnamesEntityAction } from './culture-and-hostnames.action.js'; -import { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { From 0a8d0a1c9d8b051f9218511c6a293e04cfd23805 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 13:17:07 +0100 Subject: [PATCH 595/786] remove unused state --- .../core/tree/tree-item-base/tree-item-base.element.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts index d4095549a2..ffa69d14b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.element.ts @@ -7,9 +7,6 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-tree-item-base') export class UmbTreeItemBaseElement extends UmbLitElement { - @state() - private _iconAlias?: string; - @state() private _item?: UmbTreeItemModelBase; From c641fd7d56301896ec70250fe80f73effbb04fcc Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 13:22:16 +0100 Subject: [PATCH 596/786] fix missing type when importing --- .../reload-tree-item-children-request.event.ts | 2 +- .../reload-tree-item-children.action.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts index 7c51f52e74..999b2dd669 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children-request.event.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionEvent, UmbEntityActionEventArgs } from '@umbraco-cms/backoffice/entity-action'; +import { UmbEntityActionEvent, type UmbEntityActionEventArgs } from '@umbraco-cms/backoffice/entity-action'; export class UmbReloadTreeItemChildrenRequestEntityActionEvent extends UmbEntityActionEvent { static readonly TYPE = 'reload-tree-item-children-request'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts index f1a5bab504..ba0ebe7c89 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.ts @@ -1,7 +1,8 @@ -import { type UmbCopyDataTypeRepository } from '../../data-type/repository/copy/data-type-copy.repository.js'; +import type { UmbCopyDataTypeRepository } from '../../data-type/repository/copy/data-type-copy.repository.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UMB_ACTION_EVENT_CONTEXT, UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbActionEventContext } from '@umbraco-cms/backoffice/action'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; export class UmbReloadTreeItemChildrenEntityAction extends UmbEntityActionBase { From eeca7ee4859fd6222922f44ab648e910afc845ae Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 18 Jan 2024 17:07:37 +0000 Subject: [PATCH 597/786] [WIP] Dynamic Root --- src/Umbraco.Web.UI.Client/package.json | 1 + .../src/apps/backoffice/backoffice.element.ts | 1 + .../input-document-picker-root.element.ts | 93 ++++++++++++------- .../src/packages/dynamic-root/index.ts | 2 + .../src/packages/dynamic-root/manifests.ts | 7 ++ ...ynamic-root-origin-picker-modal.element.ts | 47 ++++++++++ .../src/packages/dynamic-root/modals/index.ts | 9 ++ .../packages/dynamic-root/modals/manifests.ts | 14 +++ .../packages/dynamic-root/repository/index.ts | 1 + .../dynamic-root/repository/manifests.ts | 3 + .../packages/dynamic-root/umbraco-package.ts | 9 ++ src/Umbraco.Web.UI.Client/tsconfig.json | 1 + .../web-test-runner.config.mjs | 1 + 13 files changed, 158 insertions(+), 31 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/umbraco-package.ts diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index a756f55069..1038f071b5 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -62,6 +62,7 @@ "./member-type": "./dist-cms/packages/members/member-types/index.js", "./package": "./dist-cms/packages/packages/package/index.js", "./data-type": "./dist-cms/packages/core/data-type/index.js", + "./dynamic-root": "./dist-cms/packages/dynamic-root/index.js", "./language": "./dist-cms/packages/settings/languages/index.js", "./logviewer": "./dist-cms/packages/settings/logviewer/index.js", "./relation-type": "./dist-cms/packages/relations/relation-types/index.js", diff --git a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts index 84243dafc2..997f5a79fa 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/backoffice/backoffice.element.ts @@ -30,6 +30,7 @@ const CORE_PACKAGES = [ import('../../packages/log-viewer/umbraco-package.js'), import('../../packages/health-check/umbraco-package.js'), import('../../packages/static-file/umbraco-package.js'), + import('../../packages/dynamic-root/umbraco-package.js'), ]; @customElement('umb-backoffice') diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 68b5ab60b3..f4f8b4de73 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -1,8 +1,14 @@ import { UmbDocumentPickerContext } from '../input-document/input-document.context.js'; +import { UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL } from '@umbraco-cms/backoffice/dynamic-root'; import { html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { + UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UmbModalContext, + UmbModalManagerContext, +} from '@umbraco-cms/backoffice/modal'; @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { @@ -24,16 +30,17 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #documentPickerContext = new UmbDocumentPickerContext(this); - // TODO: DynamicRoot - once feature implemented, wire up context and picker UI. [LK] - #dynamicRootPickerContext = { - openPicker: () => { - throw new Error('DynamicRoot picker has not been implemented yet.'); - }, - }; + private _modalContext?: UmbModalManagerContext; + + #openModal?: UmbModalContext; constructor() { super(); + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this._modalContext = instance; + }); + this.#documentPickerContext.max = 1; this.observe(this.#documentPickerContext.selection, (selection) => (super.value = selection.join(','))); @@ -44,55 +51,79 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl return undefined; } + #openDocumentPicker() { + this.#documentPickerContext.openPicker({ + hideTreeRoot: true, + }); + } + + #openDynamicRootPicker() { + this.#openModal = this._modalContext?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, { + data: { testing: 123 }, + }); + this.#openModal?.onSubmit().then((data) => { + console.log('openDynamicRootPicker.onSubmit', data); + }); + } + render() { - return html` - ${this._items - ? html` ${repeat( - this._items, - (item) => item.id, - (item) => this._renderItem(item), - )} - ` - : ''} - ${this.#renderButtons()} - `; + return html`${this.#renderButtons()} ${this.#renderItems()}`; } #renderButtons() { if (this.nodeId) return; - - //TODO: Dynamic paths - return html` + return html` this.#documentPickerContext.openPicker()} + @click=${this.#openDocumentPicker} label=${this.localize.term('contentPicker_defineRootNode')}> this.#dynamicRootPickerContext.openPicker()} + @click=${this.#openDynamicRootPicker} label=${this.localize.term('contentPicker_defineDynamicRoot')}> `; } - private _renderItem(item: DocumentItemResponseModel) { + #renderItems() { + if (!this._items) return; + return html` + ${repeat( + this._items, + (item) => item.id, + (item) => this.#renderItem(item), + )} + `; + } + + #renderItem(item: DocumentItemResponseModel) { if (!item.id) return; return html` - + ${this.#renderIcon(item)} + ${this.#renderIsTrashed(item)} - this.#documentPickerContext.openPicker()} label="Edit document ${item.name}" - >Edit + + ${this.localize.term('general_edit')} + this.#documentPickerContext.requestRemoveItem(item.id!)} - label="Remove document ${item.name}" - >Remove + label="Remove document ${item.name}"> + ${this.localize.term('general_remove')} + `; } + + #renderIcon(item: DocumentItemResponseModel) { + if (!item.icon) return; + return html``; + } + + #renderIsTrashed(item: DocumentItemResponseModel) { + if (!item.isTrashed) return; + return html`Trashed`; + } } export default UmbInputDocumentPickerRootElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/index.ts new file mode 100644 index 0000000000..736a54915b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/index.ts @@ -0,0 +1,2 @@ +export * from './modals/index.js'; +export * from './repository/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/manifests.ts new file mode 100644 index 0000000000..4322a89557 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/manifests.ts @@ -0,0 +1,7 @@ +import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; + +export const manifests = [ + ...modalManifests, + ...repositoryManifests, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts new file mode 100644 index 0000000000..e2caf5f367 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts @@ -0,0 +1,47 @@ +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; +import { + UMB_MODAL_MANAGER_CONTEXT_TOKEN, + UmbModalManagerContext, + UmbModalBaseElement, +} from '@umbraco-cms/backoffice/modal'; + +@customElement('umb-dynamic-root-origin-picker-modal') +export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseElement { + private _modalContext?: UmbModalManagerContext; + + constructor() { + super(); + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT_TOKEN, (instance) => { + this._modalContext = instance; + }); + } + + #close() { + this.modalContext?.reject(); + } + + render() { + return html` + +
+

DynamicRoot Origin Picker Modal

+ +
+
+ Close +
+
+ `; + } + + static styles = [UmbTextStyles, css``]; +} + +export default UmbDynamicRootOriginPickerModalModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-dynamic-root-origin-picker-modal': UmbDynamicRootOriginPickerModalModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts new file mode 100644 index 0000000000..5cdcc2eda3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts @@ -0,0 +1,9 @@ +import { UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS } from './manifests.js'; +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export const UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL = new UmbModalToken(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS, { + modal: { + type: 'sidebar', + size: 'small', + }, +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts new file mode 100644 index 0000000000..c915e81db3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts @@ -0,0 +1,14 @@ +import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS = 'Umb.Modal.DynamicRoot.OriginPicker'; + +const modals: Array = [ + { + type: 'modal', + alias: UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS, + name: 'Choose an origin', + js: () => import('./dynamic-root-origin-picker-modal.element.js'), + }, +]; + +export const manifests = [...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts new file mode 100644 index 0000000000..ff6d8716e5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts @@ -0,0 +1 @@ +export { UMB_DYNAMIC_ROOT_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/manifests.ts new file mode 100644 index 0000000000..a140a9a729 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/manifests.ts @@ -0,0 +1,3 @@ +export const UMB_DYNAMIC_ROOT_REPOSITORY_ALIAS = 'Umb.Repository.DynamicRoot'; + +export const manifests = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/umbraco-package.ts new file mode 100644 index 0000000000..46eff51dfd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/umbraco-package.ts @@ -0,0 +1,9 @@ +export const name = 'Umbraco.Core.DynamicRoot'; +export const extensions = [ + { + name: 'Dynamic Root Bundle', + alias: 'Umb.Bundle.DynamicRoot', + type: 'bundle', + js: () => import('./manifests.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index de24c48990..c4c88e5d83 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -92,6 +92,7 @@ "@umbraco-cms/backoffice/temporary-file": ["src/packages/core/temporary-file"], "@umbraco-cms/backoffice/data-type": ["./src/packages/core/data-type/index.ts"], + "@umbraco-cms/backoffice/dynamic-root": ["./src/packages/dynamic-root/index.ts"], "@umbraco-cms/backoffice/language": ["./src/packages/settings/languages/index.ts"], "@umbraco-cms/backoffice/logviewer": ["src/packages/log-viewer/index.ts"], "@umbraco-cms/backoffice/relation-types": ["src/packages/relations/relation-types/index.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 7a0d981ce5..25e576de50 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -107,6 +107,7 @@ export default { '@umbraco-cms/backoffice/package': './src/packages/packages/package/index.ts', '@umbraco-cms/backoffice/data-type': './src/packages/core/data-type/index.ts', + '@umbraco-cms/backoffice/dynamic-root': './src/packages/dynamic-root/index.ts', '@umbraco-cms/backoffice/language': './src/packages/settings/languages/index.ts', '@umbraco-cms/backoffice/logviewer': './src/packages/settings/logviewer/index.ts', '@umbraco-cms/backoffice/relation-type': './src/packages/relations/relation-types/index.ts', From ac0c8024ac46878e8d4c2258f7b076d68764e4d9 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 22 Jan 2024 11:49:34 +0000 Subject: [PATCH 598/786] DynamicRoot: Added localization labels --- .../src/assets/lang/da-dk.ts | 32 +++++++++++++++++ .../src/assets/lang/en-us.ts | 35 +++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts index d3b00b4443..c6f399e298 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts @@ -1156,6 +1156,38 @@ export default { pickedTrashedItem: 'Du har valgt et dokument som er slettet eller lagt i papirkurven', pickedTrashedItems: 'Du har valgt dokumenter som er slettede eller lagt i papirkurven', }, + dynamicRoot: { + configurationTitle: 'Dynamisk udgangspunkts forespørgsel', + pickDynamicRootOriginTitle: 'Vælg begyndelsen', + pickDynamicRootOriginDesc: 'Beskriv begyndelsen for dynamisk udgangspunkts forespørgselen', + originRootTitle: 'Roden', + originRootDesc: 'Rod noden for denne kilde', + originParentTitle: 'Overliggende', + originParentDesc: 'Den overliggende node af kilden i denne redigerings session', + originCurrentTitle: 'Nuværende', + originCurrentDesc: 'Kilde noden for denne redigerings session', + originSiteTitle: 'Siden', + originSiteDesc: 'Nærmeste node med et domæne', + originByKeyTitle: 'Specifik Node', + originByKeyDesc: 'Vælg en specifik Node', + pickDynamicRootQueryStepTitle: 'Tilføj skridt til forespørgsel', + pickDynamicRootQueryStepDesc: 'Specificer næste skridt i din dynamisk udgangspunkts forespørgsel', + queryStepNearestAncestorOrSelfTitle: 'Nærmeste forældre eller selv', + queryStepNearestAncestorOrSelfDesc: 'Forespørg the nærmeste forældre eller selv der passer på en af de givne typer', + queryStepFurthestAncestorOrSelfTitle: 'Fjerneste forældre eller selv', + queryStepFurthestAncestorOrSelfDesc: 'Forespørg fjerneste forældre eller selv der passer på en af de givne typer', + queryStepNearestDescendantOrSelfTitle: 'Nærmeste barn eller selv', + queryStepNearestDescendantOrSelfDesc: 'Forespørg nærmeste barn eller selv der passer på en af de givne typer', + queryStepFurthestDescendantOrSelfTitle: 'Fjerneste barn eller selv', + queryStepFurthestDescendantOrSelfDesc: 'Forespørg fjerneste barn eller selv der passer på en af de givne typer', + queryStepCustomTitle: 'Brugerdefineret', + queryStepCustomDesc: 'Forespørg med et skræddersyet forespørgsels skridt', + addQueryStep: 'Tilføj skridt', + queryStepTypes: 'der passer med typerne: ', + noValidStartNodeTitle: 'Intet passende indhold', + noValidStartNodeDesc: + 'Konfigurationen af dette felt passer ikke med noget indhold. Opret det manglende indhold eller kontakt din adminnistrator for at tilpasse Dynamisk Udgangspunkts Forespørgselen for dette felt.', + }, mediaPicker: { deletedItem: 'Slettet medie', pickedTrashedItem: 'Du har valgt et medie som er slettet eller lagt i papirkurven', diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts index 6dce152d56..fcedf7094b 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts @@ -1153,6 +1153,41 @@ export default { pickedTrashedItem: 'You have picked a content item currently deleted or in the recycle bin', pickedTrashedItems: 'You have picked content items currently deleted or in the recycle bin', }, + dynamicRoot: { + configurationTitle: 'Dynamic Root Query', + pickDynamicRootOriginTitle: 'Pick origin', + pickDynamicRootOriginDesc: 'Define the origin for your Dynamic Root Query', + originRootTitle: 'Root', + originRootDesc: 'Root node of this editing session', + originParentTitle: 'Parent', + originParentDesc: 'The parent node of the source in this editing session', + originCurrentTitle: 'Current', + originCurrentDesc: 'The content node that is source for this editing session', + originSiteTitle: 'Site', + originSiteDesc: 'Find nearest node with a hostname', + originByKeyTitle: 'Specific Node', + originByKeyDesc: 'Pick a specific Node as the origin for this query', + pickDynamicRootQueryStepTitle: 'Append step to query', + pickDynamicRootQueryStepDesc: 'Define the next step of your Dynamic Root Query', + queryStepNearestAncestorOrSelfTitle: 'Nearest Ancestor Or Self', + queryStepNearestAncestorOrSelfDesc: 'Query the nearest ancestor or self that fits with one of the configured types', + queryStepFurthestAncestorOrSelfTitle: 'Furthest Ancestor Or Self', + queryStepFurthestAncestorOrSelfDesc: + 'Query the Furthest ancestor or self that fits with one of the configured types', + queryStepNearestDescendantOrSelfTitle: 'Nearest Descendant Or Self', + queryStepNearestDescendantOrSelfDesc: + 'Query the nearest descendant or self that fits with one of the configured types', + queryStepFurthestDescendantOrSelfTitle: 'Furthest Descendant Or Self', + queryStepFurthestDescendantOrSelfDesc: + 'Query the Furthest descendant or self that fits with one of the configured types', + queryStepCustomTitle: 'Custom', + queryStepCustomDesc: 'Query the using a custom Query Step', + addQueryStep: 'Add query step', + queryStepTypes: 'That matches types: ', + noValidStartNodeTitle: 'No matching content', + noValidStartNodeDesc: + 'The configuration of this property does not match any content. Create the missing content or contact your administrator to adjust the Dynamic Root settings for this property.', + }, mediaPicker: { deletedItem: 'Deleted item', pickedTrashedItem: 'You have picked a media item currently deleted or in the recycle bin', From d6fd17cf24d497ce5a053d6ba665fd236c9904e0 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 22 Jan 2024 15:56:56 +0000 Subject: [PATCH 599/786] [WIP] Dynamic Root Origin Picker modal --- .../input-document-picker-root.element.ts | 5 + ...ynamic-root-origin-picker-modal.element.ts | 114 +++++++++++++++--- 2 files changed, 104 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index f4f8b4de73..758985f8dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -72,6 +72,11 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #renderButtons() { if (this.nodeId) return; + + // TODO: Have one button "Specify root node", which opens the Dynamic Root Picker. [LK] + + // TODO: If the old root node ID value is set, then pre-populate the "Specific Node" option. [LK] + return html` { - this._modalContext = instance; + + this.#documentPickerContext.max = 1; + + this.observe(this.#documentPickerContext.selectedItems, (selectedItems) => this.#selectedDocument(selectedItems)); + } + + #choose(alias: string) { + this.#submit({ + originAlias: alias, }); } @@ -21,21 +25,101 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle this.modalContext?.reject(); } + #documentPickerContext = new UmbDocumentPickerContext(this); + + #openDocumentPicker() { + this.#documentPickerContext.openPicker({ + hideTreeRoot: true, + }); + } + + #selectedDocument(selectedItems: Array) { + if (selectedItems.length !== 1) return; + this.#submit({ + originAlias: 'ByKey', + originKey: selectedItems[0].id, + }); + } + + #submit(value: UmbTreePickerDynamicRoot) { + this.modalContext?.setValue(value); + this.modalContext?.submit(); + } + + #originButtons = [ + { + alias: 'Root', + title: this.localize.term('dynamicRoot_originRootTitle'), + description: this.localize.term('dynamicRoot_originRootDesc'), + action: () => this.#choose('Root'), + }, + { + alias: 'Parent', + title: this.localize.term('dynamicRoot_originParentTitle'), + description: this.localize.term('dynamicRoot_originParentDesc'), + action: () => this.#choose('Parent'), + }, + { + alias: 'Current', + title: this.localize.term('dynamicRoot_originCurrentTitle'), + description: this.localize.term('dynamicRoot_originCurrentDesc'), + action: () => this.#choose('Current'), + }, + { + alias: 'Site', + title: this.localize.term('dynamicRoot_originSiteTitle'), + description: this.localize.term('dynamicRoot_originSiteDesc'), + action: () => this.#choose('Site'), + }, + { + alias: 'ByKey', + title: this.localize.term('dynamicRoot_originByKeyTitle'), + description: this.localize.term('dynamicRoot_originByKeyDesc'), + action: () => this.#openDocumentPicker(), + }, + ]; + render() { return html` - +
-

DynamicRoot Origin Picker Modal

- + + ${map( + this.#originButtons, + (btn) => html` + +

${btn.title}

+

${btn.description}

+
+ `, + )} +
- Close +
`; } - static styles = [UmbTextStyles, css``]; + static styles = [ + UmbTextStyles, + css` + uui-box > uui-button { + display: block; + --uui-button-content-align: flex-start; + } + + uui-box > uui-button:not(:last-of-type) { + margin-bottom: var(--uui-size-space-5); + } + + h3, + p { + text-align: left; + } + `, + ]; } export default UmbDynamicRootOriginPickerModalModalElement; From 75068814c7497571906905e295e3de4565c4dfed Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 24 Jan 2024 10:01:20 +0000 Subject: [PATCH 600/786] [WIP] Dynamic Root repository + server data API --- .../repository/dynamic-root.repository.ts | 19 +++++++++++++++++++ .../repository/dynamic-root.server.data.ts | 17 +++++++++++++++++ .../packages/dynamic-root/repository/index.ts | 1 + 3 files changed, 37 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts new file mode 100644 index 0000000000..eef5691f85 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts @@ -0,0 +1,19 @@ +import { UmbDynamicRootServerDataSource } from './dynamic-root.server.data.js'; +import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; + +export class UmbDynamicRootRepository extends UmbBaseController { + #dataSource: UmbDynamicRootServerDataSource; + + constructor(host: UmbControllerHostElement) { + super(host); + + this.#dataSource = new UmbDynamicRootServerDataSource(host); + } + + // TODO: Implement `postDynamicRootQuery` [LK] + + async getQuerySteps() { + return this.#dataSource.getQuerySteps(); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts new file mode 100644 index 0000000000..fce089255e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts @@ -0,0 +1,17 @@ +import { DynamicRootResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export class UmbDynamicRootServerDataSource { + #host: UmbControllerHost; + + constructor(host: UmbControllerHost) { + this.#host = host; + } + + // TODO: Implement `postDynamicRootQuery` [LK] + + async getQuerySteps() { + return await tryExecuteAndNotify(this.#host, DynamicRootResource.getDynamicRootSteps()); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts index ff6d8716e5..f60228e806 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/index.ts @@ -1 +1,2 @@ export { UMB_DYNAMIC_ROOT_REPOSITORY_ALIAS } from './manifests.js'; +export { UmbDynamicRootRepository } from './dynamic-root.repository.js'; From b82039eebfe07d586fc3fac554dd6b218fca1bce Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 24 Jan 2024 10:01:42 +0000 Subject: [PATCH 601/786] [WIP] Dynamic Root Query Step Picker modal --- ...ic-root-query-step-picker-modal.element.ts | 145 ++++++++++++++++++ .../src/packages/dynamic-root/modals/index.ts | 15 +- .../packages/dynamic-root/modals/manifests.ts | 7 + 3 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts new file mode 100644 index 0000000000..9b8a2abf96 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -0,0 +1,145 @@ +import { UmbDocumentTypePickerContext } from '../../documents/document-types/components/input-document-type/input-document-type.context.js'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { css, html, customElement, map } from '@umbraco-cms/backoffice/external/lit'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { type UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; +import { UmbDynamicRootRepository } from '@umbraco-cms/backoffice/dynamic-root'; + +@customElement('umb-dynamic-root-query-step-picker-modal') +export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBaseElement { + #dynamicRootRepository: UmbDynamicRootRepository; + + constructor() { + super(); + + this.#dynamicRootRepository = new UmbDynamicRootRepository(this); + } + + // TODO: LK to read up on this: https://lit.dev/docs/components/lifecycle/ [LK] + protected firstUpdated(): void { + this.#getDynamicRootQuerySteps(); + } + + async #getDynamicRootQuerySteps() { + + const { data } = await this.#dynamicRootRepository.getQuerySteps(); + console.log('steps', data); + } + + #close() { + this.modalContext?.reject(); + } + + #documentTypePickerContext = new UmbDocumentTypePickerContext(this); + + #openCustom() { + this.#submit({ + alias: 'custom', + anyOfDocTypeKeys: [], + }); + } + + #openDocumentTypePicker(alias: string) { + this.#documentTypePickerContext + .openPicker({ + hideTreeRoot: true, + }) + .then(() => { + const selectedItems = this.#documentTypePickerContext.getSelection(); + this.#submit({ + alias: alias, + anyOfDocTypeKeys: selectedItems, + }); + }); + } + + #submit(value: UmbTreePickerDynamicRootQueryStep) { + this.modalContext?.setValue(value); + this.modalContext?.submit(); + } + + // TODO: This needs to be replaced with a lookup from the manifests, e.g. new extension type `dynamicRoot` [LK] + #queryStepButtons = [ + { + alias: 'NearestAncestorOrSelf', + title: this.localize.term('dynamicRoot_queryStepNearestAncestorOrSelfTitle'), + description: this.localize.term('dynamicRoot_queryStepNearestAncestorOrSelfDesc'), + action: () => this.#openDocumentTypePicker('NearestAncestorOrSelf'), + }, + { + alias: 'FurthestAncestorOrSelf', + title: this.localize.term('dynamicRoot_queryStepFurthestAncestorOrSelfTitle'), + description: this.localize.term('dynamicRoot_queryStepFurthestAncestorOrSelfDesc'), + action: () => this.#openDocumentTypePicker('FurthestAncestorOrSelf'), + }, + { + alias: 'NearestDescendantOrSelf', + title: this.localize.term('dynamicRoot_queryStepNearestDescendantOrSelfTitle'), + description: this.localize.term('dynamicRoot_queryStepNearestDescendantOrSelfDesc'), + action: () => this.#openDocumentTypePicker('NearestDescendantOrSelf'), + }, + { + alias: 'FurthestDescendantOrSelf', + title: this.localize.term('dynamicRoot_queryStepFurthestDescendantOrSelfTitle'), + description: this.localize.term('dynamicRoot_queryStepFurthestDescendantOrSelfDesc'), + action: () => this.#openDocumentTypePicker('FurthestDescendantOrSelf'), + }, + // TODO: Remove `custom` once the above are implemented. [LK] + { + alias: 'custom', + title: this.localize.term('dynamicRoot_queryStepCustomTitle'), + description: this.localize.term('dynamicRoot_queryStepCustomDesc'), + action: () => this.#openCustom(), + }, + ]; + + render() { + return html` + +
+ + ${map( + this.#queryStepButtons, + (btn) => html` + +

${btn.title}

+

${btn.description}

+
+ `, + )} +
+
+
+ +
+
+ `; + } + + static styles = [ + UmbTextStyles, + css` + uui-box > uui-button { + display: block; + --uui-button-content-align: flex-start; + } + + uui-box > uui-button:not(:last-of-type) { + margin-bottom: var(--uui-size-space-5); + } + + h3, + p { + text-align: left; + } + `, + ]; +} + +export default UmbDynamicRootQueryStepPickerModalModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-dynamic-root-query-step-picker-modal': UmbDynamicRootQueryStepPickerModalModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts index 5cdcc2eda3..1a7a4d6fdc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/index.ts @@ -1,4 +1,7 @@ -import { UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS } from './manifests.js'; +import { + UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS, + UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL_ALIAS, +} from './manifests.js'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export const UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL = new UmbModalToken(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS, { @@ -7,3 +10,13 @@ export const UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL = new UmbModalToken(UMB_DYNAMI size: 'small', }, }); + +export const UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL = new UmbModalToken( + UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL_ALIAS, + { + modal: { + type: 'sidebar', + size: 'small', + }, + }, +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts index c915e81db3..5d27d63d23 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts @@ -1,6 +1,7 @@ import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS = 'Umb.Modal.DynamicRoot.OriginPicker'; +export const UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL_ALIAS = 'Umb.Modal.DynamicRoot.QueryStepPicker'; const modals: Array = [ { @@ -9,6 +10,12 @@ const modals: Array = [ name: 'Choose an origin', js: () => import('./dynamic-root-origin-picker-modal.element.js'), }, + { + type: 'modal', + alias: UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL_ALIAS, + name: 'Append step to query', + js: () => import('./dynamic-root-query-step-picker-modal.element.js'), + }, ]; export const manifests = [...modals]; From f01a0416b7043917361cffbd1104ed9158a810dc Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 24 Jan 2024 10:03:44 +0000 Subject: [PATCH 602/786] [WIP] Document Root picker UI amends Work to consolidate the Document picker and Dynamic Root picker logic. --- .../src/assets/lang/en-us.ts | 2 +- .../input-tree-picker-source.element.ts | 68 +++-- ...or-ui-tree-picker-source-picker.element.ts | 5 +- .../input-tree/input-tree.element.ts | 2 +- .../input-document-picker-root.element.ts | 253 +++++++++++------- ...ic-root-query-step-picker-modal.element.ts | 1 - 6 files changed, 208 insertions(+), 123 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts index fcedf7094b..eb8b1f3dc2 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts @@ -1148,7 +1148,7 @@ export default { }, contentPicker: { allowedItemTypes: 'You can only select items of type(s): %0%', - defineDynamicRoot: 'Specify a Dynamic Root', + defineDynamicRoot: 'Specify root node', defineRootNode: 'Pick root node', pickedTrashedItem: 'You have picked a content item currently deleted or in the recycle bin', pickedTrashedItems: 'You have picked content items currently deleted or in the recycle bin', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index 4d8a8ac9ff..3e33c26423 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -6,21 +6,22 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; export type UmbTreePickerSource = { - type?: UmbTreePickerSourceType; - id?: string | null; - dynamicRoot?: UmbTreePickerDynamicRoot | null; + type: UmbTreePickerSourceType; + id?: string; + dynamicRoot?: UmbTreePickerDynamicRoot; }; export type UmbTreePickerSourceType = 'content' | 'member' | 'media'; export type UmbTreePickerDynamicRoot = { originAlias: string; - querySteps?: Array | null; + originKey?: string; + querySteps?: Array; }; export type UmbTreePickerDynamicRootQueryStep = { alias: string; - anyOfDocTypeKeys: Array; + anyOfDocTypeKeys?: Array; }; @customElement('umb-input-tree-picker-source') @@ -29,33 +30,33 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem return undefined; } - private _type: UmbTreePickerSource['type'] = 'content'; + #type: UmbTreePickerSourceType = 'content'; @property() - public set type(value: UmbTreePickerSource['type']) { + public set type(value: UmbTreePickerSourceType) { if (value === undefined) { - value = this._type; + value = this.#type; } - const oldValue = this._type; + const oldValue = this.#type; this._options = this._options.map((option) => option.value === value ? { ...option, selected: true } : { ...option, selected: false }, ); - this._type = value; + this.#type = value; this.requestUpdate('type', oldValue); } - public get type(): UmbTreePickerSource['type'] { - return this._type; + public get type(): UmbTreePickerSourceType { + return this.#type; } @property({ attribute: 'node-id' }) - nodeId?: string | null; + nodeId?: string; @property({ attribute: false }) - dynamicRoot?: UmbTreePickerDynamicRoot | null; + dynamicRoot?: UmbTreePickerDynamicRoot | undefined; @state() _options: Array
`; } - #renderIcon(item: DocumentItemResponseModel) { - if (!item.icon) return; - return html``; + #renderAddQueryStepButton() { + return html` `; } - #renderIsTrashed(item: DocumentItemResponseModel) { - if (!item.isTrashed) return; - return html`Trashed`; - } + static styles = [ + css` + .add-button { + width: 100%; + } + `, + ]; } export default UmbInputDocumentPickerRootElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts index 9b8a2abf96..58eee202e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -21,7 +21,6 @@ export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBase } async #getDynamicRootQuerySteps() { - const { data } = await this.#dynamicRootRepository.getQuerySteps(); console.log('steps', data); } From 1e62003909fa8e7744052267f1b4763b23677625 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 24 Jan 2024 16:02:42 +0000 Subject: [PATCH 603/786] Dynamic Root: Adds sorting to Query Steps --- .../input-document-picker-root.element.ts | 72 ++++++++++++++----- 1 file changed, 53 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 9f50a832db..35889cb17c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -2,16 +2,23 @@ import { UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, } from '@umbraco-cms/backoffice/dynamic-root'; -import { html, customElement, property, ifDefined, map, css } from '@umbraco-cms/backoffice/external/lit'; +import { html, css, customElement, property, ifDefined, map } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; -import { - UMB_MODAL_MANAGER_CONTEXT, - UmbModalContext, - UmbModalManagerContext, -} from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; + +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element, model) => { + return element.getAttribute('data-idx') === model; + }, + querySelectModelToElement: () => null, + identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot', + itemSelector: 'uui-ref-node', + containerSelector: '#query-steps', +}; @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { @@ -34,6 +41,23 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl }); } + connectedCallback(): void { + super.connectedCallback(); + + this.#updateQuerySteps(this.data?.querySteps); + } + + #sorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + onChange: ({ model }) => { + if (this.data && this.data.querySteps) { + const steps = [...this.data.querySteps]; + const querySteps = model.map((index) => steps[parseInt(index)]); + this.#updateQuerySteps(querySteps); + } + }, + }); + #openDynamicRootOriginPicker() { this.#openModal = this._modalContext?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); this.#openModal?.onSubmit().then((data) => { @@ -46,15 +70,19 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl this.#openModal = this._modalContext?.open(UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, {}); this.#openModal?.onSubmit().then((step) => { if (this.data) { - const oldValue = this.data; const querySteps = [...(this.data.querySteps ?? []), step]; - this.data = { ...this.data, ...{ querySteps } }; - this.requestUpdate('data', oldValue); - this.dispatchEvent(new UmbChangeEvent()); + this.#updateQuerySteps(querySteps); } }); } + #updateQuerySteps(querySteps?: Array) { + if (!this.data) return; + this.#sorter.setModel(querySteps?.map((_, index) => index.toString()) ?? []); + this.data = { ...this.data, ...{ querySteps } }; + this.dispatchEvent(new UmbChangeEvent()); + } + // NOTE: Taken from: https://github.com/umbraco/Umbraco-CMS/blob/release-13.0.0/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/treesource.controller.js#L128-L141 [LK] #getIconForDynamicRootOrigin(alias?: string) { switch (alias) { @@ -109,21 +137,16 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl if (this.data?.querySteps) { const index = this.data.querySteps.indexOf(item); if (index !== -1) { - const oldValue = this.data; - const querySteps = [...this.data.querySteps]; querySteps.splice(index, 1); - - this.data = { ...this.data, ...{ querySteps } }; - - this.requestUpdate('data', oldValue); - this.dispatchEvent(new UmbChangeEvent()); + this.#updateQuerySteps(querySteps); } } } #clearDynamicRootQuery() { this.data = undefined; + this.dispatchEvent(new UmbChangeEvent()); } render() { @@ -148,6 +171,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl @@ -167,14 +191,20 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #renderQuerySteps() { if (!this.data?.querySteps) return; - return html`${map(this.data.querySteps, (item) => this.#renderQueryStep(item))}`; + return html` + + ${map(this.data.querySteps, (item, index) => this.#renderQueryStep(item, index))} + + `; } - #renderQueryStep(item: UmbTreePickerDynamicRootQueryStep) { + #renderQueryStep(item: UmbTreePickerDynamicRootQueryStep, index: number) { if (!item.alias) return; return html` @@ -200,6 +230,10 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl .add-button { width: 100%; } + + uui-ref-node[drag-placeholder] { + opacity: 0.2; + } `, ]; } From 3de7759c9344bdb1c07f6c97900cc5fb2dadd470 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 24 Jan 2024 16:58:32 +0000 Subject: [PATCH 604/786] Added backwards compatibility logic for the old content picker values --- .../input-tree-picker-source.element.ts | 13 ++++++++++++- .../input-document-picker-root.element.ts | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index 3e33c26423..fcc69f7944 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -65,6 +65,15 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem { value: 'member', name: 'Members' }, ]; + connectedCallback(): void { + super.connectedCallback(); + + // NOTE: Slight hack to workaround consolidating the old content-picker and dynamic-root. [LK:2024-01-24] + if (this.nodeId && !this.dynamicRoot) { + this.dynamicRoot = { originAlias: 'ByKey', originKey: this.nodeId, querySteps: [] }; + } + } + #onContentTypeChange(event: UUISelectEvent) { event.stopPropagation(); @@ -83,11 +92,13 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem // NOTE: Slight hack to workaround consolidating the old content-picker and dynamic-root. [LK:2024-01-24] if (this.dynamicRoot?.originAlias === 'ByKey') { - if (!this.dynamicRoot?.querySteps || this.dynamicRoot?.querySteps?.length === 0) { + if (!this.dynamicRoot.querySteps || this.dynamicRoot.querySteps?.length === 0) { this.nodeId = this.dynamicRoot.originKey; } else { this.nodeId = undefined; } + } else if (this.nodeId) { + this.nodeId = undefined; } break; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 35889cb17c..012b4e88d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -54,6 +54,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl const steps = [...this.data.querySteps]; const querySteps = model.map((index) => steps[parseInt(index)]); this.#updateQuerySteps(querySteps); + this.dispatchEvent(new UmbChangeEvent()); } }, }); @@ -72,6 +73,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl if (this.data) { const querySteps = [...(this.data.querySteps ?? []), step]; this.#updateQuerySteps(querySteps); + this.dispatchEvent(new UmbChangeEvent()); } }); } @@ -80,7 +82,6 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl if (!this.data) return; this.#sorter.setModel(querySteps?.map((_, index) => index.toString()) ?? []); this.data = { ...this.data, ...{ querySteps } }; - this.dispatchEvent(new UmbChangeEvent()); } // NOTE: Taken from: https://github.com/umbraco/Umbraco-CMS/blob/release-13.0.0/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/treesource.controller.js#L128-L141 [LK] @@ -140,6 +141,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl const querySteps = [...this.data.querySteps]; querySteps.splice(index, 1); this.#updateQuerySteps(querySteps); + this.dispatchEvent(new UmbChangeEvent()); } } } From 791bcc212fc76f9ce8f4ae104faf2b291e12a460 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 24 Jan 2024 17:48:12 +0000 Subject: [PATCH 605/786] [WIP] Started implementing the `postDynamicRootQuery` API --- .../property-editor-ui-tree-picker.element.ts | 54 ++++++++++++++++++- .../repository/dynamic-root.repository.ts | 5 +- .../repository/dynamic-root.server.data.ts | 23 +++++++- 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 0b6d9b8133..bdd43b08b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -1,10 +1,14 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { type UmbPropertyEditorConfigCollection, UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; +import { + type UmbPropertyEditorConfigCollection, + UmbPropertyValueChangeEvent, +} from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbInputTreeElement } from '@umbraco-cms/backoffice/tree'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; +import { UmbDynamicRootRepository } from '@umbraco-cms/backoffice/dynamic-root'; /** * @element umb-property-editor-ui-tree-picker @@ -36,12 +40,17 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen @state() ignoreUserStartNodes?: boolean; + #dynamicRoot?: UmbTreePickerSource['dynamicRoot'] | undefined; + + #dynamicRootRepository: UmbDynamicRootRepository; + @property({ attribute: false }) public set config(config: UmbPropertyEditorConfigCollection | undefined) { const startNode: UmbTreePickerSource | undefined = config?.getValueByAlias('startNode'); if (startNode) { this.type = startNode.type; this.startNodeId = startNode.id; + this.#dynamicRoot = startNode.dynamicRoot; } this.min = Number(config?.getValueByAlias('minNumber')) || 0; @@ -52,6 +61,47 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen this.ignoreUserStartNodes = config?.getValueByAlias('ignoreUserStartNodes'); } + constructor() { + super(); + + this.#dynamicRootRepository = new UmbDynamicRootRepository(this); + } + + connectedCallback() { + super.connectedCallback(); + + // TODO: Implement `startNode.dynamicRoot` [LK] + if (this.#dynamicRoot) { + console.log('dynamicRoot', this.#dynamicRoot); + + this.#dynamicRootRepository + .postDynamicRootQuery({ + context: { + id: 'b327ffa1-749a-4278-aa63-c020dba6b932', + parentId: 'b327ffa1-749a-4278-aa63-c020dba6b932', + culture: null, + segment: null, + }, + query: { + origin: { + alias: this.#dynamicRoot.originAlias, + key: this.#dynamicRoot.originKey, + }, + steps: this.#dynamicRoot.querySteps!.map((step) => { + return { + alias: step.alias!, + documentTypeIds: step.anyOfDocTypeKeys!, + }; + }), + }, + }) + .then((result) => { + // TODO: Implement the result from `postDynamicRootQuery`. [LK] + console.log('postDynamicRootQuery', result); + }); + } + } + #onChange(e: CustomEvent) { this.value = (e.target as UmbInputTreeElement).value as string; this.dispatchEvent(new UmbPropertyValueChangeEvent()); @@ -60,7 +110,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen render() { return html` Date: Thu, 25 Jan 2024 12:22:01 +0000 Subject: [PATCH 606/786] Dynamic Root: Introduced new extension types - `ManifestDynamicRootOrigin` - `ManifestDynamicRootQueryStep` --- .../models/dynamic-root.model.ts | 25 ++++ .../core/extension-registry/models/index.ts | 4 + .../packages/dynamic-root/modals/manifests.ts | 122 +++++++++++++++++- 3 files changed, 149 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dynamic-root.model.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dynamic-root.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dynamic-root.model.ts new file mode 100644 index 0000000000..a9280cb7a5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/dynamic-root.model.ts @@ -0,0 +1,25 @@ +import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api'; + +export interface ManifestDynamicRootOrigin extends ManifestBase { + type: 'dynamicRootOrigin'; + meta: MetaDynamicRootOrigin; +} + +export interface ManifestDynamicRootQueryStep extends ManifestBase { + type: 'dynamicRootQueryStep'; + meta: MetaDynamicRootQueryStep; +} + +export interface MetaDynamicRootOrigin { + originAlias: string; + label?: string; + description?: string; + icon?: string; +} + +export interface MetaDynamicRootQueryStep { + queryStepAlias: string; + label?: string; + description?: string; + icon?: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts index c5378f48cd..405d41ee4f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts @@ -2,6 +2,7 @@ import type { ManifestCollection } from './collection.models.js'; import type { ManifestCollectionView } from './collection-view.model.js'; import type { ManifestDashboard } from './dashboard.model.js'; import type { ManifestDashboardCollection } from './dashboard-collection.model.js'; +import type { ManifestDynamicRootOrigin, ManifestDynamicRootQueryStep } from './dynamic-root.model.js'; import type { ManifestEntityAction } from './entity-action.model.js'; import type { ManifestEntityBulkAction } from './entity-bulk-action.model.js'; import type { ManifestExternalLoginProvider } from './external-login-provider.model.js'; @@ -45,6 +46,7 @@ export type * from './collection-action.model.js'; export type * from './collection-view.model.js'; export type * from './dashboard-collection.model.js'; export type * from './dashboard.model.js'; +export type * from './dynamic-root.model.js'; export type * from './entity-action.model.js'; export type * from './entity-bulk-action.model.js'; export type * from './external-login-provider.model.js'; @@ -84,6 +86,8 @@ export type ManifestTypes = | ManifestCollectionAction | ManifestDashboard | ManifestDashboardCollection + | ManifestDynamicRootOrigin + | ManifestDynamicRootQueryStep | ManifestEntityAction | ManifestEntityBulkAction | ManifestEntryPoint diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts index 5d27d63d23..97a63c351d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/manifests.ts @@ -1,4 +1,8 @@ -import { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; +import type { + ManifestDynamicRootOrigin, + ManifestDynamicRootQueryStep, + ManifestModal, +} from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL_ALIAS = 'Umb.Modal.DynamicRoot.OriginPicker'; export const UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL_ALIAS = 'Umb.Modal.DynamicRoot.QueryStepPicker'; @@ -18,4 +22,118 @@ const modals: Array = [ }, ]; -export const manifests = [...modals]; +const origins: Array = [ + { + type: 'dynamicRootOrigin', + alias: 'Umb.DynamicRootOrigin.Root', + name: 'Dynamic Root Origin: Root', + meta: { + originAlias: 'Root', + label: 'Root', + description: 'Root node of this editing session.', + icon: 'icon-home', + }, + weight: 100, + }, + { + type: 'dynamicRootOrigin', + alias: 'Umb.DynamicRootOrigin.Parent', + name: 'Dynamic Root Origin: Parent', + meta: { + originAlias: 'Parent', + label: 'Parent', + description: 'The parent node of the source in this editing session.', + icon: 'icon-page-up', + }, + weight: 90, + }, + { + type: 'dynamicRootOrigin', + alias: 'Umb.DynamicRootOrigin.Current', + name: 'Dynamic Root Origin: Current', + meta: { + originAlias: 'Current', + label: 'Current', + description: 'The content node that is source for this editing session.', + icon: 'icon-document', + }, + weight: 80, + }, + { + type: 'dynamicRootOrigin', + alias: 'Umb.DynamicRootOrigin.Site', + name: 'Dynamic Root Origin: Site', + meta: { + originAlias: 'Site', + label: 'Site', + description: 'Find nearest node with a hostname.', + icon: 'icon-home', + }, + weight: 70, + }, + { + type: 'dynamicRootOrigin', + alias: 'Umb.DynamicRootOrigin.ByKey', + name: 'Dynamic Root Origin: By Key', + meta: { + originAlias: 'ByKey', + label: 'Specific Node', + description: 'Pick a specific Node as the origin for this query.', + icon: 'icon-wand', + }, + weight: 60, + }, +]; + +const querySteps: Array = [ + { + type: 'dynamicRootQueryStep', + alias: 'Umb.DynamicRootQueryStep.NearestAncestorOrSelf', + name: 'Dynamic Root Query Step: Nearest Ancestor Or Self', + meta: { + queryStepAlias: 'NearestAncestorOrSelf', + label: 'Nearest Ancestor Or Self', + description: 'Query the nearest ancestor or self that fits with one of the configured types.', + icon: 'icon-arrow-up', + }, + weight: 100, + }, + { + type: 'dynamicRootQueryStep', + alias: 'Umb.DynamicRootQueryStep.FurthestAncestorOrSelf', + name: 'Dynamic Root Query Step: Furthest Ancestor Or Self', + meta: { + queryStepAlias: 'FurthestAncestorOrSelf', + label: 'Furthest Ancestor Or Self', + description: 'Query the furthest ancestor or self that fits with one of the configured types.', + icon: 'icon-arrow-up', + }, + weight: 90, + }, + { + type: 'dynamicRootQueryStep', + alias: 'Umb.DynamicRootQueryStep.NearestDescendantOrSelf', + name: 'Dynamic Root Query Step: Nearest Descendant Or Self', + meta: { + queryStepAlias: 'NearestDescendantOrSelf', + label: 'Nearest Descendant Or Self', + description: 'Query the nearest descendant or self that fits with one of the configured types.', + icon: 'icon-arrow-down', + }, + weight: 80, + }, + { + type: 'dynamicRootQueryStep', + alias: 'Umb.DynamicRootQueryStep.FurthestDescendantOrSelf', + name: 'Dynamic Root Query Step: Furthest Descendant Or Self', + meta: { + queryStepAlias: 'FurthestDescendantOrSelf', + label: 'Furthest Descendant Or Self', + description: 'Query the furthest descendant or self that fits with one of the configured types.', + icon: 'icon-arrow-down', + }, + weight: 70, + }, +]; + +export const manifests = [...modals, ...origins, ...querySteps]; From 02376cd9908061ea5f980a0b62692da579a0e1d2 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 25 Jan 2024 12:23:47 +0000 Subject: [PATCH 607/786] Wired up the Dynamic Root extension types in the UI We don't need to call `dynamicRootRepository.getQuerySteps()` API, as the manifest should contain all the custom Dynamic Root query steps. --- ...ynamic-root-origin-picker-modal.element.ts | 105 +++++++----------- ...ic-root-query-step-picker-modal.element.ts | 82 ++++---------- .../repository/dynamic-root.repository.ts | 2 +- .../repository/dynamic-root.server.data.ts | 2 +- 4 files changed, 65 insertions(+), 126 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts index d9e95681b1..283a5cc813 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts @@ -1,44 +1,59 @@ import { UmbDocumentPickerContext } from '../../documents/documents/components/input-document/input-document.context.js'; -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, map } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, map, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { type UmbTreePickerDynamicRoot } from '@umbraco-cms/backoffice/components'; -import { type DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbTreePickerDynamicRoot } from '@umbraco-cms/backoffice/components'; +import { type ManifestDynamicRootOrigin, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-dynamic-root-origin-picker-modal') export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseElement { + @state() + private _origins: Array = []; + + #documentPickerContext = new UmbDocumentPickerContext(this); + constructor() { super(); this.#documentPickerContext.max = 1; - this.observe(this.#documentPickerContext.selectedItems, (selectedItems) => this.#selectedDocument(selectedItems)); + this.observe( + umbExtensionsRegistry.extensionsOfType('dynamicRootOrigin'), + (origins: Array) => { + this._origins = origins; + }, + ); } - #choose(alias: string) { - this.#submit({ - originAlias: alias, - }); + #choose(item: ManifestDynamicRootOrigin) { + switch (item.meta.originAlias) { + // NOTE: Edge-case. Currently this is the only one that uses a document picker, + // but other custom origins may want other configuration options. [LK:2024-01-25] + case 'ByKey': + this.#openDocumentPicker(item.meta.originAlias); + break; + default: + this.#submit({ originAlias: item.meta.originAlias }); + break; + } } #close() { this.modalContext?.reject(); } - #documentPickerContext = new UmbDocumentPickerContext(this); - - #openDocumentPicker() { - this.#documentPickerContext.openPicker({ - hideTreeRoot: true, - }); - } - - #selectedDocument(selectedItems: Array) { - if (selectedItems.length !== 1) return; - this.#submit({ - originAlias: 'ByKey', - originKey: selectedItems[0].id, - }); + #openDocumentPicker(originAlias: string) { + this.#documentPickerContext + .openPicker({ + hideTreeRoot: true, + }) + .then(() => { + const selectedItems = this.#documentPickerContext.getSelection(); + if (selectedItems.length !== 1) return; + this.#submit({ + originAlias, + originKey: selectedItems[0], + }); + }); } #submit(value: UmbTreePickerDynamicRoot) { @@ -46,50 +61,17 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle this.modalContext?.submit(); } - #originButtons = [ - { - alias: 'Root', - title: this.localize.term('dynamicRoot_originRootTitle'), - description: this.localize.term('dynamicRoot_originRootDesc'), - action: () => this.#choose('Root'), - }, - { - alias: 'Parent', - title: this.localize.term('dynamicRoot_originParentTitle'), - description: this.localize.term('dynamicRoot_originParentDesc'), - action: () => this.#choose('Parent'), - }, - { - alias: 'Current', - title: this.localize.term('dynamicRoot_originCurrentTitle'), - description: this.localize.term('dynamicRoot_originCurrentDesc'), - action: () => this.#choose('Current'), - }, - { - alias: 'Site', - title: this.localize.term('dynamicRoot_originSiteTitle'), - description: this.localize.term('dynamicRoot_originSiteDesc'), - action: () => this.#choose('Site'), - }, - { - alias: 'ByKey', - title: this.localize.term('dynamicRoot_originByKeyTitle'), - description: this.localize.term('dynamicRoot_originByKeyDesc'), - action: () => this.#openDocumentPicker(), - }, - ]; - render() { return html`
${map( - this.#originButtons, - (btn) => html` - -

${btn.title}

-

${btn.description}

+ this._origins, + (item) => html` + this.#choose(item)} look="placeholder" label="${ifDefined(item.meta.label)}"> +

${item.meta.label}

+

${item.meta.description}

`, )} @@ -103,7 +85,6 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle } static styles = [ - UmbTextStyles, css` uui-box > uui-button { display: block; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts index 58eee202e3..75407f1cda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -1,43 +1,36 @@ import { UmbDocumentTypePickerContext } from '../../documents/document-types/components/input-document-type/input-document-type.context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { css, html, customElement, map } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, map, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { type UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; -import { UmbDynamicRootRepository } from '@umbraco-cms/backoffice/dynamic-root'; +import type { UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; +import { type ManifestDynamicRootQueryStep, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-dynamic-root-query-step-picker-modal') export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBaseElement { - #dynamicRootRepository: UmbDynamicRootRepository; + @state() + private _querySteps: Array = []; + + #documentTypePickerContext = new UmbDocumentTypePickerContext(this); constructor() { super(); - this.#dynamicRootRepository = new UmbDynamicRootRepository(this); + this.observe( + umbExtensionsRegistry.extensionsOfType('dynamicRootQueryStep'), + (querySteps: Array) => { + this._querySteps = querySteps; + }, + ); } - // TODO: LK to read up on this: https://lit.dev/docs/components/lifecycle/ [LK] - protected firstUpdated(): void { - this.#getDynamicRootQuerySteps(); - } - - async #getDynamicRootQuerySteps() { - const { data } = await this.#dynamicRootRepository.getQuerySteps(); - console.log('steps', data); + #choose(item: ManifestDynamicRootQueryStep) { + this.#openDocumentTypePicker(item.meta.queryStepAlias); } #close() { this.modalContext?.reject(); } - #documentTypePickerContext = new UmbDocumentTypePickerContext(this); - - #openCustom() { - this.#submit({ - alias: 'custom', - anyOfDocTypeKeys: [], - }); - } - #openDocumentTypePicker(alias: string) { this.#documentTypePickerContext .openPicker({ @@ -57,52 +50,17 @@ export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBase this.modalContext?.submit(); } - // TODO: This needs to be replaced with a lookup from the manifests, e.g. new extension type `dynamicRoot` [LK] - #queryStepButtons = [ - { - alias: 'NearestAncestorOrSelf', - title: this.localize.term('dynamicRoot_queryStepNearestAncestorOrSelfTitle'), - description: this.localize.term('dynamicRoot_queryStepNearestAncestorOrSelfDesc'), - action: () => this.#openDocumentTypePicker('NearestAncestorOrSelf'), - }, - { - alias: 'FurthestAncestorOrSelf', - title: this.localize.term('dynamicRoot_queryStepFurthestAncestorOrSelfTitle'), - description: this.localize.term('dynamicRoot_queryStepFurthestAncestorOrSelfDesc'), - action: () => this.#openDocumentTypePicker('FurthestAncestorOrSelf'), - }, - { - alias: 'NearestDescendantOrSelf', - title: this.localize.term('dynamicRoot_queryStepNearestDescendantOrSelfTitle'), - description: this.localize.term('dynamicRoot_queryStepNearestDescendantOrSelfDesc'), - action: () => this.#openDocumentTypePicker('NearestDescendantOrSelf'), - }, - { - alias: 'FurthestDescendantOrSelf', - title: this.localize.term('dynamicRoot_queryStepFurthestDescendantOrSelfTitle'), - description: this.localize.term('dynamicRoot_queryStepFurthestDescendantOrSelfDesc'), - action: () => this.#openDocumentTypePicker('FurthestDescendantOrSelf'), - }, - // TODO: Remove `custom` once the above are implemented. [LK] - { - alias: 'custom', - title: this.localize.term('dynamicRoot_queryStepCustomTitle'), - description: this.localize.term('dynamicRoot_queryStepCustomDesc'), - action: () => this.#openCustom(), - }, - ]; - render() { return html`
${map( - this.#queryStepButtons, - (btn) => html` - -

${btn.title}

-

${btn.description}

+ this._querySteps, + (item) => html` + this.#choose(item)} look="placeholder" label="${ifDefined(item.meta.label)}"> +

${item.meta.label}

+

${item.meta.description}

`, )} diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts index c02cb44978..62c6c6c0ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts @@ -1,5 +1,5 @@ import { UmbDynamicRootServerDataSource } from './dynamic-root.server.data.js'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { DynamicRootRequestModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts index dac4688cbe..bf8e66ea11 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts @@ -1,4 +1,4 @@ -import { DynamicRootRequestModel, DynamicRootResource } from '@umbraco-cms/backoffice/backend-api'; +import { type DynamicRootRequestModel, DynamicRootResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; From 9f97582c3d961a216c6e1ed984e97bb983098078 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 25 Jan 2024 12:24:08 +0000 Subject: [PATCH 608/786] Dynamic Root related housekeeping --- .../input-tree-picker-source.element.ts | 4 ++-- .../input-document-picker-root.element.ts | 5 +++-- .../input-document/input-document.element.ts | 12 ++++++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index fcc69f7944..41d50ad036 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -68,7 +68,7 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem connectedCallback(): void { super.connectedCallback(); - // NOTE: Slight hack to workaround consolidating the old content-picker and dynamic-root. [LK:2024-01-24] + // HACK: Workaround consolidating the old content-picker and dynamic-root. [LK:2024-01-24] if (this.nodeId && !this.dynamicRoot) { this.dynamicRoot = { originAlias: 'ByKey', originKey: this.nodeId, querySteps: [] }; } @@ -90,7 +90,7 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem case 'content': this.dynamicRoot = (event.target as UmbInputDocumentPickerRootElement).data; - // NOTE: Slight hack to workaround consolidating the old content-picker and dynamic-root. [LK:2024-01-24] + // HACK: Workaround consolidating the old content-picker and dynamic-root. [LK:2024-01-24] if (this.dynamicRoot?.originAlias === 'ByKey') { if (!this.dynamicRoot.querySteps || this.dynamicRoot.querySteps?.length === 0) { this.nodeId = this.dynamicRoot.originKey; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 012b4e88d8..9569dedff0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -5,8 +5,9 @@ import { import { html, css, customElement, property, ifDefined, map } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; -import { UMB_MODAL_MANAGER_CONTEXT, UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; +import type { UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index c2877f68ed..08192b0d86 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -118,6 +118,13 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { this._editDocumentPath = routeBuilder({}); }); + this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); + } + + connectedCallback(): void { + super.connectedCallback(); + this.addValidator( 'rangeUnderflow', () => this.minMessage, @@ -129,9 +136,6 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max, ); - - this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } protected getFormElement() { @@ -147,7 +151,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { #openPicker() { // TODO: Configure the content picker, with `startNodeId` and `ignoreUserStartNodes` [LK] - console.log('_openPicker', [this.startNodeId, this.ignoreUserStartNodes]); + console.log('#openPicker', [this.startNodeId, this.ignoreUserStartNodes]); this.#pickerContext.openPicker({ hideTreeRoot: true, pickableFilter: this.#pickableFilter, From 3392d6a1075fd5348ff316556738a053f7ebf691 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 13:36:08 +0100 Subject: [PATCH 609/786] generate server models --- .../src/external/backend-api/src/index.ts | 9 +- .../src/models/AllowedContentTypeModel.ts | 12 ++ .../src/models/AllowedDocumentTypeModel.ts | 9 ++ .../src/models/AllowedMediaTypeModel.ts | 9 ++ .../src/models/EnableTwoFactorRequestModel.ts | 10 ++ .../src/models/NoopSetupTwoFactorModel.ts | 6 + .../models/PagedAllowedDocumentTypeModel.ts | 12 ++ .../src/models/PagedAllowedMediaTypeModel.ts | 12 ++ .../models/PagedDocumentTypeResponseModel.ts | 12 -- .../src/models/UserTwoFactorProviderModel.ts | 10 ++ .../src/services/DictionaryResource.ts | 2 + .../src/services/DocumentResource.ts | 77 ++++++---- .../src/services/DocumentTypeResource.ts | 55 +++++++ .../src/services/MediaTypeResource.ts | 55 +++++++ .../backend-api/src/services/UserResource.ts | 145 ++++++++++++++++++ 15 files changed, 393 insertions(+), 42 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index fc0d96135b..fe145c3fc7 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -7,6 +7,9 @@ export { CancelablePromise, CancelError } from './core/CancelablePromise'; export { OpenAPI } from './core/OpenAPI'; export type { OpenAPIConfig } from './core/OpenAPI'; +export type { AllowedContentTypeModel } from './models/AllowedContentTypeModel'; +export type { AllowedDocumentTypeModel } from './models/AllowedDocumentTypeModel'; +export type { AllowedMediaTypeModel } from './models/AllowedMediaTypeModel'; export type { AuditLogBaseModel } from './models/AuditLogBaseModel'; export type { AuditLogResponseModel } from './models/AuditLogResponseModel'; export type { AuditLogWithUsernameResponseModel } from './models/AuditLogWithUsernameResponseModel'; @@ -111,6 +114,7 @@ export type { DynamicRootQueryRequestModel } from './models/DynamicRootQueryRequ export type { DynamicRootQueryStepRequestModel } from './models/DynamicRootQueryStepRequestModel'; export type { DynamicRootRequestModel } from './models/DynamicRootRequestModel'; export type { DynamicRootResponseModel } from './models/DynamicRootResponseModel'; +export type { EnableTwoFactorRequestModel } from './models/EnableTwoFactorRequestModel'; export type { EnableUserRequestModel } from './models/EnableUserRequestModel'; export type { EntityTreeItemResponseModel } from './models/EntityTreeItemResponseModel'; export type { FieldPresentationModel } from './models/FieldPresentationModel'; @@ -187,6 +191,7 @@ export type { MoveMediaRequestModel } from './models/MoveMediaRequestModel'; export type { MoveMediaTypeRequestModel } from './models/MoveMediaTypeRequestModel'; export type { NamedEntityTreeItemResponseModel } from './models/NamedEntityTreeItemResponseModel'; export type { NamedItemResponseModelBaseModel } from './models/NamedItemResponseModelBaseModel'; +export type { NoopSetupTwoFactorModel } from './models/NoopSetupTwoFactorModel'; export type { ObjectTypeResponseModel } from './models/ObjectTypeResponseModel'; export type { OkResult } from './models/OkResult'; export { OperatorModel } from './models/OperatorModel'; @@ -196,6 +201,8 @@ export type { PackageDefinitionResponseModel } from './models/PackageDefinitionR export type { PackageManifestResponseModel } from './models/PackageManifestResponseModel'; export type { PackageMigrationStatusResponseModel } from './models/PackageMigrationStatusResponseModel'; export type { PackageModelBaseModel } from './models/PackageModelBaseModel'; +export type { PagedAllowedDocumentTypeModel } from './models/PagedAllowedDocumentTypeModel'; +export type { PagedAllowedMediaTypeModel } from './models/PagedAllowedMediaTypeModel'; export type { PagedAuditLogResponseModel } from './models/PagedAuditLogResponseModel'; export type { PagedAuditLogWithUsernameResponseModel } from './models/PagedAuditLogWithUsernameResponseModel'; export type { PagedCultureReponseModel } from './models/PagedCultureReponseModel'; @@ -204,7 +211,6 @@ export type { PagedDictionaryOverviewResponseModel } from './models/PagedDiction export type { PagedDocumentBlueprintTreeItemResponseModel } from './models/PagedDocumentBlueprintTreeItemResponseModel'; export type { PagedDocumentRecycleBinItemResponseModel } from './models/PagedDocumentRecycleBinItemResponseModel'; export type { PagedDocumentTreeItemResponseModel } from './models/PagedDocumentTreeItemResponseModel'; -export type { PagedDocumentTypeResponseModel } from './models/PagedDocumentTypeResponseModel'; export type { PagedDocumentTypeTreeItemResponseModel } from './models/PagedDocumentTypeTreeItemResponseModel'; export type { PagedFileSystemTreeItemPresentationModel } from './models/PagedFileSystemTreeItemPresentationModel'; export type { PagedHealthCheckGroupResponseModel } from './models/PagedHealthCheckGroupResponseModel'; @@ -358,6 +364,7 @@ export type { UserResponseModel } from './models/UserResponseModel'; export type { UserSettingsModel } from './models/UserSettingsModel'; export { UserStateModel } from './models/UserStateModel'; export type { UserTourStatusesResponseModel } from './models/UserTourStatusesResponseModel'; +export type { UserTwoFactorProviderModel } from './models/UserTwoFactorProviderModel'; export type { ValueModelBaseModel } from './models/ValueModelBaseModel'; export type { VariantItemResponseModel } from './models/VariantItemResponseModel'; export type { VariantModelBaseModel } from './models/VariantModelBaseModel'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts new file mode 100644 index 0000000000..c7197ce531 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedContentTypeModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type AllowedContentTypeModel = { + id: string; + name: string; + description?: string | null; + icon?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts new file mode 100644 index 0000000000..1762891713 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedDocumentTypeModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AllowedContentTypeModel } from './AllowedContentTypeModel'; + +export type AllowedDocumentTypeModel = AllowedContentTypeModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts new file mode 100644 index 0000000000..49ce218c3a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/AllowedMediaTypeModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AllowedContentTypeModel } from './AllowedContentTypeModel'; + +export type AllowedMediaTypeModel = AllowedContentTypeModel; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts new file mode 100644 index 0000000000..7c49e5b473 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/EnableTwoFactorRequestModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type EnableTwoFactorRequestModel = { + code: string; + secret: string; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts new file mode 100644 index 0000000000..f3b8fe2761 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/NoopSetupTwoFactorModel.ts @@ -0,0 +1,6 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type NoopSetupTwoFactorModel = Record; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts new file mode 100644 index 0000000000..f0df413068 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedDocumentTypeModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AllowedDocumentTypeModel } from './AllowedDocumentTypeModel'; + +export type PagedAllowedDocumentTypeModel = { + total: number; + items: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts new file mode 100644 index 0000000000..48ca45fd60 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedAllowedMediaTypeModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { AllowedMediaTypeModel } from './AllowedMediaTypeModel'; + +export type PagedAllowedMediaTypeModel = { + total: number; + items: Array; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts deleted file mode 100644 index ca9a43dd71..0000000000 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PagedDocumentTypeResponseModel.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* generated using openapi-typescript-codegen -- do no edit */ -/* istanbul ignore file */ -/* tslint:disable */ -/* eslint-disable */ - -import type { DocumentTypeResponseModel } from './DocumentTypeResponseModel'; - -export type PagedDocumentTypeResponseModel = { - total: number; - items: Array; -}; - diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts new file mode 100644 index 0000000000..be0c9fc780 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/UserTwoFactorProviderModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserTwoFactorProviderModel = { + providerName: string; + isEnabledOnUser: boolean; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts index 12caed8780..fc9a4bc384 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DictionaryResource.ts @@ -59,6 +59,7 @@ export class DictionaryResource { errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, 409: `Conflict`, }, @@ -132,6 +133,7 @@ export class DictionaryResource { errors: { 400: `Bad Request`, 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, 404: `Not Found`, }, }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index 069064cb14..d02131fc23 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -11,7 +11,6 @@ import type { DomainsResponseModel } from '../models/DomainsResponseModel'; import type { MoveDocumentRequestModel } from '../models/MoveDocumentRequestModel'; import type { PagedDocumentRecycleBinItemResponseModel } from '../models/PagedDocumentRecycleBinItemResponseModel'; import type { PagedDocumentTreeItemResponseModel } from '../models/PagedDocumentTreeItemResponseModel'; -import type { PagedDocumentTypeResponseModel } from '../models/PagedDocumentTypeResponseModel'; import type { PublicAccessRequestModel } from '../models/PublicAccessRequestModel'; import type { PublishDocumentRequestModel } from '../models/PublishDocumentRequestModel'; import type { PublishDocumentWithDescendantsRequestModel } from '../models/PublishDocumentWithDescendantsRequestModel'; @@ -73,6 +72,30 @@ export class DocumentResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static deleteDocumentById({ + id, + }: { + id: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/document/{id}', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -460,34 +483,6 @@ export class DocumentResource { }); } - /** - * @returns PagedDocumentTypeResponseModel Success - * @throws ApiError - */ - public static getDocumentAllowedDocumentTypes({ - parentId, - skip, - take = 100, - }: { - parentId?: string, - skip?: number, - take?: number, - }): CancelablePromise { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/document/allowed-document-types', - query: { - 'parentId': parentId, - 'skip': skip, - 'take': take, - }, - errors: { - 401: `The resource is protected and requires an authentication token`, - 404: `Not Found`, - }, - }); - } - /** * @returns any Success * @throws ApiError @@ -548,6 +543,30 @@ export class DocumentResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static deleteRecycleBinDocumentById({ + id, + }: { + id: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/recycle-bin/document/{id}', + path: { + 'id': id, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + /** * @returns PagedDocumentRecycleBinItemResponseModel Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index 6a71d5699f..62a5466b99 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -12,6 +12,7 @@ import type { DocumentTypeItemResponseModel } from '../models/DocumentTypeItemRe import type { DocumentTypeResponseModel } from '../models/DocumentTypeResponseModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; import type { MoveDocumentTypeRequestModel } from '../models/MoveDocumentTypeRequestModel'; +import type { PagedAllowedDocumentTypeModel } from '../models/PagedAllowedDocumentTypeModel'; import type { PagedDocumentTypeTreeItemResponseModel } from '../models/PagedDocumentTypeTreeItemResponseModel'; import type { UpdateDocumentTypeRequestModel } from '../models/UpdateDocumentTypeRequestModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; @@ -116,6 +117,36 @@ export class DocumentTypeResource { }); } + /** + * @returns PagedAllowedDocumentTypeModel Success + * @throws ApiError + */ + public static getDocumentTypeByIdAllowedChildren({ + id, + skip, + take = 100, + }: { + id: string, + skip?: number, + take?: number, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/document-type/{id}/allowed-children', + path: { + 'id': id, + }, + query: { + 'skip': skip, + 'take': take, + }, + errors: { + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -194,6 +225,30 @@ export class DocumentTypeResource { }); } + /** + * @returns PagedAllowedDocumentTypeModel Success + * @throws ApiError + */ + public static getDocumentTypeAllowedAtRoot({ + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/document-type/allowed-at-root', + query: { + 'skip': skip, + 'take': take, + }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts index ba99baec61..ff19715b0f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaTypeResource.ts @@ -12,6 +12,7 @@ import type { MediaTypeCompositionResponseModel } from '../models/MediaTypeCompo import type { MediaTypeItemResponseModel } from '../models/MediaTypeItemResponseModel'; import type { MediaTypeResponseModel } from '../models/MediaTypeResponseModel'; import type { MoveMediaTypeRequestModel } from '../models/MoveMediaTypeRequestModel'; +import type { PagedAllowedMediaTypeModel } from '../models/PagedAllowedMediaTypeModel'; import type { PagedMediaTypeTreeItemResponseModel } from '../models/PagedMediaTypeTreeItemResponseModel'; import type { UpdateFolderResponseModel } from '../models/UpdateFolderResponseModel'; import type { UpdateMediaTypeRequestModel } from '../models/UpdateMediaTypeRequestModel'; @@ -116,6 +117,36 @@ export class MediaTypeResource { }); } + /** + * @returns PagedAllowedMediaTypeModel Success + * @throws ApiError + */ + public static getMediaTypeByIdAllowedChildren({ + id, + skip, + take = 100, + }: { + id: string, + skip?: number, + take?: number, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/media-type/{id}/allowed-children', + path: { + 'id': id, + }, + query: { + 'skip': skip, + 'take': take, + }, + errors: { + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -194,6 +225,30 @@ export class MediaTypeResource { }); } + /** + * @returns PagedAllowedMediaTypeModel Success + * @throws ApiError + */ + public static getMediaTypeAllowedAtRoot({ + skip, + take = 100, + }: { + skip?: number, + take?: number, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/media-type/allowed-at-root', + query: { + 'skip': skip, + 'take': take, + }, + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 09a5475f82..09ed5b23ed 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts @@ -11,9 +11,11 @@ import type { CurrenUserConfigurationResponseModel } from '../models/CurrenUserC import type { DeleteUsersRequestModel } from '../models/DeleteUsersRequestModel'; import type { DirectionModel } from '../models/DirectionModel'; import type { DisableUserRequestModel } from '../models/DisableUserRequestModel'; +import type { EnableTwoFactorRequestModel } from '../models/EnableTwoFactorRequestModel'; import type { EnableUserRequestModel } from '../models/EnableUserRequestModel'; import type { InviteUserRequestModel } from '../models/InviteUserRequestModel'; import type { LinkedLoginsRequestModel } from '../models/LinkedLoginsRequestModel'; +import type { NoopSetupTwoFactorModel } from '../models/NoopSetupTwoFactorModel'; import type { PagedUserResponseModel } from '../models/PagedUserResponseModel'; import type { ResendInviteUserRequestModel } from '../models/ResendInviteUserRequestModel'; import type { SetAvatarRequestModel } from '../models/SetAvatarRequestModel'; @@ -26,6 +28,7 @@ import type { UserOrderModel } from '../models/UserOrderModel'; import type { UserPermissionsResponseModel } from '../models/UserPermissionsResponseModel'; import type { UserResponseModel } from '../models/UserResponseModel'; import type { UserStateModel } from '../models/UserStateModel'; +import type { UserTwoFactorProviderModel } from '../models/UserTwoFactorProviderModel'; import type { VerifyInviteUserRequestModel } from '../models/VerifyInviteUserRequestModel'; import type { CancelablePromise } from '../core/CancelablePromise'; @@ -171,6 +174,56 @@ export class UserResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getUserById2Fa({ + id, + }: { + id: string, + }): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/user/{id}/2fa', + path: { + 'id': id, + }, + errors: { + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static deleteUserById2FaByProviderName({ + id, + providerName, + }: { + id: string, + providerName: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/user/{id}/2fa/{providerName}', + path: { + 'id': id, + 'providerName': providerName, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 403: `The authenticated user do not have access to this resource`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError @@ -274,6 +327,98 @@ export class UserResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getUserCurrent2Fa(): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/user/current/2fa', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static deleteUserCurrent2FaByProviderName({ + providerName, + code, + }: { + providerName: string, + code?: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'DELETE', + url: '/umbraco/management/api/v1/user/current/2fa/{providerName}', + path: { + 'providerName': providerName, + }, + query: { + 'code': code, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static postUserCurrent2FaByProviderName({ + providerName, + requestBody, + }: { + providerName: string, + requestBody?: EnableTwoFactorRequestModel, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'POST', + url: '/umbraco/management/api/v1/user/current/2fa/{providerName}', + path: { + 'providerName': providerName, + }, + body: requestBody, + mediaType: 'application/json', + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static getUserCurrent2FaByProviderName({ + providerName, + }: { + providerName: string, + }): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/user/current/2fa/{providerName}', + path: { + 'providerName': providerName, + }, + errors: { + 400: `Bad Request`, + 401: `The resource is protected and requires an authentication token`, + 404: `Not Found`, + }, + }); + } + /** * @returns any Success * @throws ApiError From 8b4ddaa92fae35c3ddffeeb5491d28929ca3315a Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 25 Jan 2024 13:55:57 +0100 Subject: [PATCH 610/786] block list --- ...i-block-list-type-configuration.element.ts | 37 ++++++++++++++++++- .../src/packages/block/block-list/types.ts | 2 + ...shboard-localization-dictionary.element.ts | 1 + 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts index 5948997fcb..57744eb391 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts @@ -1,10 +1,12 @@ import type { UmbBlockTypeBaseModel, UmbInputBlockTypeElement } from '../../../block-type/index.js'; import '../../../block-type/components/input-block-type/index.js'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; -import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import { UMB_BLOCK_LIST_TYPE } from '../../types.js'; /** * @element umb-property-editor-ui-block-list-type-configuration @@ -14,16 +16,47 @@ export class UmbPropertyEditorUIBlockListBlockConfigurationElement extends UmbLitElement implements UmbPropertyEditorUiElement { + #blockTypeWorkspaceModalRegistration?: UmbModalRouteRegistrationController< + typeof UMB_WORKSPACE_MODAL.DATA, + typeof UMB_WORKSPACE_MODAL.VALUE + >; + + @state() + private _workspacePath?: string; + + constructor() { + super(); + this.#blockTypeWorkspaceModalRegistration?.destroy(); + + this.#blockTypeWorkspaceModalRegistration = new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath(UMB_BLOCK_LIST_TYPE) + .onSetup(() => { + return { data: { entityType: UMB_BLOCK_LIST_TYPE, preset: {} }, modal: { size: 'large' } }; + }) + .observeRouteBuilder((routeBuilder) => { + const newpath = routeBuilder({}); + this._workspacePath = newpath; + }); + } + @property({ attribute: false }) value: UmbBlockTypeBaseModel[] = []; @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; + #onCreate(e: CustomEvent) { + const selectedElementType = e.detail.contentElementTypeKey; + if (selectedElementType) { + this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + selectedElementType + '/null'); + } + } + render() { return html` { this.value = (e.target as UmbInputBlockTypeElement).value; }}>`; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts index dee3748bfd..bd1e8053c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/types.ts @@ -1,5 +1,7 @@ import type { UmbBlockTypeBaseModel } from '../block-type/index.js'; import type { UmbBlockLayoutBaseModel } from '../index.js'; +export const UMB_BLOCK_LIST_TYPE = 'block-list-type'; + export interface UmbBlockListTypeModel extends UmbBlockTypeBaseModel {} export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts index 6f82558c59..9f60055470 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboards/dictionary/dashboard-localization-dictionary.element.ts @@ -42,6 +42,7 @@ export class UmbDashboardTranslationDictionaryElement extends UmbLitElement { const { data } = await this.#repo.list(0, 1000); this.#dictionaryItems = data?.items ?? []; + this.#setTableColumns(); this.#setTableItems(); } From fdd5522103cbdd4850d6efbde6e605c15fe08518 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 25 Jan 2024 13:04:07 +0000 Subject: [PATCH 611/786] Loads `` on-demand --- ...property-editor-ui-tree-picker-source-type-picker.element.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 3730878b08..7c9e19b87e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -9,6 +9,8 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; +import '../../../../../../documents/document-types/components/input-document-type/input-document-type.element.js'; + /** * @element umb-property-editor-ui-tree-picker-source-type-picker */ From 1bb07ea41cc675ec43f4aaf9a9903728cc7013cf Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 14:56:39 +0100 Subject: [PATCH 612/786] fix type imports --- .../data/document/document-publishing.manager.ts | 11 ++++------- .../src/mocks/data/document/document.db.ts | 5 +++-- .../src/mocks/data/entity/entity-recycle-bin.ts | 2 +- .../src/mocks/data/template.data.ts | 1 - .../src/packages/core/content-type/types.ts | 2 ++ .../tree/reload-tree-item-children/manifests.ts | 4 ++-- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts index a3eeefe33d..d7ae0bbb42 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts @@ -1,10 +1,7 @@ -import { UmbMockDocumentModel } from './document.data.js'; -import { type UmbDocumentMockDB } from './document.db.js'; -import { - ContentStateModel, - PublishDocumentRequestModel, - UnpublishDocumentRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbMockDocumentModel } from './document.data.js'; +import type { UmbDocumentMockDB } from './document.db.js'; +import type { PublishDocumentRequestModel, UnpublishDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMockDocumentPublishingManager { #documentDb: UmbDocumentMockDB; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts index d049a1c55c..6eb5b8f504 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts @@ -4,9 +4,10 @@ import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; import { umbDocumentTypeMockDb } from '../document-type/document-type.db.js'; import { UmbEntityMockDbBase } from '../entity/entity-base.js'; import { UmbEntityRecycleBin } from '../entity/entity-recycle-bin.js'; -import { UmbMockDocumentModel, data } from './document.data.js'; +import type { UmbMockDocumentModel } from './document.data.js'; +import { data } from './document.data.js'; import { UmbMockDocumentPublishingManager } from './document-publishing.manager.js'; -import { +import type { CreateDocumentRequestModel, DocumentItemResponseModel, DocumentResponseModel, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts index 71f36d2a68..263e32f718 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-recycle-bin.ts @@ -1,6 +1,6 @@ import { UmbEntityMockDbBase } from './entity-base.js'; import { UmbMockEntityTreeManager } from './entity-tree.manager.js'; -import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbEntityRecycleBin< MockType extends Omit, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts index 718315e091..68cf9daf25 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts @@ -9,7 +9,6 @@ import type { TemplateItemResponseModel, TemplateQuerySettingsResponseModel, TemplateQueryResultResponseModel, - TemplateQueryResultResponseModel, PagedNamedEntityTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; import { TemplateQueryPropertyTypeModel, OperatorModel } from '@umbraco-cms/backoffice/backend-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index f68d8048c4..d3b85a4efd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -1,6 +1,8 @@ import type { PropertyTypeContainerModelBaseModel, PropertyTypeModelBaseModel, + ContentTypeSortModel, + ContentTypeCompositionModel, } from '@umbraco-cms/backoffice/backend-api'; export interface UmbContentTypeModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts index dfd8b3f192..b8fc59c0fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/reload-tree-item-children/manifests.ts @@ -1,5 +1,5 @@ import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../../entity.js'; -import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UmbReloadTreeItemChildrenEntityAction } from '@umbraco-cms/backoffice/tree'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; @@ -13,7 +13,7 @@ export const manifests: Array = [ meta: { icon: 'icon-refresh', label: 'Reload children...', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE], }, }, From 911e3e0922a1528e549a72bc40b94e73eddf6d29 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 14:56:48 +0100 Subject: [PATCH 613/786] update mock data to new models --- .../data/document-type/document-type.data.ts | 188 +++++++++--------- 1 file changed, 92 insertions(+), 96 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 77336f8004..7edb9311b2 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -1,10 +1,9 @@ import type { DocumentTypeItemResponseModel, DocumentTypeResponseModel, - DocumentTypeTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; -import { - ContentTypeCompositionTypeModel + DocumentTypeTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; +import { ContentTypeCompositionTypeModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbMockDocumentTypeModelHack = DocumentTypeResponseModel & DocumentTypeTreeItemResponseModel & @@ -108,7 +107,7 @@ export const data: Array = [ alias: 'eyeDropper', name: 'Eye Dropper', description: '', - dataTypeId: 'dt-eyeDropper', + dataType: { id: 'dt-eyeDropper' }, variesByCulture: false, variesBySegment: false, sortOrder: 3, @@ -128,7 +127,7 @@ export const data: Array = [ alias: 'multiUrlPicker', name: 'Multi URL Picker', description: '', - dataTypeId: 'dt-multiUrlPicker', + dataType: { id: 'dt-multiUrlPicker' }, variesByCulture: true, variesBySegment: false, sortOrder: 4, @@ -148,7 +147,7 @@ export const data: Array = [ alias: 'multiNodeTreePicker', name: 'Multi Node Tree Picker', description: '', - dataTypeId: 'dt-multiNodeTreePicker', + dataType: { id: 'dt-multiNodeTreePicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 5, @@ -168,7 +167,7 @@ export const data: Array = [ alias: 'datePicker', name: 'Date Picker', description: '', - dataTypeId: 'dt-datePicker', + dataType: { id: 'dt-datePicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 6, @@ -188,7 +187,7 @@ export const data: Array = [ alias: 'datePicker-b', name: 'Date Picker With Time', description: '', - dataTypeId: 'dt-datePicker-time', + dataType: { id: 'dt-datePicker-time' }, variesByCulture: false, variesBySegment: false, sortOrder: 7, @@ -208,7 +207,7 @@ export const data: Array = [ alias: 'email', name: 'Email', description: '', - dataTypeId: 'dt-email', + dataType: { id: 'dt-email' }, variesByCulture: false, variesBySegment: false, sortOrder: 9, @@ -228,7 +227,7 @@ export const data: Array = [ alias: 'textBox', name: 'Text Box', description: '', - dataTypeId: 'dt-textBox', + dataType: { id: 'dt-textBox' }, variesByCulture: false, variesBySegment: false, sortOrder: 10, @@ -248,7 +247,7 @@ export const data: Array = [ alias: 'dropdown', name: 'Dropdown', description: '', - dataTypeId: 'dt-dropdown', + dataType: { id: 'dt-dropdown' }, variesByCulture: false, variesBySegment: false, sortOrder: 11, @@ -268,7 +267,7 @@ export const data: Array = [ alias: 'textArea', name: 'Text Area', description: '', - dataTypeId: 'dt-textArea', + dataType: { id: 'dt-textArea' }, variesByCulture: false, variesBySegment: false, sortOrder: 12, @@ -288,7 +287,7 @@ export const data: Array = [ alias: 'slider', name: 'Slider', description: '', - dataTypeId: 'dt-slider', + dataType: { id: 'dt-slider' }, variesByCulture: false, variesBySegment: false, sortOrder: 13, @@ -308,7 +307,7 @@ export const data: Array = [ alias: 'toggle', name: 'Toggle', description: '', - dataTypeId: 'dt-toggle', + dataType: { id: 'dt-toggle' }, variesByCulture: false, variesBySegment: false, sortOrder: 14, @@ -328,7 +327,7 @@ export const data: Array = [ alias: 'tags', name: 'Tags', description: '', - dataTypeId: 'dt-tags', + dataType: { id: 'dt-tags' }, variesByCulture: false, variesBySegment: false, sortOrder: 15, @@ -348,7 +347,7 @@ export const data: Array = [ alias: 'markdownEditor', name: 'MarkdownEditor', description: '', - dataTypeId: 'dt-markdownEditor', + dataType: { id: 'dt-markdownEditor' }, variesByCulture: false, variesBySegment: false, sortOrder: 16, @@ -368,7 +367,7 @@ export const data: Array = [ alias: 'radioButtonList', name: 'Radio Button List', description: '', - dataTypeId: 'dt-radioButtonList', + dataType: { id: 'dt-radioButtonList' }, variesByCulture: false, variesBySegment: false, sortOrder: 17, @@ -388,7 +387,7 @@ export const data: Array = [ alias: 'checkboxList', name: 'Checkbox List', description: '', - dataTypeId: 'dt-checkboxList', + dataType: { id: 'dt-checkboxList' }, variesByCulture: false, variesBySegment: false, sortOrder: 18, @@ -408,7 +407,7 @@ export const data: Array = [ alias: 'blockList', name: 'Block List', description: '', - dataTypeId: 'dt-blockList', + dataType: { id: 'dt-blockList' }, variesByCulture: false, variesBySegment: false, sortOrder: -2, @@ -428,7 +427,7 @@ export const data: Array = [ alias: 'mediaPicker', name: 'Media Picker', description: '', - dataTypeId: 'dt-mediaPicker', + dataType: { id: 'dt-mediaPicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 20, @@ -448,7 +447,7 @@ export const data: Array = [ alias: 'imageCropper', name: 'Image Cropper', description: '', - dataTypeId: 'dt-imageCropper', + dataType: { id: 'dt-imageCropper' }, variesByCulture: false, variesBySegment: false, sortOrder: 21, @@ -468,7 +467,7 @@ export const data: Array = [ alias: 'uploadField', name: 'Upload Field', description: '', - dataTypeId: 'dt-uploadField', + dataType: { id: 'dt-uploadField' }, variesByCulture: false, variesBySegment: false, sortOrder: 22, @@ -488,7 +487,7 @@ export const data: Array = [ alias: 'blockGrid', name: 'Block Grid', description: '', - dataTypeId: 'dt-blockGrid', + dataType: { id: 'dt-blockGrid' }, variesByCulture: false, variesBySegment: false, sortOrder: -1, @@ -508,7 +507,7 @@ export const data: Array = [ alias: 'iconPicker', name: 'Icon Picker', description: '', - dataTypeId: 'dt-iconPicker', + dataType: { id: 'dt-iconPicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 24, @@ -528,7 +527,7 @@ export const data: Array = [ alias: 'label', name: 'Label', description: '', - dataTypeId: 'dt-label', + dataType: { id: 'dt-label' }, variesByCulture: false, variesBySegment: false, sortOrder: 25, @@ -548,7 +547,7 @@ export const data: Array = [ alias: 'integer', name: 'Integer', description: '', - dataTypeId: 'dt-integer', + dataType: { id: 'dt-integer' }, variesByCulture: false, variesBySegment: false, sortOrder: 26, @@ -568,7 +567,7 @@ export const data: Array = [ alias: 'decimal', name: 'Decimal', description: '', - dataTypeId: 'dt-decimal', + dataType: { id: 'dt-decimal' }, variesByCulture: false, variesBySegment: false, sortOrder: 27, @@ -588,7 +587,7 @@ export const data: Array = [ alias: 'memberPicker', name: 'Member Picker', description: '', - dataTypeId: 'dt-memberPicker', + dataType: { id: 'dt-memberPicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 29, @@ -608,7 +607,7 @@ export const data: Array = [ alias: 'memberGroupPicker', name: 'Member Group Picker', description: '', - dataTypeId: 'dt-memberGroupPicker', + dataType: { id: 'dt-memberGroupPicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 30, @@ -628,7 +627,7 @@ export const data: Array = [ alias: 'userPicker', name: 'User Picker', description: '', - dataTypeId: 'dt-userPicker', + dataType: { id: 'dt-userPicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 31, @@ -648,7 +647,7 @@ export const data: Array = [ alias: 'staticFilePicker', name: 'Static File Picker', description: '', - dataTypeId: 'dt-staticFilePicker', + dataType: { id: 'dt-staticFilePicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 32, @@ -682,7 +681,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: 'simple-document-type-id', alias: 'blogPost', name: 'All property editors document type', @@ -693,7 +692,6 @@ export const data: Array = [ variesBySegment: false, isElement: false, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ @@ -703,7 +701,7 @@ export const data: Array = [ alias: 'multiNodeTreePicker', name: 'Multi Node Tree Picker', description: '', - dataTypeId: 'dt-multiNodeTreePicker', + dataType: { id: 'dt-multiNodeTreePicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -738,7 +736,7 @@ export const data: Array = [ { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: '29643452-cff9-47f2-98cd-7de4b6807681', alias: 'blogPost', name: 'Page Document Type', @@ -749,17 +747,16 @@ export const data: Array = [ variesBySegment: false, isElement: false, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ { id: '5b4ca208-134e-4865-b423-06e5e97adf3c', - containerId: 'c3cd2f12-b7c4-4206-8d8b-27c061589f75', + container: { id: 'c3cd2f12-b7c4-4206-8d8b-27c061589f75' }, alias: 'blogPostText', name: 'Blog Post Text', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -795,11 +792,11 @@ export const data: Array = [ }, { id: 'e010c429-b298-499a-9bfe-79687af8972a', - containerId: '22177c49-ecba-4f2e-b7fa-3f2c04d02cfb', + container: { id: '22177c49-ecba-4f2e-b7fa-3f2c04d02cfb' }, alias: 'blogTextStringUnderGroupUnderMasterTab', name: 'Blog text string under group under master tab', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: true, variesBySegment: false, sortOrder: 2, @@ -815,11 +812,11 @@ export const data: Array = [ }, { id: '1a22749a-c7d2-44bb-b36b-c977c2ced6ef', - containerId: '2c943997-b685-432d-a6c5-601d8e7a298a', + container: { id: '2c943997-b685-432d-a6c5-601d8e7a298a' }, alias: 'localBlogTabString', name: 'Local Blog Tab String', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 3, @@ -835,11 +832,11 @@ export const data: Array = [ }, { id: '22', - containerId: '2c943997-b685-432d-a6c5-601d8e7a298a', + container: { id: '2c943997-b685-432d-a6c5-601d8e7a298a' }, alias: 'blockGrid', name: 'Block Grid', description: '', - dataTypeId: 'dt-blockGrid', + dataType: { id: 'dt-blockGrid' }, variesByCulture: false, variesBySegment: false, sortOrder: 4, @@ -871,7 +868,7 @@ export const data: Array = [ }, { id: '22177c49-ecba-4f2e-b7fa-3f2c04d02cfb', - parentId: '227d6ed2-e118-4494-b8f2-deb69854a56a', + parent: { id: '227d6ed2-e118-4494-b8f2-deb69854a56a' }, name: 'Blog Group under master tab', type: 'Group', sortOrder: 0, @@ -886,17 +883,17 @@ export const data: Array = [ ], allowedDocumentTypes: [ { - id: '29643452-cff9-47f2-98cd-7de4b6807681', + documentType: { id: '29643452-cff9-47f2-98cd-7de4b6807681' }, sortOrder: 0, }, ], compositions: [ { - id: '8f68ba66-6fb2-4778-83b8-6ab4ca3a7c5d', + documentType: { id: '8f68ba66-6fb2-4778-83b8-6ab4ca3a7c5d' }, compositionType: ContentTypeCompositionTypeModel.INHERITANCE, }, { - id: '5035d7d9-0a63-415c-9e75-ee2cf931db92', + documentType: { id: '5035d7d9-0a63-415c-9e75-ee2cf931db92' }, compositionType: ContentTypeCompositionTypeModel.COMPOSITION, }, ], @@ -907,8 +904,10 @@ export const data: Array = [ }, }, { - allowedTemplates: ['916cfecc-3295-490c-a16d-c41fa9f72980'], - defaultTemplateId: '916cfecc-3295-490c-a16d-c41fa9f72980', + allowedTemplates: [{ id: '916cfecc-3295-490c-a16d-c41fa9f72980' }], + defaultTemplate: { + id: '916cfecc-3295-490c-a16d-c41fa9f72980', + }, id: '5035d7d9-0a63-415c-9e75-ee2cf931db92', alias: 'masterPage', name: 'Master Page', @@ -919,17 +918,16 @@ export const data: Array = [ variesBySegment: false, isElement: false, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ { id: '5e5f7456-c751-4846-9f2b-47965cc96ec6', - containerId: '6f281e5a-0242-4649-bd9e-d6bf87f92b41', + container: { id: '6f281e5a-0242-4649-bd9e-d6bf87f92b41' }, alias: 'masterText', name: 'Master text', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -963,7 +961,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: '8f68ba66-6fb2-4778-83b8-6ab4ca3a7c5d', alias: 'baseElementType', name: 'Base Element Type', @@ -974,17 +972,16 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ { id: 'b92de6ac-1a22-4a45-a481-b6cae1cccbbf', - containerId: '1e845ca8-1e3e-4b03-be1d-0b4149ce2129', + container: { id: '1e845ca8-1e3e-4b03-be1d-0b4149ce2129' }, alias: 'pageTitle', name: 'Page title', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -1018,7 +1015,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c', alias: 'simpleElementType', name: 'Simple Element Type', @@ -1029,17 +1026,16 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ { id: 'b92de6ac-1a22-4a45-a481-b6cae1cccbb0', - containerId: '1e845ca8-1e3e-4b03-be1d-0b4149ce2120', + container: { id: '1e845ca8-1e3e-4b03-be1d-0b4149ce2120' }, alias: 'elementProperty', name: 'Element property', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -1073,11 +1069,17 @@ export const data: Array = [ }, { allowedTemplates: [ - '2bf464b6-3aca-4388-b043-4eb439cc2643', - '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', - '9a84c0b3-03b4-4dd4-84ac-706740ac0f72', + { + id: '2bf464b6-3aca-4388-b043-4eb439cc2643', + }, + { + id: '9a84c0b3-03b4-4dd4-84ac-706740ac0f71', + }, + { + id: '9a84c0b3-03b4-4dd4-84ac-706740ac0f72', + }, ], - defaultTemplateId: '2bf464b6-3aca-4388-b043-4eb439cc2643', + defaultTemplate: { id: '2bf464b6-3aca-4388-b043-4eb439cc2643' }, id: 'simple-document-type-key', alias: 'simpleDocumentType', name: 'Simple Document Type', @@ -1088,17 +1090,16 @@ export const data: Array = [ variesBySegment: false, isElement: false, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ { id: '1680d4d2-cda8-4ac2-affd-a69fc10382b1', - containerId: '341b8521-fd43-4333-ae7a-a10cbbc6f4b0', + container: { id: '341b8521-fd43-4333-ae7a-a10cbbc6f4b0' }, alias: 'prop1', name: 'Prop 1', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -1123,8 +1124,8 @@ export const data: Array = [ }, ], allowedDocumentTypes: [ - { id: 'simple-document-type-key', sortOrder: 0 }, - { id: 'simple-document-type-2-key', sortOrder: 0 }, + { documentType: { id: 'simple-document-type-key' }, sortOrder: 0 }, + { documentType: { id: 'simple-document-type-2-key' }, sortOrder: 0 }, ], compositions: [], cleanup: { @@ -1135,7 +1136,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: 'simple-document-type-2-key', alias: 'simpleDocumentType2', name: 'Simple Document Type 2', @@ -1146,17 +1147,16 @@ export const data: Array = [ variesBySegment: false, isElement: false, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ { id: '82d4b050-b128-42fe-ac8e-d5586e533592', - containerId: 'b275052a-1868-4901-bc8c-2b35b78a9ab2', + container: { id: 'b275052a-1868-4901-bc8c-2b35b78a9ab2' }, alias: 'prop1', name: 'Prop 1', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 0, @@ -1172,11 +1172,11 @@ export const data: Array = [ }, { id: 'beadc69a-d669-4d01-9919-98bafba31e57', - containerId: 'b275052a-1868-4901-bc8c-2b35b78a9ab2', + container: { id: 'b275052a-1868-4901-bc8c-2b35b78a9ab2' }, alias: 'prop2', name: 'Prop 2', description: null, - dataTypeId: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', + dataType: { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae' }, variesByCulture: false, variesBySegment: false, sortOrder: 1, @@ -1200,7 +1200,7 @@ export const data: Array = [ sortOrder: 0, }, ], - allowedDocumentTypes: [{ id: 'simple-document-type-key', sortOrder: 0 }], + allowedDocumentTypes: [{ documentType: { id: 'simple-document-type-key' }, sortOrder: 0 }], compositions: [], cleanup: { preventCleanup: false, @@ -1210,7 +1210,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: 'folder-umbraco-demo-blocks-id', alias: 'folderUmbracoDemoBlocks', name: 'Umbraco Demo Blocks', @@ -1221,7 +1221,6 @@ export const data: Array = [ variesBySegment: false, isElement: false, hasChildren: true, - isContainer: false, parent: null, isFolder: true, allowedDocumentTypes: [], @@ -1236,7 +1235,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: 'coffee-umbraco-demo-block-id', alias: 'coffeeUmbracoDemoBlock', name: 'Favorite Coffee', @@ -1247,8 +1246,7 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, - parentId: 'folder-umbraco-demo-blocks-id', + parent: { id: 'folder-umbraco-demo-blocks-id' }, isFolder: false, allowedDocumentTypes: [], compositions: [], @@ -1260,11 +1258,11 @@ export const data: Array = [ properties: [ { id: 'coffee-name-id', - containerId: 'coffee-content-group-key', + container: { id: 'coffee-content-group-key' }, alias: 'coffeeName', name: 'Name of Coffee', description: '', - dataTypeId: 'dt-textBox', + dataType: { id: 'dt-textBox' }, variesByCulture: false, variesBySegment: false, sortOrder: 10, @@ -1280,11 +1278,11 @@ export const data: Array = [ }, { id: 'coffee-size-id', - containerId: 'coffee-content-group-key', + container: { id: 'coffee-content-group-key' }, alias: 'coffeeSize', name: 'Amount (deciliter)', description: '', - dataTypeId: 'dt-integer', + dataType: { id: 'dt-integer' }, variesByCulture: false, variesBySegment: false, sortOrder: 10, @@ -1311,7 +1309,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: 'headline-umbraco-demo-block-id', alias: 'headlineUmbracoDemoBlock', name: 'Headline', @@ -1322,8 +1320,7 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, - parentId: 'folder-umbraco-demo-blocks-id', + parent: { id: 'folder-umbraco-demo-blocks-id' }, isFolder: false, allowedDocumentTypes: [], compositions: [], @@ -1335,11 +1332,11 @@ export const data: Array = [ properties: [ { id: 'headline-id', - containerId: 'headline-content-group-key', + container: { id: 'headline-content-group-key' }, alias: 'headline', name: 'Headline', description: '', - dataTypeId: 'dt-textBox', + dataType: { id: 'dt-textBox' }, variesByCulture: false, variesBySegment: false, sortOrder: 10, @@ -1366,7 +1363,7 @@ export const data: Array = [ }, { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: 'image-umbraco-demo-block-id', alias: 'imageUmbracoDemoBlock', name: 'Image', @@ -1377,8 +1374,7 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, - parentId: 'folder-umbraco-demo-blocks-id', + parent: { id: 'folder-umbraco-demo-blocks-id' }, isFolder: false, allowedDocumentTypes: [], compositions: [], @@ -1390,11 +1386,11 @@ export const data: Array = [ properties: [ { id: 'image-id', - containerId: 'image-content-group-key', + container: { id: 'image-content-group-key' }, alias: 'image', name: 'Image', description: '', - dataTypeId: 'dt-mediaPicker', + dataType: { id: 'dt-mediaPicker' }, variesByCulture: false, variesBySegment: false, sortOrder: 10, From dc64f4b10127ef95d8c5dcc75e766ce788a40cbe Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 15:18:50 +0100 Subject: [PATCH 614/786] update mocks --- .../src/mocks/data/dictionary.data.ts | 25 +++++----- .../data/document-type/document-type.data.ts | 9 ++-- .../data/document-type/document-type.db.ts | 16 +++---- .../src/mocks/data/document/document.db.ts | 48 ++++++++----------- 4 files changed, 44 insertions(+), 54 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/dictionary.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/dictionary.data.ts index 72570e8dcd..0f44a4bdb0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/dictionary.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/dictionary.data.ts @@ -1,6 +1,9 @@ import { UmbEntityData } from './entity.data.js'; import { createEntityTreeItem } from './utils.js'; -import type { DictionaryItemResponseModel, EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + DictionaryItemResponseModel, + NamedEntityTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ { @@ -33,22 +36,20 @@ export const data: Array = [ }, ]; -const dictionaryTree: Array = [ +const dictionaryTree: Array = [ { - parentId: null, + parent: null, name: 'Hello', id: 'aae7d0ab-53ba-485d-b8bd-12537f9925cb', hasChildren: true, type: 'dictionary-item', - isContainer: false, }, { - parentId: 'aae7d0ab-53ba-485d-b8bd-12537f9925cb', + parent: null, name: 'Hello again', id: 'bbe7d0ab-53bb-485d-b8bd-12537f9925cb', hasChildren: false, type: 'dictionary-item', - isContainer: false, }, ]; @@ -61,18 +62,18 @@ class UmbDictionaryData extends UmbEntityData { super(data); } - getTreeRoot(): Array { - const rootItems = dictionaryTree.filter((item) => item.parentId === null); + getTreeRoot(): Array { + const rootItems = dictionaryTree.filter((item) => item.parent === null); return rootItems.map((item) => createEntityTreeItem(item)); } - getTreeItemChildren(id: string): Array { - const childItems = dictionaryTree.filter((item) => item.parentId === id); + getTreeItemChildren(id: string): Array { + const childItems = dictionaryTree.filter((item) => item.parent?.id === id); return childItems.map((item) => createEntityTreeItem(item)); } - getTreeItem(ids: Array): Array { - const items = dictionaryTree.filter((item) => ids.includes(item.id ?? '')); + getTreeItem(ids: Array): Array { + const items = dictionaryTree.filter((item) => ids.includes(item.id)); return items.map((item) => createEntityTreeItem(item)); } } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 7edb9311b2..8b8b400896 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -1,9 +1,9 @@ +import { CompositionTypeModel } from '@umbraco-cms/backoffice/backend-api'; import type { DocumentTypeItemResponseModel, DocumentTypeResponseModel, DocumentTypeTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -import { ContentTypeCompositionTypeModel } from '@umbraco-cms/backoffice/backend-api'; export type UmbMockDocumentTypeModelHack = DocumentTypeResponseModel & DocumentTypeTreeItemResponseModel & @@ -14,7 +14,7 @@ export interface UmbMockDocumentTypeModel extends Omit = [ { allowedTemplates: [], - defaultTemplateId: null, + defaultTemplate: null, id: 'all-property-editors-document-type-id', alias: 'blogPost', name: 'All property editors document type', @@ -25,7 +25,6 @@ export const data: Array = [ variesBySegment: false, isElement: false, hasChildren: false, - isContainer: false, parent: null, isFolder: false, properties: [ @@ -890,11 +889,11 @@ export const data: Array = [ compositions: [ { documentType: { id: '8f68ba66-6fb2-4778-83b8-6ab4ca3a7c5d' }, - compositionType: ContentTypeCompositionTypeModel.INHERITANCE, + compositionType: CompositionTypeModel.INHERITANCE, }, { documentType: { id: '5035d7d9-0a63-415c-9e75-ee2cf931db92' }, - compositionType: ContentTypeCompositionTypeModel.COMPOSITION, + compositionType: CompositionTypeModel.COMPOSITION, }, ], cleanup: { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index e83091413f..2511bb3108 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -3,7 +3,7 @@ import { UmbMockEntityFolderManager } from '../entity/entity-folder.manager.js'; import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; -import type { UmbMockDocumentTypeModel} from './document-type.data.js'; +import type { UmbMockDocumentTypeModel } from './document-type.data.js'; import { data } from './document-type.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { @@ -33,7 +33,7 @@ const createMockDocumentTypeFolderMapper = (request: CreateFolderRequestModel): return { name: request.name, id: request.id ? request.id : UmbId.new(), - parentId: request.parentId, + parent: request.parentId ? { id: request.parentId } : null, description: '', alias: '', icon: '', @@ -43,12 +43,11 @@ const createMockDocumentTypeFolderMapper = (request: CreateFolderRequestModel): variesByCulture: false, variesBySegment: false, isElement: false, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], isFolder: true, hasChildren: false, - isContainer: false, - allowedTemplateIds: [], + allowedTemplates: [], cleanup: { preventCleanup: false, keepAllVersionsNewerThanDays: null, @@ -97,9 +96,9 @@ const documentTypeDetailMapper = (item: UmbMockDocumentTypeModel): DocumentTypeR variesByCulture: item.variesByCulture, variesBySegment: item.variesBySegment, isElement: item.isElement, - allowedContentTypes: item.allowedContentTypes, + allowedDocumentTypes: item.allowedDocumentTypes, compositions: item.compositions, - allowedTemplateIds: item.allowedTemplateIds, + allowedTemplates: item.allowedTemplates, cleanup: item.cleanup, }; }; @@ -111,8 +110,7 @@ const documentTypeTreeItemMapper = ( name: item.name, hasChildren: item.hasChildren, id: item.id, - isContainer: item.isContainer, - parentId: item.parentId, + parent: item.parent, isFolder: item.isFolder, icon: item.icon, isElement: item.isElement, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts index 6eb5b8f504..6d7e3eaccc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts @@ -7,12 +7,12 @@ import { UmbEntityRecycleBin } from '../entity/entity-recycle-bin.js'; import type { UmbMockDocumentModel } from './document.data.js'; import { data } from './document.data.js'; import { UmbMockDocumentPublishingManager } from './document-publishing.manager.js'; -import type { - CreateDocumentRequestModel, - DocumentItemResponseModel, - DocumentResponseModel, - DocumentTreeItemResponseModel, - PagedDocumentTypeResponseModel, +import { + ContentStateModel, + type CreateDocumentRequestModel, + type DocumentItemResponseModel, + type DocumentResponseModel, + type DocumentTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbId } from '@umbraco-cms/backoffice/id'; @@ -27,26 +27,6 @@ export class UmbDocumentMockDB extends UmbEntityMockDbBase super(data); } - getAllowedDocumentTypes(id: string): PagedDocumentTypeResponseModel { - debugger; - const { contentTypeId } = this.detail.read(id); - - if (contentTypeId) { - const docType = umbDocumentTypeMockDb.detail.read(contentTypeId); - - if (docType) { - const allowedTypes = docType.allowedContentTypes; - const models = allowedTypes - .map((allowedType: any) => umbDocumentTypeMockDb.detail.read(allowedType.id)) - .filter((item: any) => item !== undefined); - const total = models.length; - return { items: models, total }; - } - } - - return { items: [], total: 0 }; - } - // permissions /* getUserPermissionsForDocument(id: string): Array { @@ -84,11 +64,13 @@ const createMockDocumentMapper = (request: CreateDocumentRequestModel): UmbMockD const documentType = umbDocumentTypeMockDb.read(request.documentType.id); if (!documentType) throw new Error(`Document type with id ${request.documentType.id} not found`); + const now = new Date().toString(); + return { documentType: { id: documentType.id, icon: documentType.icon, - hasListView: documentType.hasListView, + hasListView: false, // TODO: get list from doc type when ready }, hasChildren: false, id: request.id ? request.id : UmbId.new(), @@ -97,7 +79,17 @@ const createMockDocumentMapper = (request: CreateDocumentRequestModel): UmbMockD noAccess: false, parent: request.parent, values: request.values, - variants: request.variants, + variants: request.variants.map((variantRequest) => { + return { + culture: variantRequest.culture, + segment: variantRequest.segment, + name: variantRequest.name, + createDate: now, + updateDate: now, + state: ContentStateModel.DRAFT, + publishDate: null, + }; + }), urls: [], }; }; From 1ef518d3989a7c3dd9e7838a1ddd816283f849a6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 15:48:05 +0100 Subject: [PATCH 615/786] updating models --- .../src/mocks/data/document/document.db.ts | 9 +- .../mocks/data/media-type/media-type.data.ts | 5 +- .../mocks/data/media-type/media-type.db.ts | 17 ++- .../src/mocks/data/media.data.ts | 107 +++++------------- .../src/mocks/data/member-group.data.ts | 9 +- .../src/mocks/data/member-type.data.ts | 11 +- .../src/mocks/data/member.data.ts | 10 +- .../data/relations/relation-type.data.ts | 27 +++-- .../src/mocks/data/utils.ts | 7 +- .../src/mocks/handlers/dictionary.handlers.ts | 10 +- .../document/allowed-types.handlers.ts | 14 --- .../src/packages/media/media/index.ts | 30 +++-- 12 files changed, 92 insertions(+), 164 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts index 6d7e3eaccc..9b2f20fd41 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts @@ -28,16 +28,9 @@ export class UmbDocumentMockDB extends UmbEntityMockDbBase } // permissions - /* getUserPermissionsForDocument(id: string): Array { - return umbUserPermissionData - .getAll() - .items.filter( - (permission: any) => - permission.target.entityType === UMB_DOCUMENT_ENTITY_TYPE && permission.target.documentId === id, - ); + return []; } - */ } const treeItemMapper = (model: UmbMockDocumentModel): Omit => { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts index 58c9975c76..6eabf86bc8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.data.ts @@ -14,7 +14,7 @@ export const data: Array = [ { name: 'Media Type 1', id: 'media-type-1-id', - parentId: null, + parent: null, description: 'Media type 1 description', alias: 'mediaType1', icon: 'icon-bug', @@ -24,10 +24,9 @@ export const data: Array = [ variesByCulture: false, variesBySegment: false, isElement: false, - allowedContentTypes: [], + allowedMediaTypes: [], compositions: [], isFolder: false, hasChildren: false, - isContainer: false, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts index 2b3bfea655..d6b6fe15d0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media-type/media-type.db.ts @@ -3,7 +3,7 @@ import { UmbMockEntityFolderManager } from '../entity/entity-folder.manager.js'; import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; -import type { UmbMockMediaTypeModel} from './media-type.data.js'; +import type { UmbMockMediaTypeModel } from './media-type.data.js'; import { data } from './media-type.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { @@ -33,7 +33,7 @@ const createMockMediaTypeFolderMapper = (request: CreateFolderRequestModel): Umb return { name: request.name, id: request.id ? request.id : UmbId.new(), - parentId: request.parentId, + parent: request.parentId ? { id: request.parentId } : null, description: '', alias: '', icon: '', @@ -43,11 +43,10 @@ const createMockMediaTypeFolderMapper = (request: CreateFolderRequestModel): Umb variesByCulture: false, variesBySegment: false, isElement: false, - allowedContentTypes: [], + allowedMediaTypes: [], compositions: [], isFolder: true, hasChildren: false, - isContainer: false, }; }; @@ -64,12 +63,11 @@ const createMockMediaTypeMapper = (request: CreateMediaTypeRequestModel): UmbMoc variesByCulture: request.variesByCulture, variesBySegment: request.variesBySegment, isElement: request.isElement, - allowedContentTypes: request.allowedContentTypes, + allowedMediaTypes: request.allowedMediaTypes, compositions: request.compositions, - parentId: request.containerId, + parent: request.folder ? { id: request.folder.id } : null, isFolder: false, hasChildren: false, - isContainer: false, }; }; @@ -86,7 +84,7 @@ const mediaTypeDetailMapper = (item: UmbMockMediaTypeModel): MediaTypeResponseMo variesByCulture: item.variesByCulture, variesBySegment: item.variesBySegment, isElement: item.isElement, - allowedContentTypes: item.allowedContentTypes, + allowedMediaTypes: item.allowedMediaTypes, compositions: item.compositions, }; }; @@ -96,8 +94,7 @@ const mediaTypeTreeItemMapper = (item: UmbMockMediaTypeModel): Omit = [ +export type UmbMockMediaModelHack = MediaResponseModel & MediaTreeItemResponseModel & MediaItemResponseModel; + +export interface UmbMockMediaModel extends Omit {} + +export const data: Array = [ { - type: 'media', hasChildren: false, id: 'f2f81a40-c989-4b6b-84e2-057cecd3adc1', parent: null, @@ -20,24 +24,16 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [ - { - alias: 'myMediaHeadline', - label: 'Media Headline', - description: 'Text string property', - dataTypeId: 'dt-textBox', - }, - ], - data: [ + values: [ { alias: 'myMediaHeadline', value: 'The daily life at Umbraco HQ', }, ], variants: [], + urls: [], }, { - type: 'media', hasChildren: false, id: '69431027-8867-45bf-a93b-72bbdabfb177', parent: null, @@ -48,24 +44,16 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [ - { - alias: 'myMediaDescription', - label: 'Description', - description: 'Textarea property', - dataTypeId: 'dt-textArea', - }, - ], - data: [ + values: [ { alias: 'myMediaDescription', value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], variants: [], + urls: [], }, { - type: 'media', hasChildren: true, id: '69461027-8867-45bf-a93b-72bbdabfb177', parent: null, @@ -76,12 +64,11 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [], - data: [], + values: [], variants: [], + urls: [], }, { - type: 'media', hasChildren: true, id: '69461027-8867-45bf-a93b-5224dabfb177', parent: null, @@ -92,12 +79,11 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [], - data: [], + values: [], variants: [], + urls: [], }, { - type: 'media', hasChildren: false, id: '69431027-8867-45s7-a93b-7uibdabfb177', parent: { id: '69461027-8867-45bf-a93b-72bbdabfb177' }, @@ -108,24 +94,16 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [ - { - alias: 'myMediaDescription', - label: 'Description', - description: 'Textarea property', - dataTypeId: 'dt-textArea', - }, - ], - data: [ + values: [ { alias: 'myMediaDescription', value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], variants: [], + urls: [], }, { - type: 'media', hasChildren: false, id: '69431027-8867-45s7-a93b-7uibdabf2147', parent: { id: '69461027-8867-45bf-a93b-72bbdabfb177' }, @@ -136,24 +114,16 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [ - { - alias: 'myMediaDescription', - label: 'Description', - description: 'Textarea property', - dataTypeId: 'dt-textArea', - }, - ], - data: [ + values: [ { alias: 'myMediaDescription', value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], variants: [], + urls: [], }, { - type: 'media', hasChildren: false, id: '694hdj27-8867-45s7-a93b-7uibdabf2147', parent: { id: '69461027-8867-45bf-a93b-5224dabfb177' }, @@ -164,24 +134,16 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [ - { - alias: 'myMediaDescription', - label: 'Description', - description: 'Textarea property', - dataTypeId: 'dt-textArea', - }, - ], - data: [ + values: [ { alias: 'myMediaDescription', value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], variants: [], + urls: [], }, { - type: 'media', hasChildren: false, id: '694hdj27-1237-45s7-a93b-7uibdabfas47', parent: { id: '69461027-8867-45bf-a93b-5224dabfb177' }, @@ -192,25 +154,18 @@ export const data: Array = [ icon: 'icon-bug', hasListView: false, }, - properties: [ - { - alias: 'myMediaDescription', - label: 'Description', - description: 'Textarea property', - dataTypeId: 'dt-textArea', - }, - ], - data: [ + values: [ { alias: 'myMediaDescription', value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], variants: [], + urls: [], }, ]; -const createMediaItem = (item: UmbMediaDetailModel): MediaItemResponseModel => { +const createMediaItem = (item: UmbMockMediaModel): MediaItemResponseModel => { return { id: item.id, mediaType: item.mediaType, @@ -219,22 +174,18 @@ const createMediaItem = (item: UmbMediaDetailModel): MediaItemResponseModel => { }; }; -// Temp mocked database -// TODO: all properties are optional in the server schema. I don't think this is correct. -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore -class UmbMediaData extends UmbEntityData { +class UmbMediaData extends UmbEntityData { constructor() { super(data); } getItems(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id ?? '')); + const items = this.data.filter((item) => ids.includes(item.id)); return items.map((item) => createMediaItem(item)); } getTreeRoot(): PagedMediaTreeItemResponseModel { - const items = this.data.filter((item) => item.parent?.id === null); + const items = this.data.filter((item) => item.parent === null); const treeItems = items.map((item) => createMediaTreeItem(item)); const total = items.length; return { items: treeItems, total }; @@ -251,10 +202,6 @@ class UmbMediaData extends UmbEntityData { const items = this.data.filter((item) => ids.includes(item.id)); return items.map((item) => createMediaTreeItem(item)); } - - move(ids: Array, destinationKey: string) { - alert('change to new tree managers'); - } } export const umbMediaData = new UmbMediaData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts index 76df66271a..997c4344b1 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member-group.data.ts @@ -1,6 +1,9 @@ import { UmbEntityData } from './entity.data.js'; import { createEntityTreeItem } from './utils.js'; -import type { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + EntityTreeItemResponseModel, + PagedNamedEntityTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; import type { UmbMemberGroupDetailModel } from '@umbraco-cms/backoffice/member-group'; export const data: Array = [ @@ -23,14 +26,14 @@ class UmbMemberGroupData extends UmbEntityData { super(data); } - getTreeRoot(): PagedEntityTreeItemResponseModel { + getTreeRoot(): PagedNamedEntityTreeItemResponseModel { const items = this.data.filter((item) => item.parentId === null); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getTreeItemChildren(id: string): PagedEntityTreeItemResponseModel { + getTreeItemChildren(id: string): PagedNamedEntityTreeItemResponseModel { const items = this.data.filter((item) => item.parentId === id); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts index 2384aaa3da..af4d84b578 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts @@ -1,7 +1,10 @@ import type { MemberTypeDetails } from '../../packages/members/member-types/types.js'; import { UmbData } from './data.js'; import { createEntityTreeItem } from './utils.js'; -import type { EntityTreeItemResponseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + NamedEntityTreeItemResponseModel, + PagedNamedEntityTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ { @@ -23,21 +26,21 @@ class UmbMemberTypeData extends UmbData { super(data); } - getTreeRoot(): PagedEntityTreeItemResponseModel { + getTreeRoot(): PagedNamedEntityTreeItemResponseModel { const items = this.data.filter((item) => item.parentId === null); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getTreeItemChildren(id: string): PagedEntityTreeItemResponseModel { + getTreeItemChildren(id: string): PagedNamedEntityTreeItemResponseModel { const items = this.data.filter((item) => item.parentId === id); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getTreeItem(ids: Array): Array { + getTreeItem(ids: Array): Array { const items = this.data.filter((item) => ids.includes(item.id ?? '')); return items.map((item) => createEntityTreeItem(item)); } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts index 86f632c551..c36eb952d4 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts @@ -3,7 +3,7 @@ import { UmbEntityData } from './entity.data.js'; import { createEntityTreeItem } from './utils.js'; import type { EntityTreeItemResponseModel, - PagedEntityTreeItemResponseModel, + PagedNamedEntityTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; export const data: Array = [ @@ -18,23 +18,19 @@ export const data: Array = [ }, ]; -// Temp mocked database -// TODO: all properties are optional in the server schema. I don't think this is correct. -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore class UmbMemberData extends UmbEntityData { constructor() { super(data); } - getTreeRoot(): PagedEntityTreeItemResponseModel { + getTreeRoot(): PagedNamedEntityTreeItemResponseModel { const items = this.data.filter((item) => item.parentId === null); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; return { items: treeItems, total }; } - getTreeItemChildren(id: string): PagedEntityTreeItemResponseModel { + getTreeItemChildren(id: string): PagedNamedEntityTreeItemResponseModel { const items = this.data.filter((item) => item.parentId === id); const treeItems = items.map((item) => createEntityTreeItem(item)); const total = items.length; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/relations/relation-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/relations/relation-type.data.ts index ffe6093a17..98fb76f45b 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/relations/relation-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/relations/relation-type.data.ts @@ -1,8 +1,11 @@ import { UmbEntityData } from '../entity.data.js'; import { createEntityTreeItem } from '../utils.js'; -import type { EntityTreeItemResponseModel, RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, + RelationTypeResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; -// TODO: investigate why we don't get an entity type as part of the RelationTypeResponseModel export const data: Array = [ { id: 'e0d39ff5-71d8-453f-b682-9d8d31ee5e06', @@ -71,43 +74,39 @@ export const data: Array = [ }, ]; -export const treeData: Array = [ +export const treeData: Array = [ { id: 'e0d39ff5-71d8-453f-b682-9d8d31ee5e06', - isContainer: false, - parentId: null, + parent: null, name: 'Relate Document On Copy', type: 'relation-type', hasChildren: false, }, { id: 'ac68cde6-763f-4231-a751-1101b57defd2', - isContainer: false, - parentId: null, + + parent: null, name: 'Relate Parent Document On Delete', type: 'relation-type', hasChildren: false, }, { id: '6f9b800c-762c-42d4-85d9-bf40a77d689e', - isContainer: false, - parentId: null, + parent: null, name: 'Relate Parent Media Folder On Delete', type: 'relation-type', hasChildren: false, }, { id: 'd421727d-43de-4205-b4c6-037404f309ad', - isContainer: false, - parentId: null, + parent: null, name: 'Related Media', type: 'relation-type', hasChildren: false, }, { id: 'e9a0a28e-2d5b-4229-ac00-66f2df230513', - isContainer: false, - parentId: null, + parent: null, name: 'Related Document', type: 'relation-type', hasChildren: false, @@ -132,7 +131,7 @@ class UmbRelationTypeData extends UmbEntityData { //TODO Can relation types have children? getTreeItemChildren(id: string): Array { - const childItems = this.treeData.filter((item) => item.parentId === id); + const childItems = this.treeData.filter((item) => item.parent?.id === id); return childItems.map((item) => createEntityTreeItem(item)); } diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 7c8d350e8b..1c71906162 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -38,7 +38,12 @@ export const createMediaTreeItem = (item: UmbMediaDetailModel): MediaTreeItemRes return { ...createContentTreeItem(item), type: 'media', - icon: 'media', // TODO: Should get this from media type... + mediaType: { + // TODO: get this from media type + id: '', + icon: '', + hasListView: false, + }, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts index 862e803b80..31aefe8d32 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dictionary.handlers.ts @@ -15,12 +15,11 @@ const uploadResponse: ImportDictionaryRequestModel = { /// TODO: get correct type const importResponse: DictionaryItemResponseModel & EntityTreeItemResponseModel = { - parentId: null, + parent: null, name: 'Uploaded dictionary', id: 'b7e7d0ab-53ba-485d-dddd-12537f9925cb', hasChildren: false, type: 'dictionary-item', - isContainer: false, translations: [ { isoCode: 'en', @@ -185,12 +184,15 @@ export const handlers = [ if (!file || !importResponse.id) return; - importResponse.parentId = req.url.searchParams.get('parentId') ?? null; + const parentId = req.url.searchParams.get('parentId') ?? null; + importResponse.parent = parentId ? { id: parentId } : null; umbDictionaryData.save(importResponse.id, importResponse); // build the path to the new item => reflects the expected server response const path = ['-1']; - if (importResponse.parentId) path.push(importResponse.parentId); + if (importResponse.parent?.id) { + path.push(importResponse.parent.id); + } path.push(importResponse.id); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts deleted file mode 100644 index efb97989e6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/allowed-types.handlers.ts +++ /dev/null @@ -1,14 +0,0 @@ -const { rest } = window.MockServiceWorker; -import { umbDocumentMockDb } from '../../data/document/document.db.js'; -import { UMB_SLUG } from './slug.js'; -import { umbracoPath } from '@umbraco-cms/backoffice/utils'; - -export const allowedTypesHandlers = [ - rest.get(umbracoPath(`${UMB_SLUG}/allowed-document-types`), (req, res, ctx) => { - debugger; - const id = req.params.id as string; - if (!id) return res(ctx.status(400)); - const response = umbDocumentMockDb.getAllowedDocumentTypes(id); - return res(ctx.status(200), ctx.json(response)); - }), -]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts index bae1f868dc..771dbabfba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts @@ -1,4 +1,10 @@ -import type { ContentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + ContentTreeItemResponseModel, + ContentUrlInfoModel, + MediaTypeReferenceResponseModel, + MediaValueModel, + MediaVariantResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; export * from './components/index.js'; export * from './repository/index.js'; @@ -12,19 +18,11 @@ export interface ContentProperty { description: string; dataTypeId: string; } - -export interface ContentPropertyData { - alias: string; - value: any; -} - -// Media -export interface UmbMediaDetailModel extends ContentTreeItemResponseModel { - id: string; // TODO: Remove this when the backend is fixed - isTrashed: boolean; // TODO: remove only temp part of refactor - properties: Array; - data: Array; - variants: Array; // TODO: define variant data - //layout?: any; // TODO: define layout type - make it non-optional - icon?: string; +export interface UmbMediaDetailModel { + id: string; + isTrashed: boolean; + variants: Array; + values: Array; + urls: Array; + mediaType: MediaTypeReferenceResponseModel; } From 173d4f3ed458266dcfbcdde1c01bc4dcdbb9cfb9 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 25 Jan 2024 15:48:58 +0100 Subject: [PATCH 616/786] remove IUmbAuthContext interface since it was merely put in as a safe-guard in case we had to move the services around --- .../src/shared/auth/auth.context.interface.ts | 46 ------------------- .../src/shared/auth/auth.context.token.ts | 4 +- .../src/shared/auth/auth.context.ts | 11 +++-- .../src/shared/auth/index.ts | 1 - 4 files changed, 10 insertions(+), 52 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts deleted file mode 100644 index b307a4b7b9..0000000000 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.interface.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; - -export interface IUmbAuthContext { - isAuthorized: Observable; - - /** - * Initiates the login flow. - */ - login(): void; - - /** - * Initialise the auth flow. - */ - setInitialState(): Promise; - - /** - * Checks if there is a token and it is still valid. - */ - getIsAuthorized(): boolean; - - /** - * Gets the latest token from the Management API. - * If the token is expired, it will be refreshed. - * - * NB! The user may experience being redirected to the login screen if the token is expired. - * - * @example - * ```js - * const token = await authContext.getLatestToken(); - * const result = await fetch('https://my-api.com', { headers: { Authorization: `Bearer ${token}` } }); - * ``` - * - * @returns The latest token from the Management API - */ - getLatestToken(): Promise; - - /** - * Clears the token storage. - */ - clearTokenStorage(): Promise; - - /** - * Signs the user out by removing any tokens from the browser. - */ - signOut(): Promise; -} diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts index b7c70219f0..4725be3acb 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts @@ -1,4 +1,4 @@ -import type { IUmbAuthContext } from './auth.context.interface.js'; +import type { UmbAuthContext } from './auth.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -export const UMB_AUTH_CONTEXT = new UmbContextToken('UmbAuthContext'); +export const UMB_AUTH_CONTEXT = new UmbContextToken('UmbAuthContext'); diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts index 8a0a298e06..49bf424100 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts @@ -1,11 +1,10 @@ -import type { IUmbAuthContext } from './auth.context.interface.js'; import { UmbAuthFlow } from './auth-flow.js'; import { UMB_AUTH_CONTEXT } from './auth.context.token.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; -export class UmbAuthContext extends UmbBaseController implements IUmbAuthContext { +export class UmbAuthContext extends UmbBaseController { #isAuthorized = new UmbBooleanState(false); readonly isAuthorized = this.#isAuthorized.asObservable(); @@ -59,6 +58,13 @@ export class UmbAuthContext extends UmbBaseController implements IUmbAuthContext * * NB! The user may experience being redirected to the login screen if the token is expired. * + * @example + * ```js + * const token = await authContext.getLatestToken(); + * const result = await fetch('https://my-api.com', { headers: { Authorization: `Bearer ${token}` } }); + * ``` + * + * @memberof UmbAuthContext * @returns The latest token from the Management API */ getLatestToken(): Promise { @@ -75,7 +81,6 @@ export class UmbAuthContext extends UmbBaseController implements IUmbAuthContext /** * Signs the user out by removing any tokens from the browser. - * @return {*} {Promise} * @memberof UmbAuthContext */ signOut(): Promise { diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts index f2e7f83bb1..e2633039d7 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts @@ -1,3 +1,2 @@ -export * from './auth.context.interface.js'; export * from './auth.context.js'; export * from './auth.context.token.js'; From 9baa16878530fc918a37993993e84b8871bf9469 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 25 Jan 2024 15:52:16 +0100 Subject: [PATCH 617/786] rename 'login' to 'makeAuthorizationRequest' and add a new public method to complete a pending authorization --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 3 +-- .../src/shared/auth/auth-flow.ts | 3 --- .../src/shared/auth/auth.context.ts | 11 +++++++++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts index 4786301fa7..b9bf8a3b10 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts @@ -190,8 +190,7 @@ export class UmbAppElement extends UmbLitElement { window.sessionStorage.setItem('umb:auth:redirect', location.href); // Make a request to the auth server to start the auth flow - // TODO: find better name for this method - this.#authContext.login(); + this.#authContext.makeAuthorizationRequest(); // Return false to prevent the route from being rendered return false; diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts index 0d77f7143e..7dbb62350c 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts @@ -170,9 +170,6 @@ export class UmbAuthFlow { this.#refreshToken = this.#accessTokenResponse.refreshToken; } } - - // If no token was found, or if it was invalid, check if there is a new authorization to be made - await this.completeAuthorizationIfPossible(); } /** diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts index 49bf424100..7fa2415579 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts @@ -25,13 +25,20 @@ export class UmbAuthContext extends UmbBaseController { /** * Initiates the login flow. */ - login(): void { + makeAuthorizationRequest() { return this.#authFlow.makeAuthorizationRequest(); } + /** + * Completes the login flow. + */ + completeAuthorizationRequest() { + return this.#authFlow.completeAuthorizationIfPossible(); + } + /** * Checks if the user is authorized. If Authorization is bypassed, the user is always authorized. - * @returns {boolean} True if the user is authorized, otherwise false. + * @returns True if the user is authorized, otherwise false. */ getIsAuthorized() { if (this.#isBypassed) { From c2738c645a2d7d5a5586362e75f610c47043ba68 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 25 Jan 2024 15:53:30 +0100 Subject: [PATCH 618/786] make the app element wait with any redirects if there is a ?code in the url, and make sure the authorization notifier makes the final redirect after the authorization request has been completed bonus: move magic strings into constants --- .../src/apps/app/app.element.ts | 34 +++++++++++-------- .../src/shared/auth/auth-flow.ts | 29 ++++++++++------ .../src/shared/auth/auth.context.token.ts | 2 ++ 3 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts index b9bf8a3b10..1663dd3d26 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts @@ -1,8 +1,8 @@ import type { UmbAppErrorElement } from './app-error.element.js'; import { UmbAppContext } from './app.context.js'; import { UmbServerConnection } from './server-connection.js'; -import type { UMB_AUTH_CONTEXT} from '@umbraco-cms/backoffice/auth'; -import { UmbAuthContext } from '@umbraco-cms/backoffice/auth'; +import type { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth'; +import { UMB_STORAGE_REDIRECT_URL, UmbAuthContext } from '@umbraco-cms/backoffice/auth'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UUIIconRegistryEssential } from '@umbraco-cms/backoffice/external/uui'; import { UmbIconRegistry } from '@umbraco-cms/backoffice/icon'; @@ -29,13 +29,12 @@ export class UmbAppElement extends UmbLitElement { * @attr */ @property({ type: String }) - // TODO: get from server config + // TODO: get from base element or maybe move to UmbAuthContext.#getRedirectUrl since it is only used there backofficePath = '/umbraco'; /** * Bypass authentication. */ - // TODO: this might not be the right solution @property({ type: Boolean }) bypassAuth = false; @@ -140,6 +139,15 @@ export class UmbAppElement extends UmbLitElement { } #redirect() { + // If there is a ?code parameter in the url, then we are in the middle of the oauth flow + // and we need to complete the login (the authorization notifier will redirect after this is done + // essentially hitting this method again) + const queryParams = new URLSearchParams(window.location.search); + if (queryParams.has('code')) { + this.#authContext?.completeAuthorizationRequest(); + return; + } + switch (this.#serverConnection?.getStatus()) { case RuntimeLevelModel.INSTALL: history.replaceState(null, '', 'install'); @@ -156,17 +164,15 @@ export class UmbAppElement extends UmbLitElement { case RuntimeLevelModel.RUN: { const pathname = pathWithoutBasePath({ start: true, end: false }); - // If we are on the installer or upgrade page, redirect to the root - // but if not, keep the current path but replace state anyway to initialize the router - let currentRoute = location.href; - const savedRoute = sessionStorage.getItem('umb:auth:redirect'); - if (savedRoute) { - sessionStorage.removeItem('umb:auth:redirect'); - currentRoute = savedRoute; + // If we are on installer or upgrade page, redirect to the root since we are in the RUN state + if (pathname === '/install' || pathname === '/upgrade') { + history.replaceState(null, '', '/'); + break; } - const finalPath = pathname === '/install' || pathname === '/upgrade' ? '/' : currentRoute; - history.replaceState(null, '', finalPath); + // Keep the current path but replace state anyway to initialize the router + // because the router will not initialize a wildcard route by itself + history.replaceState(null, '', location.href); break; } @@ -187,7 +193,7 @@ export class UmbAppElement extends UmbLitElement { } // Save location.href so we can redirect to it after login - window.sessionStorage.setItem('umb:auth:redirect', location.href); + window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); // Make a request to the auth server to start the auth flow this.#authContext.makeAuthorizationRequest(); diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts index 7dbb62350c..4ced20b66d 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth-flow.ts @@ -13,9 +13,8 @@ * License for the specific language governing permissions and limitations under * the License. */ -import type { - LocationLike, - StringMap} from '@umbraco-cms/backoffice/external/openid'; +import { UMB_STORAGE_REDIRECT_URL, UMB_STORAGE_TOKEN_RESPONSE_NAME } from './auth.context.token.js'; +import type { LocationLike, StringMap } from '@umbraco-cms/backoffice/external/openid'; import { BaseTokenRequestHandler, BasicQueryStringUtils, @@ -29,13 +28,11 @@ import { GRANT_TYPE_REFRESH_TOKEN, RevokeTokenRequest, TokenRequest, - TokenResponse + TokenResponse, } from '@umbraco-cms/backoffice/external/openid'; const requestor = new FetchRequestor(); -const TOKEN_RESPONSE_NAME = 'umb:userAuthTokenResponse'; - /** * This class is needed to prevent the hash from being parsed as part of the query string. */ @@ -144,6 +141,15 @@ export class UmbAuthFlow { await this.#makeRefreshTokenRequest(response.code, codeVerifier); await this.performWithFreshTokens(); await this.#saveTokenState(); + + // Redirect to the saved state or root + let currentRoute = '/'; + const savedRoute = sessionStorage.getItem(UMB_STORAGE_REDIRECT_URL); + if (savedRoute) { + sessionStorage.removeItem(UMB_STORAGE_REDIRECT_URL); + currentRoute = savedRoute; + } + history.replaceState(null, '', currentRoute); } }); } @@ -152,17 +158,15 @@ export class UmbAuthFlow { * This method will initialize all the state needed for the auth flow. * * It will: - * - Fetch the service configuration from the server * - Check if there is a token response in local storage * - If there is a token response, check if it is valid * - If it is not valid, check if there is a new authorization to be made * - If there is a new authorization to be made, complete it * - If there is no token response, check if there is a new authorization to be made * - If there is a new authorization to be made, complete it - * - If there is no new authorization to be made, do nothing */ async setInitialState() { - const tokenResponseJson = await this.#storageBackend.getItem(TOKEN_RESPONSE_NAME); + const tokenResponseJson = await this.#storageBackend.getItem(UMB_STORAGE_TOKEN_RESPONSE_NAME); if (tokenResponseJson) { const response = new TokenResponse(JSON.parse(tokenResponseJson)); if (response.isValid()) { @@ -225,7 +229,7 @@ export class UmbAuthFlow { * Forget all cached token state */ async clearTokenStorage() { - await this.#storageBackend.removeItem(TOKEN_RESPONSE_NAME); + await this.#storageBackend.removeItem(UMB_STORAGE_TOKEN_RESPONSE_NAME); // clear the internal state this.#accessTokenResponse = undefined; @@ -310,7 +314,10 @@ export class UmbAuthFlow { */ async #saveTokenState() { if (this.#accessTokenResponse) { - await this.#storageBackend.setItem(TOKEN_RESPONSE_NAME, JSON.stringify(this.#accessTokenResponse.toJson())); + await this.#storageBackend.setItem( + UMB_STORAGE_TOKEN_RESPONSE_NAME, + JSON.stringify(this.#accessTokenResponse.toJson()), + ); } } diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts index 4725be3acb..38907f35e4 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.token.ts @@ -2,3 +2,5 @@ import type { UmbAuthContext } from './auth.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export const UMB_AUTH_CONTEXT = new UmbContextToken('UmbAuthContext'); +export const UMB_STORAGE_TOKEN_RESPONSE_NAME = 'umb:userAuthTokenResponse'; +export const UMB_STORAGE_REDIRECT_URL = 'umb:auth:redirect'; From 1f900a89afcf926aa3987074ba4f1c00afc4ecba Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 25 Jan 2024 15:29:14 +0000 Subject: [PATCH 619/786] Refactored Dynamic Root repository code Wired up the call in the MNTP editor. --- ...-tree-picker-source-type-picker.element.ts | 4 +- .../property-editor-ui-tree-picker.element.ts | 55 ++++++++----------- .../repository/dynamic-root.repository.ts | 34 ++++++++++-- 3 files changed, 55 insertions(+), 38 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 7c9e19b87e..9d24671e0a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -52,8 +52,10 @@ export class UmbPropertyEditorUITreePickerSourceTypePickerElement this.observe( await this.#datasetContext.propertyValueByAlias('startNode'), (value) => { + if (!value) return; + const startNode = value as UmbTreePickerSource; - if (startNode.type) { + if (startNode?.type) { // If we had a sourceType before, we can see this as a change and not the initial value, // so let's reset the value, so we don't carry over content-types to the new source type. if (this.#initialized && this.sourceType !== startNode.type) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index bdd43b08b6..b6eaf34933 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -1,14 +1,13 @@ import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { - type UmbPropertyEditorConfigCollection, - UmbPropertyValueChangeEvent, -} from '@umbraco-cms/backoffice/property-editor'; +import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; +import { UmbDynamicRootRepository } from '@umbraco-cms/backoffice/dynamic-root'; +import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; +import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbInputTreeElement } from '@umbraco-cms/backoffice/tree'; import type { UmbTreePickerSource } from '@umbraco-cms/backoffice/components'; -import { UmbDynamicRootRepository } from '@umbraco-cms/backoffice/dynamic-root'; /** * @element umb-property-editor-ui-tree-picker @@ -44,6 +43,8 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen #dynamicRootRepository: UmbDynamicRootRepository; + #workspaceContext?: typeof UMB_WORKSPACE_CONTEXT.TYPE; + @property({ attribute: false }) public set config(config: UmbPropertyEditorConfigCollection | undefined) { const startNode: UmbTreePickerSource | undefined = config?.getValueByAlias('startNode'); @@ -65,40 +66,28 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen super(); this.#dynamicRootRepository = new UmbDynamicRootRepository(this); + + this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext: typeof UMB_WORKSPACE_CONTEXT.TYPE) => { + this.#workspaceContext = workspaceContext; + }); } connectedCallback() { super.connectedCallback(); - // TODO: Implement `startNode.dynamicRoot` [LK] - if (this.#dynamicRoot) { - console.log('dynamicRoot', this.#dynamicRoot); + this.#setStartNodeId(); + } - this.#dynamicRootRepository - .postDynamicRootQuery({ - context: { - id: 'b327ffa1-749a-4278-aa63-c020dba6b932', - parentId: 'b327ffa1-749a-4278-aa63-c020dba6b932', - culture: null, - segment: null, - }, - query: { - origin: { - alias: this.#dynamicRoot.originAlias, - key: this.#dynamicRoot.originKey, - }, - steps: this.#dynamicRoot.querySteps!.map((step) => { - return { - alias: step.alias!, - documentTypeIds: step.anyOfDocTypeKeys!, - }; - }), - }, - }) - .then((result) => { - // TODO: Implement the result from `postDynamicRootQuery`. [LK] - console.log('postDynamicRootQuery', result); - }); + #setStartNodeId() { + if (this.startNodeId) return; + + const entityId = this.#workspaceContext?.getEntityId(); + if (entityId && this.#dynamicRoot) { + this.#dynamicRootRepository.postDynamicRootQuery(this.#dynamicRoot, entityId).then((result) => { + if (result) { + this.startNodeId = result[0]; + } + }); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts index 62c6c6c0ac..66b401dc41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts @@ -1,7 +1,10 @@ import { UmbDynamicRootServerDataSource } from './dynamic-root.server.data.js'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { DynamicRootRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { DynamicRootRequestModel, DynamicRootResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbTreePickerDynamicRoot } from '@umbraco-cms/backoffice/components'; + +const GUID_EMPTY: string = '00000000-0000-0000-0000-000000000000'; export class UmbDynamicRootRepository extends UmbBaseController { #dataSource: UmbDynamicRootServerDataSource; @@ -12,8 +15,31 @@ export class UmbDynamicRootRepository extends UmbBaseController { this.#dataSource = new UmbDynamicRootServerDataSource(host); } - async postDynamicRootQuery(args: DynamicRootRequestModel) { - return this.#dataSource.postDynamicRootQuery(args); + + + async postDynamicRootQuery(query: UmbTreePickerDynamicRoot, currentId: string, parentId?: string) { + const model: DynamicRootRequestModel = { + context: { + id: currentId, + parentId: parentId ?? GUID_EMPTY, + }, + query: { + origin: { + alias: query.originAlias, + key: query.originKey, + }, + steps: query.querySteps!.map((step) => { + return { + alias: step.alias!, + documentTypeIds: step.anyOfDocTypeKeys!, + }; + }), + }, + }; + + const result = (await this.#dataSource.postDynamicRootQuery(model)) as DynamicRootResponseModel; + + return result.roots; } async getQuerySteps() { From f130347fac73ac31e6ae251906b6909e22460602 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 17:57:59 +0100 Subject: [PATCH 620/786] more model mapping --- .../src/mocks/data/member-type.data.ts | 1 - .../src/mocks/data/member.data.ts | 1 - .../src/mocks/handlers/document/index.ts | 2 -- .../src/mocks/handlers/media.handlers.ts | 7 ----- .../property-type-based-property.element.ts | 6 ++--- ...t-type-container-structure-helper.class.ts | 4 ++- ...nt-type-property-structure-helper.class.ts | 7 +++-- .../content-type-structure-manager.class.ts | 26 ++++++++----------- .../src/packages/core/content-type/types.ts | 17 +++++++++--- .../tree/data-type-tree.repository.ts | 1 - .../tree/data-type-tree.server.data-source.ts | 3 +-- .../data-type/tree/data-type-tree.store.ts | 1 - .../folder/data-type-folder.repository.ts | 3 +-- .../property-settings-modal.element.ts | 22 +++++++++------- .../src/packages/core/tree/types.ts | 1 - .../import/import-dictionary-modal.element.ts | 1 - .../dictionary-tree.server.data-source.ts | 10 ++++--- ...document-type-detail.server.data-source.ts | 19 +++++++------- .../relation-type-tree.server.data-source.ts | 10 ++++--- .../tree/static-file-tree.repository.ts | 1 - .../static-file-tree.server.data-source.ts | 1 - .../folder/partial-view-folder.repository.ts | 3 +-- .../partial-view-tree.server.data-source.ts | 3 +-- .../tree/partial-view-tree.store.ts | 1 - .../tree/folder/script-folder.repository.ts | 3 +-- .../scripts/tree/script-tree.repository.ts | 1 - .../tree/script-tree.server.data-source.ts | 3 +-- .../scripts/tree/script-tree.store.ts | 1 - .../tree/stylesheet-tree.repository.ts | 1 - .../stylesheet-tree.server.data-source.ts | 3 +-- .../stylesheets/tree/stylesheet-tree.store.ts | 1 - .../tree/template-tree.server.data-source.ts | 10 ++++--- 32 files changed, 82 insertions(+), 92 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts index af4d84b578..4297f341a4 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member-type.data.ts @@ -12,7 +12,6 @@ export const data: Array = [ entityType: 'member-type', hasChildren: false, id: 'd59be02f-1df9-4228-aa1e-01917d806cda', - isContainer: false, parentId: null, alias: 'memberType1', properties: [], diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts index c36eb952d4..7f5c05ba3d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/member.data.ts @@ -12,7 +12,6 @@ export const data: Array = [ entityType: 'member', hasChildren: false, id: 'aaa08ccd-4179-464c-b634-6969149dd9f9', - isContainer: false, parentId: null, isFolder: false, }, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts index 7bb59c3f4e..154739b722 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/index.ts @@ -4,7 +4,6 @@ import { itemHandlers } from './item.handlers.js'; import { permissionHandlers } from './permission.handlers.js'; import { publishingHandlers } from './publishing.handlers.js'; import { detailHandlers } from './detail.handlers.js'; -import { allowedTypesHandlers } from './allowed-types.handlers.js'; export const handlers = [ ...recycleBinHandlers, @@ -12,6 +11,5 @@ export const handlers = [ ...treeHandlers, ...itemHandlers, ...publishingHandlers, - ...allowedTypesHandlers, ...detailHandlers, ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts index e5348d38ca..f8f8624a67 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts @@ -30,13 +30,6 @@ export const handlers = [ return res(ctx.status(200)); }), - rest.post('/umbraco/management/api/v1/media/move', async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; - umbMediaData.move(data.ids, data.destination); - return res(ctx.status(200)); - }), - rest.post('/umbraco/management/api/v1/media/trash', async (req, res, ctx) => { const ids = await req.json(); const trashed = umbMediaData.trash(ids); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts index a95f6785b9..7e27d2c244 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts @@ -1,5 +1,5 @@ import type { UmbPropertyEditorConfig } from '../../../property-editor/index.js'; -import type { UmbDataTypeDetailModel} from '@umbraco-cms/backoffice/data-type'; +import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; @@ -16,8 +16,8 @@ export class UmbPropertyTypeBasedPropertyElement extends UmbLitElement { public set property(value: PropertyTypeModelBaseModel | undefined) { const oldProperty = this._property; this._property = value; - if (this._property?.dataTypeId !== oldProperty?.dataTypeId) { - this._observeDataType(this._property?.dataTypeId); + if (this._property?.dataType.id !== oldProperty?.dataType.id) { + this._observeDataType(this._property?.dataType.id); } } private _property?: PropertyTypeModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index 1fe3b0080a..e21f47d328 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -194,7 +194,9 @@ export class UmbContentTypeContainerStructureHelper x.id === containerId && x.parentId === this._ownerId) !== undefined; + return ( + this.#containers.getValue().find((x) => x.id === containerId && x.parent?.id === this._ownerId) !== undefined + ); } /** Manipulate methods: */ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index 535a2c24d0..d673f1ed92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -3,7 +3,10 @@ import type { UmbContentTypePropertyStructureManager, } from './content-type-structure-manager.class.js'; import type { UmbContentTypeModel } from './types.js'; -import type { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + DocumentTypePropertyTypeResponseModel, + PropertyTypeModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -93,7 +96,7 @@ export class UmbContentTypePropertyStructureHelper { // If this need to be able to remove properties, we need to clean out the ones of this group.id before inserting them: - const _propertyStructure = this.#propertyStructure.getValue().filter((x) => x.containerId !== groupId); + const _propertyStructure = this.#propertyStructure.getValue().filter((x) => x.container?.id !== groupId); properties?.forEach((property) => { if (!_propertyStructure.find((x) => x.alias === property.alias)) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index d0229013bb..073cc5e17f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -7,8 +7,7 @@ import type { PropertyTypeModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost, UmbController } from '@umbraco-cms/backoffice/controller-api'; -import type { - MappingFunction} from '@umbraco-cms/backoffice/observable-api'; +import type { MappingFunction } from '@umbraco-cms/backoffice/observable-api'; import { UmbArrayState, partialUpdateFrozenArray, @@ -160,7 +159,7 @@ export class UmbContentTypePropertyStructureManager { - this._ensureType(composition.id); + this._ensureType(composition.contentType.unique); }); } @@ -191,7 +190,7 @@ export class UmbContentTypePropertyStructureManager { return ( docTypes.find((docType) => { - return docType.properties?.find((property) => property.containerId === containerId); + return docType.properties?.find((property) => property.container?.id === containerId); }) !== undefined ); }); @@ -444,7 +443,7 @@ export class UmbContentTypePropertyStructureManager { docType.properties?.forEach((property) => { - if (property.containerId === containerId) { + if (property.container?.id === containerId) { props.push(property); } }); @@ -455,17 +454,17 @@ export class UmbContentTypePropertyStructureManager { - return data.filter((x) => x.parentId === null && x.type === containerType); + return data.filter((x) => x.parent?.id === null && x.type === containerType); }); } getRootContainers(containerType: PropertyContainerTypes) { - return this.#containers.getValue().filter((x) => x.parentId === null && x.type === containerType); + return this.#containers.getValue().filter((x) => x.parent?.id === null && x.type === containerType); } hasRootContainers(containerType: PropertyContainerTypes) { return this.#containers.asObservablePart((data) => { - return data.filter((x) => x.parentId === null && x.type === containerType).length > 0; + return data.filter((x) => x.parent?.id === null && x.type === containerType).length > 0; }); } @@ -474,19 +473,16 @@ export class UmbContentTypePropertyStructureManager x.parentId === parentId && x.type === containerType); + return this.getOwnerContentType()?.containers?.filter((x) => x.parent?.id === parentId && x.type === containerType); } isOwnerContainer(containerId: string) { return this.getOwnerContentType()?.containers?.filter((x) => x.id === containerId); } - containersOfParentKey( - parentId: PropertyTypeContainerModelBaseModel['parentId'], - containerType: PropertyContainerTypes, - ) { + containersOfParentKey(parentId: string, containerType: PropertyContainerTypes) { return this.#containers.asObservablePart((data) => { - return data.filter((x) => x.parentId === parentId && x.type === containerType); + return data.filter((x) => x.parent?.id === parentId && x.type === containerType); }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index d3b85a4efd..7fdcf78471 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -1,8 +1,7 @@ import type { PropertyTypeContainerModelBaseModel, PropertyTypeModelBaseModel, - ContentTypeSortModel, - ContentTypeCompositionModel, + CompositionTypeModel, } from '@umbraco-cms/backoffice/backend-api'; export interface UmbContentTypeModel { @@ -19,6 +18,16 @@ export interface UmbContentTypeModel { // TODO: investigate if we need our own model for these properties: Array; containers: Array; - allowedContentTypes: Array; - compositions: Array; + allowedContentTypes: Array; + compositions: Array; +} + +export interface UmbContentTypeSortModel { + contentType: { unique: string }; + sortOrder: number; +} + +export interface UmbContentTypeCompositionModel { + contentType: { unique: string }; + compositionType: CompositionTypeModel; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts index 3c3f2495df..dfaa6a389a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts @@ -21,7 +21,6 @@ export class UmbDataTypeTreeRepository name: 'Data Types', icon: 'icon-folder', hasChildren: true, - isContainer: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts index 634b7d300b..7de389a906 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.server.data-source.ts @@ -45,11 +45,10 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: DataTypeTreeItemResponseModel): UmbDataTypeTreeItemModel => { return { unique: item.id, - parentUnique: item.parentId || null, + parentUnique: item.parent?.id || null, name: item.name, entityType: item.isFolder ? 'data-type-folder' : 'data-type', isFolder: item.isFolder, - isContainer: item.isContainer, hasChildren: item.hasChildren, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts index f2d4e9967a..1984a64eed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.store.ts @@ -38,7 +38,6 @@ export class UmbDataTypeTreeStore extends UmbUniqueTreeStore { name: item.name, entityType: item.entityType, isFolder: false, - isContainer: false, hasChildren: false, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts index c34bb1c328..250ad3a1a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/folder/data-type-folder.repository.ts @@ -3,7 +3,7 @@ import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbDataTypeFolderServerDataSource } from './data-type-folder.server.data-source.js'; import type { UmbDataTypeFolderTreeItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase { @@ -18,7 +18,6 @@ const folderToDataTypeTreeItemMapper = (folder: UmbFolderModel): UmbDataTypeFold parentUnique: folder.parentUnique, name: folder.name, entityType: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE, - isContainer: false, hasChildren: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index 059494e8b8..0d290b8a43 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -5,14 +5,10 @@ import { import { UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/document-type'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIBooleanInputEvent, UUIInputEvent, UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; -import type { PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import type { - UmbPropertySettingsModalValue, - UmbPropertySettingsModalData} from '@umbraco-cms/backoffice/modal'; -import { - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbPropertySettingsModalValue, UmbPropertySettingsModalData } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; @@ -228,7 +224,11 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< return html`
- +
@@ -279,7 +279,11 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement<
- +
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts index 038440dee3..5b9b330ad9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/types.ts @@ -2,7 +2,6 @@ export interface UmbTreeItemModelBase { entityType: string; name: string; hasChildren: boolean; - isContainer: boolean; isFolder: boolean; icon?: string | null; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts index 6f37754d6e..503fed057a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/entity-actions/import/import-dictionary-modal.element.ts @@ -65,7 +65,6 @@ export class UmbImportDictionaryModalLayout extends UmbModalBaseElement< entityType: 'dictionary-item', hasChildren: item.children.length ? true : false, parentId: parentId || null, - isContainer: false, isFolder: false, }); scaffold(item.children, item.id); diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts index 5b60668f90..2a547eea81 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts @@ -1,7 +1,10 @@ import type { UmbDictionaryTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; import { DictionaryResource } from '@umbraco-cms/backoffice/backend-api'; /** @@ -42,14 +45,13 @@ const getChildrenOf = (parentUnique: string | null) => { } }; -const mapper = (item: EntityTreeItemResponseModel): UmbDictionaryTreeItemModel => { +const mapper = (item: NamedEntityTreeItemResponseModel): UmbDictionaryTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, + parentId: item.parent?.id || null, name: item.name, entityType: 'dictionary-item', hasChildren: item.hasChildren, - isContainer: item.isContainer, isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 5715a14c59..aef50e89d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -4,10 +4,9 @@ import { UmbId } from '@umbraco-cms/backoffice/id'; import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; import type { CreateDocumentTypeRequestModel, - UpdateDocumentTypeRequestModel} from '@umbraco-cms/backoffice/backend-api'; -import { - DocumentTypeResource + UpdateDocumentTypeRequestModel, } from '@umbraco-cms/backoffice/backend-api'; +import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -52,8 +51,8 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc containers: [], allowedContentTypes: [], compositions: [], - allowedTemplateIds: [], - defaultTemplateId: null, + allowedTemplates: [], + defaultTemplate: null, cleanup: { preventCleanup: false, keepAllVersionsNewerThanDays: null, @@ -100,7 +99,7 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc allowedDocumentTypes: data.allowedDocumentTypes, compositions: data.compositions, allowedTemplates: data.allowedTemplates, - defaultTemplate: data.defaultTemplate?.id || null, + defaultTemplate: data.defaultTemplate ? { id: data.defaultTemplate.id } : null, cleanup: data.cleanup, }; @@ -133,8 +132,8 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc compositions: model.compositions, id: model.unique, containerId: model.parentUnique, - allowedTemplateIds: model.allowedTemplateIds, - defaultTemplateId: model.defaultTemplateId || null, + allowedTemplates: model.allowedTemplates, + defaultTemplate: model.defaultTemplate ? { id: model.defaultTemplate.id } : null, cleanup: model.cleanup, }; @@ -175,8 +174,8 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc containers: model.containers, allowedContentTypes: model.allowedContentTypes, compositions: model.compositions, - allowedTemplateIds: model.allowedTemplateIds, - defaultTemplateId: model.defaultTemplateId || null, + allowedTemplate: model.allowedTemplates, + defaultTemplate: model.defaultTemplate ? { id: model.defaultTemplate.id } : null, cleanup: model.cleanup, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts index e631086f63..f795143662 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts @@ -1,5 +1,8 @@ import type { UmbRelationTypeTreeItemModel } from './types.js'; -import type { EntityTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import type { + EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; import { RelationTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; @@ -39,14 +42,13 @@ const getChildrenOf = (parentUnique: string | null) => { } }; -const mapper = (item: EntityTreeItemResponseModel): UmbRelationTypeTreeItemModel => { +const mapper = (item: NamedEntityTreeItemResponseModel): UmbRelationTypeTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, + parentId: item.parent ? item.parent.id : null, name: item.name, entityType: 'relation-type', hasChildren: item.hasChildren, - isContainer: item.isContainer, isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts index 805634d1ba..72124cfda6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts @@ -21,7 +21,6 @@ export class UmbStaticFileTreeRepository name: 'Static Files', icon: 'icon-folder', hasChildren: true, - isContainer: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts index 9ca8904269..69181dffef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.server.data-source.ts @@ -55,6 +55,5 @@ const mapper = (item: FileSystemTreeItemPresentationModel): UmbStaticFileTreeIte name: item.name, isFolder: item.isFolder, hasChildren: item.hasChildren, - isContainer: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts index ec895cd630..1f64e5cb9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/folder/partial-view-folder.repository.ts @@ -2,7 +2,7 @@ import { UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } from '../../entity.js'; import type { UmbPartialViewTreeItemModel } from '../types.js'; import { UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT } from '../partial-view-tree.store.js'; import { UmbPartialViewFolderServerDataSource } from './partial-view-folder.server.data-source.js'; -import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -24,7 +24,6 @@ const folderToPartialViewTreeItemFolder = (folder: UmbFolderModel): UmbPartialVi name: folder.name, entityType: UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE, isFolder: true, - isContainer: false, hasChildren: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts index 3bdf84386f..518a8cbdf7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.server.data-source.ts @@ -2,7 +2,7 @@ import { UMB_PARTIAL_VIEW_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE } fro import type { UmbPartialViewTreeItemModel } from './types.js'; import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import type { FileSystemTreeItemPresentationModel} from '@umbraco-cms/backoffice/backend-api'; +import type { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { PartialViewResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -56,6 +56,5 @@ const mapper = (item: FileSystemTreeItemPresentationModel): UmbPartialViewTreeIt name: item.name, isFolder: item.isFolder, hasChildren: item.hasChildren, - isContainer: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts index b07f03c206..9420d28760 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.store.ts @@ -39,7 +39,6 @@ export class UmbPartialViewTreeStore extends UmbUniqueTreeStore { entityType: UMB_PARTIAL_VIEW_ENTITY_TYPE, name: item.name, hasChildren: false, - isContainer: false, isFolder: false, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts index c9e7d86bdc..ef1399d613 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/folder/script-folder.repository.ts @@ -2,7 +2,7 @@ import { UMB_SCRIPT_FOLDER_ENTITY_TYPE } from '../../entity.js'; import type { UmbScriptTreeItemModel } from '../index.js'; import { UMB_SCRIPT_TREE_STORE_CONTEXT } from '../index.js'; import { UmbScriptFolderServerDataSource } from './script-folder.server.data-source.js'; -import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -19,7 +19,6 @@ const folderToScriptTreeItemFolder = (folder: UmbFolderModel): UmbScriptTreeItem name: folder.name, entityType: UMB_SCRIPT_FOLDER_ENTITY_TYPE, isFolder: true, - isContainer: false, hasChildren: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts index c3340d49ea..dd54a47fc1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts @@ -18,7 +18,6 @@ export class UmbScriptTreeRepository extends UmbTreeRepositoryBase { } }; -const mapper = (item: EntityTreeItemResponseModel): UmbTemplateTreeItemModel => { +const mapper = (item: NamedEntityTreeItemResponseModel): UmbTemplateTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, + parentId: item.parent ? item.parent.id : null, name: item.name, entityType: 'template', - isContainer: item.isContainer, hasChildren: item.hasChildren, isFolder: false, }; From ad7083f5d96d85274e521463340da2bffbb7cc4d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 20:20:24 +0100 Subject: [PATCH 621/786] move model mapping --- .../document/document-publishing.manager.ts | 2 +- .../data/entity/entity-folder.manager.ts | 2 +- .../mocks/data/entity/entity-recycle-bin.ts | 4 +-- .../mocks/data/entity/entity-tree.manager.ts | 4 +-- .../block-type-card.element.ts | 2 +- .../block-type-workspace-editor.element.ts | 2 +- .../item/data-type-item.repository.ts | 4 +-- .../core/data-type/repository/item/index.ts | 1 + .../core/data-type/repository/item/types.ts | 5 ++++ .../property-settings-modal.element.ts | 2 -- .../document-types/repository/item/types.ts | 9 ++++--- .../tree/document-type-tree.repository.ts | 1 - .../document-type.tree.server.data-source.ts | 3 +-- .../tree/document-type.tree.store.ts | 1 - .../document-type-workspace.context.ts | 27 +++++++++---------- ...t-type-workspace-view-templates.element.ts | 2 +- ...ut-document-granular-permission.element.ts | 15 ++++------- .../input-document/input-document.element.ts | 2 +- .../tree/document-tree.server.data-source.ts | 9 ++----- .../src/packages/documents/documents/types.ts | 4 +-- .../workspace/document-workspace.context.ts | 18 ++++++------- ...-workspace-view-edit-properties.element.ts | 11 +++++--- ...pe-workspace-view-edit-property.element.ts | 7 +++-- ...ia-type-workspace-view-edit-tab.element.ts | 8 ++++-- .../query-builder/query-builder.element.ts | 13 +++++---- .../tree/template-tree.repository.ts | 1 - .../tree/template-tree.server.data-source.ts | 2 +- 27 files changed, 78 insertions(+), 83 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts index d7ae0bbb42..52af46c503 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document-publishing.manager.ts @@ -28,7 +28,7 @@ export class UmbMockDocumentPublishingManager { const document: UmbMockDocumentModel = this.#documentDb.detail.read(id); document?.variants?.forEach((variant) => { - const hasCulture = variant.culture && data.cultures?.includes(variant.culture); + const hasCulture = variant.culture && data.culture === variant.culture; if (hasCulture) { variant.state = ContentStateModel.DRAFT; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts index 432f5b4a97..692ab9afd9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-folder.manager.ts @@ -55,7 +55,7 @@ export class UmbMockEntityFolderManager, + MockType extends Omit, > extends UmbEntityMockDbBase { tree; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts index 2628bda298..b066aa74b3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/entity/entity-tree.manager.ts @@ -12,14 +12,14 @@ export class UmbMockEntityTreeManager item.parentId === null); + const items = this.#db.getData().filter((item) => item.parent === null); const treeItems = items.map((item) => this.#treeItemMapper(item)); const total = items.length; return { items: treeItems, total }; } getChildrenOf(parentId: string) { - const items = this.#db.getData().filter((item) => item.parentId === parentId); + const items = this.#db.getData().filter((item) => item.parent?.id === parentId); const treeItems = items.map((item) => this.#treeItemMapper(item)); const total = items.length; return { items: treeItems, total }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts index 0d167a660d..b7732995ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts @@ -14,7 +14,7 @@ export class UmbBlockTypeCardElement extends UmbLitElement { #itemManager = new UmbRepositoryItemsManager( this, DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, - (x) => x.id, + (x) => x.unique, ); @property({ type: String, attribute: false }) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts index 018bfbbfa4..97b8c61af0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts @@ -12,7 +12,7 @@ export class UmbBlockTypeWorkspaceEditorElement extends UmbLitElement { #itemManager = new UmbRepositoryItemsManager( this, DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, - (x) => x.id, + (x) => x.unique, ); #workspaceContext?: typeof UMB_BLOCK_TYPE_WORKSPACE_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts index 4879b439f1..01c7113f0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts @@ -1,10 +1,10 @@ import { UmbDataTypeItemServerDataSource } from './data-type-item.server.data.js'; import { UMB_DATA_TYPE_ITEM_STORE_CONTEXT } from './data-type-item.store.js'; +import type { UmbDataTypeItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbDataTypeItemRepository extends UmbItemRepositoryBase { +export class UmbDataTypeItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbDataTypeItemServerDataSource, UMB_DATA_TYPE_ITEM_STORE_CONTEXT); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/index.ts index 09da119f87..920fe6202c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/index.ts @@ -1,2 +1,3 @@ export { UmbDataTypeItemRepository } from './data-type-item.repository.js'; export { UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS as DATA_TYPE_ITEM_REPOSITORY_ALIAS } from './manifests.js'; +export type { UmbDataTypeItemModel } from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/types.ts new file mode 100644 index 0000000000..d798ac80cc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/types.ts @@ -0,0 +1,5 @@ +export interface UmbDataTypeItemModel { + unique: string; + name: string; + propertyEditorUiAlias: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index 0d290b8a43..7b3b79bb1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -10,8 +10,6 @@ import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffic import type { UmbPropertySettingsModalValue, UmbPropertySettingsModalData } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; -import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; // TODO: Could base take a token to get its types?. @customElement('umb-property-settings-modal') export class UmbPropertySettingsModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts index d06102317d..1079e8cf02 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/types.ts @@ -1,3 +1,6 @@ -import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -export type UmbDocumentTypeItemModel = DocumentTypeItemResponseModel; +export type UmbDocumentTypeItemModel = { + unique: string; + name: string; + isElement: boolean; + icon?: string | null; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts index 16c2b640e9..b2b3d9eb41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts @@ -21,7 +21,6 @@ export class UmbDocumentTypeTreeRepository name: 'Document Types', icon: 'icon-folder', hasChildren: true, - isContainer: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts index 619ef7c489..0c1b601301 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts @@ -46,10 +46,9 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: DocumentTypeTreeItemResponseModel): UmbDocumentTypeTreeItemModel => { return { unique: item.id, - parentUnique: item.parentId || null, + parentUnique: item.parent ? item.parent.id : null, name: item.name, entityType: item.isFolder ? UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE : UMB_DOCUMENT_TYPE_ENTITY_TYPE, - isContainer: item.isContainer, hasChildren: item.hasChildren, isFolder: item.isFolder, icon: item.icon, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts index 490baed60a..4e464abdcf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type.tree.store.ts @@ -39,7 +39,6 @@ export class UmbDocumentTypeTreeStore extends UmbUniqueTreeStore { entityType: item.entityType, isElement: item.isElement, isFolder: false, - isContainer: false, hasChildren: false, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index 3701df5d0b..da4a783138 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -1,12 +1,9 @@ import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; import type { UmbDocumentTypeDetailModel } from '../types.js'; +import type { UmbContentTypeCompositionModel, UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; -import type { - UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; -import { - UmbEditableWorkspaceContextBase -} from '@umbraco-cms/backoffice/workspace'; -import type { ContentTypeCompositionModel, ContentTypeSortModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; @@ -60,9 +57,9 @@ export class UmbDocumentTypeWorkspaceContext this.compositions = this.structure.ownerContentTypeObservablePart((data) => data?.compositions); // Document type specific: - this.allowedTemplateIds = this.structure.ownerContentTypeObservablePart((data) => data?.allowedTemplateIds); - this.defaultTemplateId = this.structure.ownerContentTypeObservablePart((data) => data?.defaultTemplateId); - this.cleanup = this.structure.ownerContentTypeObservablePart((data) => data?.defaultTemplateId); + this.allowedTemplateIds = this.structure.ownerContentTypeObservablePart((data) => data?.allowedTemplates); + this.defaultTemplateId = this.structure.ownerContentTypeObservablePart((data) => data?.defaultTemplate); + this.cleanup = this.structure.ownerContentTypeObservablePart((data) => data?.defaultTemplate); } getIsSorting() { @@ -112,19 +109,19 @@ export class UmbDocumentTypeWorkspaceContext setIsElement(isElement: boolean) { this.structure.updateOwnerContentType({ isElement }); } - setAllowedContentTypes(allowedContentTypes: Array) { + setAllowedContentTypes(allowedContentTypes: Array) { this.structure.updateOwnerContentType({ allowedContentTypes }); } - setCompositions(compositions: Array) { + setCompositions(compositions: Array) { this.structure.updateOwnerContentType({ compositions }); } // Document type specific: - setAllowedTemplateIds(allowedTemplateIds: Array) { - this.structure.updateOwnerContentType({ allowedTemplateIds }); + setAllowedTemplateIds(allowedTemplates: Array) { + this.structure.updateOwnerContentType({ allowedTemplates }); } - setDefaultTemplateId(defaultTemplateId: string) { - this.structure.updateOwnerContentType({ defaultTemplateId }); + setDefaultTemplateId(defaultTemplate: string) { + this.structure.updateOwnerContentType({ defaultTemplate }); } async create(parentUnique: string | null) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts index 4c73b41165..a7f63a1afc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts @@ -31,7 +31,7 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement extends UmbLitElement this.#workspaceContext.defaultTemplateId, (defaultTemplateId) => { const oldValue = this._defaultTemplateId; - this._defaultTemplateId = defaultTemplateId; + this._defaultTemplate = defaultTemplateId; this.requestUpdate('_defaultTemplateId', oldValue); }, 'defaultTemplate', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts index 13542f654a..4924a63706 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-granular-permission/input-document-granular-permission.element.ts @@ -1,16 +1,11 @@ +import { UmbDocumentItemRepository } from '../../repository/index.js'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import type { - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_MODAL_MANAGER_CONTEXT, - UMB_CONFIRM_MODAL, - UMB_DOCUMENT_PICKER_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL, UMB_DOCUMENT_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDocumentRepository } from '@umbraco-cms/backoffice/document'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; @@ -37,7 +32,7 @@ export class UmbInputDocumentGranularPermissionElement extends FormControlMixin( @state() private _items?: Array; - #documentRepository = new UmbDocumentRepository(this); + #documentItemRepository = new UmbDocumentItemRepository(this); #modalContext?: UmbModalManagerContext; #pickedItemsObserver?: UmbObserverController>; @@ -58,7 +53,7 @@ export class UmbInputDocumentGranularPermissionElement extends FormControlMixin( async #observePickedDocuments() { this.#pickedItemsObserver?.destroy(); - const { asObservable } = await this.#documentRepository.requestItems(this._selectedIds); + const { asObservable } = await this.#documentItemRepository.requestItems(this._selectedIds); this.#pickedItemsObserver = this.observe(asObservable(), (items) => (this._items = items)); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index c2877f68ed..eab713c6e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -140,7 +140,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { #pickableFilter: (item: DocumentTreeItemResponseModel) => boolean = (item) => { if (this.allowedContentTypeIds && this.allowedContentTypeIds.length > 0) { - return this.allowedContentTypeIds.includes(item.contentTypeId); + return this.allowedContentTypeIds.includes(item.documentType.id); } return true; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index 7dc23fb3e6..86ae929ee8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -46,19 +46,14 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: DocumentTreeItemResponseModel): UmbDocumentTreeItemModel => { return { unique: item.id, - parentUnique: item.parentId ? item.parentId : null, - name: item.name, + parentUnique: item.parent ? item.parent.id : null, entityType: UMB_DOCUMENT_ENTITY_TYPE, noAccess: item.noAccess, isTrashed: item.isTrashed, - isContainer: item.isContainer, hasChildren: item.hasChildren, isProtected: item.isProtected, - isPublished: item.isPublished, - isEdited: item.isEdited, - contentTypeId: item.contentTypeId, + documentType: item.documentType, variants: item.variants, - icon: item.icon, isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts index 8f392c9aa7..f79593decf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts @@ -1,5 +1,5 @@ -import { UmbDocumentEntityType } from './entity.js'; -import { ContentStateModel, ContentUrlInfoModel, DocumentValueModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDocumentEntityType } from './entity.js'; +import type { ContentStateModel, ContentUrlInfoModel, DocumentValueModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDocumentDetailModel { contentTypeId: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index ca039123c6..9bb08d754a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -1,7 +1,7 @@ -import { UmbDocumentRepository } from '../repository/document.repository.js'; import { UmbDocumentTypeDetailRepository } from '../../document-types/repository/detail/document-type-detail.repository.js'; import { UmbDocumentPropertyDataContext } from '../property-dataset-context/document-property-dataset-context.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; +import { UmbDocumentDetailRepository } from '../repository/index.js'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import { UmbContentTypePropertyStructureManager } from '@umbraco-cms/backoffice/content-type'; import { @@ -20,7 +20,7 @@ export class UmbDocumentWorkspaceContext implements UmbVariantableWorkspaceContextInterface, UmbPublishableWorkspaceContextInterface { // - public readonly repository: UmbDocumentRepository = new UmbDocumentRepository(this); + public readonly repository: UmbDocumentDetailRepository = new UmbDocumentDetailRepository(this); /** * The document is the current state/draft version of the document. */ @@ -31,11 +31,11 @@ export class UmbDocumentWorkspaceContext } readonly unique = this.#currentData.asObservablePart((data) => data?.id); - readonly contentTypeId = this.#currentData.asObservablePart((data) => data?.contentTypeId); + readonly contentTypeId = this.#currentData.asObservablePart((data) => data?.documentType.id); readonly variants = this.#currentData.asObservablePart((data) => data?.variants || []); readonly urls = this.#currentData.asObservablePart((data) => data?.urls || []); - readonly templateId = this.#currentData.asObservablePart((data) => data?.templateId || null); + readonly templateId = this.#currentData.asObservablePart((data) => data?.template?.id || null); readonly structure = new UmbContentTypePropertyStructureManager(this, new UmbDocumentTypeDetailRepository(this)); readonly splitView = new UmbWorkspaceSplitViewManager(); @@ -51,8 +51,8 @@ export class UmbDocumentWorkspaceContext */ } - async load(entityId: string) { - this.#getDataPromise = this.repository.requestById(entityId); + async load(unique: string) { + this.#getDataPromise = this.repository.requestByUnique(unique); const { data } = await this.#getDataPromise; if (!data) return undefined; @@ -62,8 +62,8 @@ export class UmbDocumentWorkspaceContext return data || undefined; } - async create(documentTypeKey: string, parentId: string | null) { - this.#getDataPromise = this.repository.createScaffold(documentTypeKey, { parentId }); + async create(unique: string, parentUnique: string | null) { + this.#getDataPromise = this.repository.createScaffold(unique, { parentUnique }); const { data } = await this.#getDataPromise; if (!data) return undefined; @@ -91,7 +91,7 @@ export class UmbDocumentWorkspaceContext } getContentTypeId() { - return this.getData()?.contentTypeId; + return this.getData()?.documentType.id; } variantById(variantId: UmbVariantId) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index 4282822402..9499997c16 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -8,7 +8,10 @@ import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/c import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { MediaTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + MediaTypePropertyTypeResponseModel, + PropertyTypeModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @@ -172,18 +175,18 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen return html`
${repeat( this._propertyStructure, - (property) => property.id ?? '' + property.containerId ?? '' + property.sortOrder ?? '', + (property) => property.id ?? '' + property.container.id ?? '' + property.sortOrder ?? '', (property) => { // Note: This piece might be moved into the property component const inheritedFromMedia = this._ownerMediaTypes?.find( - (types) => types.containers?.find((containers) => containers.id === property.containerId), + (types) => types.containers?.find((containers) => containers.id === property.container.id), ); return html` { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index cd88dc2b49..75975d1824 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -1,10 +1,9 @@ import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; -import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import type { - UmbConfirmModalData} from '@umbraco-cms/backoffice/modal'; +import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, @@ -38,7 +37,7 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { const oldValue = this._property; this._property = value; this.#modalRegistration.setUniquePathValue('propertyId', value?.id?.toString()); - this.setDataType(this._property?.dataTypeId); + this.setDataType(this._property?.dataType.id); this.requestUpdate('property', oldValue); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts index bbef256383..e7aa540062 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts @@ -6,7 +6,7 @@ import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import './media-type-workspace-view-edit-properties.element.js'; @@ -172,7 +172,11 @@ export class UmbMediaTypeWorkspaceViewEditTabElement extends UmbLitElement { value=${group.name ?? ''} @change=${(e: InputEvent) => { const newName = (e.target as HTMLInputElement).value; - this._groupStructureHelper.updateContainerName(group.id!, group.parentId ?? null, newName); + this._groupStructureHelper.updateContainerName( + group.id!, + group.parent?.id ?? null, + newName, + ); }}>
diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts index 559bea366d..f04610d28c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts @@ -3,19 +3,18 @@ import { localizePropertyType, localizeSort } from './utils.js'; import type { UmbQueryBuilderFilterElement } from './query-builder-filter.element.js'; import type { UUIComboboxListElement } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, state, query, queryAll, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import type { - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement, UMB_DOCUMENT_PICKER_MODAL, - UMB_MODAL_MANAGER_CONTEXT + UMB_MODAL_MANAGER_CONTEXT, } from '@umbraco-cms/backoffice/modal'; import type { TemplateQueryExecuteModel, TemplateQueryResultResponseModel, TemplateQuerySettingsResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDocumentRepository } from '@umbraco-cms/backoffice/document'; +import { UmbDocumentItemRepository } from '@umbraco-cms/backoffice/document'; import './query-builder-filter.element.js'; export interface TemplateQueryBuilderModalData { @@ -57,14 +56,14 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement @state() private _defaultSortDirection: SortOrder = SortOrder.Ascending; - #documentRepository: UmbDocumentRepository; + #documentItemRepository: UmbDocumentItemRepository; #modalManagerContext?: UmbModalManagerContext; #templateRepository: UmbTemplateRepository; constructor() { super(); this.#templateRepository = new UmbTemplateRepository(this); - this.#documentRepository = new UmbDocumentRepository(this); + this.#documentItemRepository = new UmbDocumentItemRepository(this); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalManagerContext = instance; @@ -127,7 +126,7 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement }; async #getDocumentItem(ids: string[]) { - const { data, error } = await this.#documentRepository.requestItems(ids); + const { data, error } = await this.#documentItemRepository.requestItems(ids); if (data) { this._selectedRootContentName = data[0].name; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts index 6909401eb6..149ec17dc9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.repository.ts @@ -21,7 +21,6 @@ export class UmbTemplateTreeRepository name: 'Templates', icon: 'icon-folder', hasChildren: true, - isContainer: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts index 043962734e..6988211379 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/tree/template-tree.server.data-source.ts @@ -14,7 +14,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; * @implements {UmbTreeDataSource} */ export class UmbTemplateTreeServerDataSource extends UmbTreeServerDataSourceBase< - EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, UmbTemplateTreeItemModel > { /** From 5ef21ba67fe96ab548319fe3c0009635bea47d72 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 20:38:28 +0100 Subject: [PATCH 622/786] mapping --- .../property-settings-modal.element.ts | 4 +- .../dictionary-tree.server.data-source.ts | 2 +- ...document-type-detail.server.data-source.ts | 45 +++++++++++++++---- .../folder/document-type-folder.repository.ts | 3 +- ...-workspace-view-edit-properties.element.ts | 11 +++-- ...pe-workspace-view-edit-property.element.ts | 7 ++- ...t-type-workspace-view-structure.element.ts | 2 +- 7 files changed, 52 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index 7b3b79bb1c..d436488651 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -134,7 +134,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< #onDataTypeIdChange(event: UUIInputEvent) { const dataTypeId = event.target.value.toString(); - this.updateValue({ dataTypeId }); + this.updateValue({ dataType: { id: dataTypeId } }); } #onMandatoryChange(event: UUIBooleanInputEvent) { @@ -259,7 +259,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< .value=${this.value.description}>

diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts index 2a547eea81..f143fef922 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.server.data-source.ts @@ -14,7 +14,7 @@ import { DictionaryResource } from '@umbraco-cms/backoffice/backend-api'; * @implements {UmbTreeDataSource} */ export class UmbDictionaryTreeServerDataSource extends UmbTreeServerDataSourceBase< - EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, UmbDictionaryTreeItemModel > { /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index aef50e89d7..544a7c2e78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -96,8 +96,18 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc isElement: data.isElement, properties: data.properties, containers: data.containers, - allowedDocumentTypes: data.allowedDocumentTypes, - compositions: data.compositions, + allowedContentTypes: data.allowedDocumentTypes.map((allowedDocumentType) => { + return { + contentType: { unique: allowedDocumentType.documentType.id }, + sortOrder: allowedDocumentType.sortOrder, + }; + }), + compositions: data.compositions.map((composition) => { + return { + contentType: { unique: composition.documentType.id }, + compositionType: composition.compositionType, + }; + }), allowedTemplates: data.allowedTemplates, defaultTemplate: data.defaultTemplate ? { id: data.defaultTemplate.id } : null, cleanup: data.cleanup, @@ -128,10 +138,19 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc isElement: model.isElement, properties: model.properties, containers: model.containers, - allowedContentTypes: model.allowedContentTypes, - compositions: model.compositions, + allowedDocumentTypes: model.allowedContentTypes.map((allowedContentType) => { + return { + documentType: { id: allowedContentType.contentType.unique }, + sortOrder: allowedContentType.sortOrder, + }; + }), + compositions: model.compositions.map((composition) => { + return { + documentType: { id: composition.contentType.unique }, + compositionType: composition.compositionType, + }; + }), id: model.unique, - containerId: model.parentUnique, allowedTemplates: model.allowedTemplates, defaultTemplate: model.defaultTemplate ? { id: model.defaultTemplate.id } : null, cleanup: model.cleanup, @@ -172,9 +191,19 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc isElement: model.isElement, properties: model.properties, containers: model.containers, - allowedContentTypes: model.allowedContentTypes, - compositions: model.compositions, - allowedTemplate: model.allowedTemplates, + allowedDocumentTypes: model.allowedContentTypes.map((allowedContentType) => { + return { + documentType: { id: allowedContentType.contentType.unique }, + sortOrder: allowedContentType.sortOrder, + }; + }), + compositions: model.compositions.map((composition) => { + return { + documentType: { id: composition.contentType.unique }, + compositionType: composition.compositionType, + }; + }), + allowedTemplates: model.allowedTemplates, defaultTemplate: model.defaultTemplate ? { id: model.defaultTemplate.id } : null, cleanup: model.cleanup, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts index db7aec1677..786591cfa2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/folder/document-type-folder.repository.ts @@ -3,7 +3,7 @@ import { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from '../../tree/index.js'; import { UmbDocumentTypeFolderServerDataSource } from './document-type-folder.server.data-source.js'; import type { UmbDocumentTypeFolderTreeItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; export class UmbDocumentTypeFolderRepository extends UmbFolderRepositoryBase { @@ -23,7 +23,6 @@ const folderToDocumentTypeTreeItemMapper = (folder: UmbFolderModel): UmbDocument parentUnique: folder.parentUnique, name: folder.name, entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, - isContainer: false, hasChildren: false, isFolder: true, isElement: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index 2c5acb43e1..e15d12ddbb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -8,7 +8,10 @@ import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/c import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { DocumentTypePropertyTypeResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { + DocumentTypePropertyTypeResponseModel, + PropertyTypeModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; @@ -175,18 +178,18 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle return html`
${repeat( this._propertyStructure, - (property) => property.id ?? '' + property.containerId ?? '' + property.sortOrder ?? '', + (property) => property.id ?? '' + property.container?.id ?? '' + property.sortOrder ?? '', (property) => { // Note: This piece might be moved into the property component const inheritedFromDocument = this._ownerDocumentTypes?.find( - (types) => types.containers?.find((containers) => containers.id === property.containerId), + (types) => types.containers?.find((containers) => containers.id === property.container?.id), ); return html` { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index 92a54b7a51..945f93ab43 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -1,10 +1,9 @@ import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; -import type { UUIInputElement} from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; -import type { - UmbConfirmModalData} from '@umbraco-cms/backoffice/modal'; +import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, @@ -38,7 +37,7 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { const oldValue = this._property; this._property = value; this.#modalRegistration.setUniquePathValue('propertyId', value?.id?.toString()); - this.setDataType(this._property?.dataTypeId); + this.setDataType(this._property?.dataType.id); this.requestUpdate('property', oldValue); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts index e9a11e6d9b..787971f9ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts @@ -33,7 +33,7 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement this.observe(this.#workspaceContext.allowedContentTypes, (allowedContentTypes) => { const oldValue = this._allowedContentTypeIDs; this._allowedContentTypeIDs = allowedContentTypes - ?.map((x) => x.id) + ?.map((x) => x.contentType.unique) .filter((x) => x !== undefined) as Array; this.requestUpdate('_allowedContentTypeIDs', oldValue); }); From 695c735dad60912b0467c687424821156812c37c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 25 Jan 2024 21:08:33 +0100 Subject: [PATCH 623/786] mapping --- .../entity-actions/create-blueprint.action.ts | 2 +- .../create/create-document-modal.element.ts | 12 ++++-------- .../culture-and-hostnames.action.ts | 2 +- .../entity-actions/public-access.action.ts | 2 +- .../documents/entity-actions/rollback.action.ts | 2 +- .../documents/tree/document-tree.repository.ts | 1 - .../tree/document-tree.server.data-source.ts | 8 +++++++- .../packages/documents/documents/tree/types.ts | 17 +++++++++-------- 8 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts index cf37289584..c234a1cfc1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts @@ -9,6 +9,6 @@ export class UmbCreateDocumentBlueprintEntityAction extends UmbEntityActionBase< async execute() { console.log(`execute for: ${this.unique}`); - await this.repository?.createBlueprint(); + //await this.repository?.createBlueprint(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts index 3dbb942327..1cdea74ac2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts @@ -1,20 +1,16 @@ import { html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { - UmbCreateDocumentModalData, - UmbCreateDocumentModalValue} from '@umbraco-cms/backoffice/modal'; -import { - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbCreateDocumentModalData, UmbCreateDocumentModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import type { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDocumentRepository } from '@umbraco-cms/backoffice/document'; +import { UmbDocumentDetailRepository } from '@umbraco-cms/backoffice/document'; @customElement('umb-create-document-modal') export class UmbCreateDocumentModalElement extends UmbModalBaseElement< UmbCreateDocumentModalData, UmbCreateDocumentModalValue > { - #documentRepository = new UmbDocumentRepository(this); + #documentRepository = new UmbDocumentDetailRepository(this); @state() private _allowedDocumentTypes: DocumentTypeResponseModel[] = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts index 8a6f508079..536d4d9820 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts @@ -9,6 +9,6 @@ export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionB async execute() { console.log(`execute for: ${this.unique}`); - await this.repository?.setCultureAndHostnames(); + //await this.repository?.setCultureAndHostnames(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts index 45ce15c494..5dc3f458a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts @@ -9,6 +9,6 @@ export class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase { + return { + name: variant.name, + culture: variant.culture || null, + state: variant.state, + }; + }), isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts index e140712a50..23a8847c97 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts @@ -1,25 +1,26 @@ import type { UmbDocumentEntityType, UmbDocumentRootEntityType } from '../entity.js'; import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -import type { PublishedStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDocumentTreeItemModel extends UmbUniqueTreeItemModel { entityType: UmbDocumentEntityType; noAccess: boolean; isTrashed: boolean; isProtected: boolean; - isPublished: boolean; - isEdited: boolean; - contentTypeId: string; - variants: Array; - icon: string; + documentType: { + id: string; + icon: string; + hasListView: boolean; + }; + variants: Array; } export interface UmbDocumentTreeRootModel extends UmbUniqueTreeRootModel { entityType: UmbDocumentRootEntityType; } -export interface UmbDocumentVariantTreeItemModel { +export interface UmbDocumentTreeItemVariantModel { name: string; culture: string | null; - state: PublishedStateModel; // TODO: make our own enum for this. We might have states for "unsaved changes" etc. + state: ContentStateModel; // TODO: make our own enum for this. We might have states for "unsaved changes" etc. } From f208fecc113ae7b4e17e1aef1b91cd4e40015979 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 26 Jan 2024 08:56:22 +0100 Subject: [PATCH 624/786] mapping --- ...pe-workspace-view-edit-property.element.ts | 2 +- ...nt-type-workspace-view-edit-tab.element.ts | 8 ++++++-- .../documents/entity-actions/manifests.ts | 20 +++++++++---------- .../entity-actions/permissions/manifests.ts | 4 ++-- .../entity-bulk-actions/copy/copy.action.ts | 2 +- .../entity-bulk-actions/move/move.action.ts | 2 +- .../recycle-bin/entity-action/manifests.ts | 4 ++-- ...ent-recycle-bin-tree.server.data-source.ts | 8 +++----- .../documents/recycle-bin/tree/types.ts | 2 +- .../documents/repository/detail/manifests.ts | 2 +- .../tree/media-type-tree.repository.ts | 1 - .../media-type-tree.server.data-source.ts | 3 +-- .../media-types/tree/media-type-tree.store.ts | 1 - .../tree/media-tree.server.data-source.ts | 4 +--- .../src/packages/media/media/tree/types.ts | 2 +- .../member-group-tree.server.data-source.ts | 9 ++++----- .../member-type-tree.server.data-source.ts | 9 ++++----- .../tree/member-tree.server.data-source.ts | 9 ++++----- .../relation-type-tree.server.data-source.ts | 7 ++----- .../tree/partial-view-tree.repository.ts | 2 -- .../folder/stylesheet-folder.repository.ts | 3 +-- 21 files changed, 46 insertions(+), 58 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index 945f93ab43..5ce98fd39b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -295,7 +295,7 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { renderPropertyTags() { return this.property ? html`
- ${this.property.dataTypeId ? html`${this._dataTypeName}` : nothing} + ${this.property.dataType.id ? html`${this._dataTypeName}` : nothing} ${this.property.variesByCulture ? html` ${this.localize.term('contentTypeEditor_cultureVariantLabel')} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts index 593bd375fd..94a2aa5a03 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts @@ -6,7 +6,7 @@ import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import './document-type-workspace-view-edit-properties.element.js'; @@ -172,7 +172,11 @@ export class UmbDocumentTypeWorkspaceViewEditTabElement extends UmbLitElement { value=${group.name ?? ''} @change=${(e: InputEvent) => { const newName = (e.target as HTMLInputElement).value; - this._groupStructureHelper.updateContainerName(group.id!, group.parentId ?? null, newName); + this._groupStructureHelper.updateContainerName( + group.id!, + group.parent?.id ?? null, + newName, + ); }}>
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts index 2e1c8be850..5f36414b85 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js'; import { UmbPublishDocumentEntityAction } from './publish.action.js'; import { UmbDocumentCultureAndHostnamesEntityAction } from './culture-and-hostnames.action.js'; @@ -27,7 +27,7 @@ const entityActions: Array = [ meta: { icon: 'icon-blueprint', label: 'Create Document Blueprint (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -40,7 +40,7 @@ const entityActions: Array = [ meta: { icon: 'icon-enter', label: 'Move (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -53,7 +53,7 @@ const entityActions: Array = [ meta: { icon: 'icon-documents', label: 'Copy (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -66,7 +66,7 @@ const entityActions: Array = [ meta: { icon: 'icon-navigation-vertical', label: 'Sort (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -79,7 +79,7 @@ const entityActions: Array = [ meta: { icon: 'icon-home', label: 'Culture And Hostnames (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -91,7 +91,7 @@ const entityActions: Array = [ meta: { icon: 'icon-lock', label: 'Public Access (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -103,7 +103,7 @@ const entityActions: Array = [ meta: { icon: 'icon-globe', label: 'Publish (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -115,7 +115,7 @@ const entityActions: Array = [ meta: { icon: 'icon-globe', label: 'Unpublish (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, @@ -127,7 +127,7 @@ const entityActions: Array = [ meta: { icon: 'icon-undo', label: 'Rollback (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts index fcf91bd0ad..5d6d764428 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UmbDocumentPermissionsEntityAction } from './permissions.action.js'; import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; @@ -12,7 +12,7 @@ const entityActions: Array = [ meta: { icon: 'icon-vcard', label: 'Permissions (TBD)', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts index 7ac5b30300..c3518ca13f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts @@ -9,6 +9,6 @@ export class UmbDocumentCopyEntityBulkAction extends UmbEntityBulkActionBase { } }; -const mapper = (item: RecycleBinItemResponseModel): UmbDocumentRecycleBinTreeItemModel => { +const mapper = (item: DocumentRecycleBinItemResponseModel): UmbDocumentRecycleBinTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, - name: item.name, + parentId: item.parent ? item.parent.id : null, entityType: 'document-recycle-bin', hasChildren: item.hasChildren, - isContainer: item.isContainer, isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts index dce02dbcd3..030dc87f93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts @@ -1,5 +1,5 @@ import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbDocumentRecycleBinTreeItemModel extends UmbEntityTreeItemModel {} -// TODO: TREE STORE TYPE PROBLEM: + export interface UmbDocumentRecycleBinTreeRootModel extends UmbEntityTreeRootModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts index 2cfc4e4146..1941d61569 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/manifests.ts @@ -1,6 +1,6 @@ import { UmbDocumentDetailRepository } from './document-detail.repository.js'; import { UmbDocumentDetailStore } from './document-detail.store.js'; -import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; export const UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Document.Detail'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts index 737c372fe2..d3fb05c545 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts @@ -21,7 +21,6 @@ export class UmbMediaTypeTreeRepository name: 'Media Types', icon: 'icon-folder', hasChildren: true, - isContainer: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts index 0fb4b7b804..608a211218 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.server.data-source.ts @@ -46,11 +46,10 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: MediaTypeTreeItemResponseModel): UmbMediaTypeTreeItemModel => { return { unique: item.id, - parentUnique: item.parentId || null, + parentUnique: item.parent ? item.parent.id : null, name: item.name, entityType: item.isFolder ? UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE : UMB_MEDIA_TYPE_ENTITY_TYPE, hasChildren: item.hasChildren, - isContainer: item.isContainer, isFolder: item.isFolder, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts index faabb3e6fe..e526a82a04 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.store.ts @@ -38,7 +38,6 @@ export class UmbMediaTypeTreeStore extends UmbUniqueTreeStore { name: item.name, entityType: item.entityType, isFolder: false, - isContainer: false, hasChildren: false, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index ea9fb31c1a..1bde4f6771 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -44,11 +44,9 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: MediaTreeItemResponseModel): UmbMediaTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, - name: item.name, + parentId: item.parent ? item.parent.id : null, entityType: 'media', hasChildren: item.hasChildren, - isContainer: item.isContainer, noAccess: item.noAccess, isTrashed: item.isTrashed, isFolder: false, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts index 51a8377f29..e5dfa5f184 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts @@ -1,6 +1,6 @@ import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbMediaTreeItemModel extends UmbEntityTreeItemModel { +export interface UmbMediaTreeItemModel extends Omit { noAccess: boolean; isTrashed: boolean; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts index 2fd8663d41..31bc04f6e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.server.data-source.ts @@ -1,6 +1,6 @@ import type { UmbMemberGroupTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import type { EntityTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import type { NamedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { MemberGroupResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -11,7 +11,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; * @implements {UmbTreeDataSource} */ export class UmbMemberGroupTreeServerDataSource extends UmbTreeServerDataSourceBase< - EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, UmbMemberGroupTreeItemModel > { /** @@ -39,13 +39,12 @@ const getChildrenOf = (parentUnique: string | null) => { } }; -const mapper = (item: EntityTreeItemResponseModel): UmbMemberGroupTreeItemModel => { +const mapper = (item: NamedEntityTreeItemResponseModel): UmbMemberGroupTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, + parentId: item.parent ? item.parent.id : null, name: item.name, entityType: 'member-group', - isContainer: item.isContainer, hasChildren: item.hasChildren, isFolder: false, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts index 81bde60878..8fd06852c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.server.data-source.ts @@ -1,6 +1,6 @@ import type { UmbMemberTypeTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; -import type { EntityTreeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import type { NamedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { MemberTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -11,7 +11,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; * @implements {UmbTreeDataSource} */ export class UmbMemberTypeTreeServerDataSource extends UmbTreeServerDataSourceBase< - EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, UmbMemberTypeTreeItemModel > { /** @@ -39,14 +39,13 @@ const getChildrenOf = (parentUnique: string | null) => { } }; -const mapper = (item: EntityTreeItemResponseModel): UmbMemberTypeTreeItemModel => { +const mapper = (item: NamedEntityTreeItemResponseModel): UmbMemberTypeTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, + parentId: item.parent ? item.parent.id : null, name: item.name, entityType: 'member-type', hasChildren: item.hasChildren, - isContainer: item.isContainer, isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts index 65bf625a5f..27c2775808 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.server.data-source.ts @@ -1,5 +1,5 @@ import type { UmbMemberTreeItemModel } from './types.js'; -import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { NamedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; @@ -10,7 +10,7 @@ import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; * @extends {UmbTreeServerDataSourceBase} */ export class UmbMemberTreeServerDataSource extends UmbTreeServerDataSourceBase< - EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, UmbMemberTreeItemModel > { /** @@ -33,14 +33,13 @@ const getChildrenOf = (parentUnique: string | null): any => { alert('not implemented'); }; -const mapper = (item: EntityTreeItemResponseModel): UmbMemberTreeItemModel => { +const mapper = (item: NamedEntityTreeItemResponseModel): UmbMemberTreeItemModel => { return { id: item.id, - parentId: item.parentId || null, + parentId: item.parent ? item.parent.id : null, name: item.name, entityType: 'member', hasChildren: item.hasChildren, - isContainer: item.isContainer, isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts index f795143662..226eb46321 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.server.data-source.ts @@ -1,8 +1,5 @@ import type { UmbRelationTypeTreeItemModel } from './types.js'; -import type { - EntityTreeItemResponseModel, - NamedEntityTreeItemResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { NamedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { RelationTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; @@ -14,7 +11,7 @@ import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; * @implements {UmbTreeDataSource} */ export class UmbRelationTypeTreeServerDataSource extends UmbTreeServerDataSourceBase< - EntityTreeItemResponseModel, + NamedEntityTreeItemResponseModel, UmbRelationTypeTreeItemModel > { /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts index 129d387c8d..c0e89a370a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts @@ -6,7 +6,6 @@ import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; -// TODO: TREE STORE TYPE PROBLEM: export class UmbPartialViewTreeRepository extends UmbTreeRepositoryBase implements UmbApi @@ -22,7 +21,6 @@ export class UmbPartialViewTreeRepository name: 'Partial Views', icon: 'icon-folder', hasChildren: true, - isContainer: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts index 896db7232e..ddf98d132f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/tree/folder/stylesheet-folder.repository.ts @@ -2,7 +2,7 @@ import { UMB_STYLESHEET_FOLDER_ENTITY_TYPE } from '../../entity.js'; import type { UmbStylesheetTreeItemModel } from '../types.js'; import { UMB_STYLESHEET_TREE_STORE_CONTEXT } from '../stylesheet-tree.store.js'; import { UmbStylesheetFolderServerDataSource } from './stylesheet-folder.server.data-source.js'; -import type { UmbFolderModel} from '@umbraco-cms/backoffice/tree'; +import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; import { UmbFolderRepositoryBase } from '@umbraco-cms/backoffice/tree'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -24,7 +24,6 @@ const folderToStylesheetTreeItemFolder = (folder: UmbFolderModel): UmbStylesheet name: folder.name, entityType: UMB_STYLESHEET_FOLDER_ENTITY_TYPE, isFolder: true, - isContainer: false, hasChildren: false, }; }; From d40be8cdd81d72c2d77571f0562133eb3c7160de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 25 Jan 2024 13:29:02 +0100 Subject: [PATCH 625/786] refactor --- .../src/libs/element-api/element.mixin.ts | 8 +- .../registry/extension.registry.ts | 62 +++++- .../src/libs/localization-api/index.ts | 4 +- ...est.ts => localization.controller.test.ts} | 20 +- ...ntroller.ts => localization.controller.ts} | 64 +++--- .../localization-api/localization.manager.ts | 106 ++++++++++ .../src/libs/localization-api/manager.ts | 73 ------- .../localization/localize.element.test.ts | 4 +- .../registry/localization.registry.test.ts | 2 +- .../registry/localization.registry.ts | 183 +++++++++--------- .../section-sidebar.element.ts | 2 + .../tree-menu-item-default.element.ts | 5 +- .../user/current-user/current-user.context.ts | 3 +- 13 files changed, 305 insertions(+), 231 deletions(-) rename src/Umbraco.Web.UI.Client/src/libs/localization-api/{localize.controller.test.ts => localization.controller.test.ts} (91%) rename src/Umbraco.Web.UI.Client/src/libs/localization-api/{localize.controller.ts => localization.controller.ts} (72%) create mode 100644 src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/libs/localization-api/manager.ts diff --git a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts index 8f3c361bbf..604601de81 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts @@ -1,4 +1,4 @@ -import { UmbLocalizeController } from '@umbraco-cms/backoffice/localization-api'; +import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { HTMLElementConstructor } from '@umbraco-cms/backoffice/extension-api'; import { UmbControllerHostElementMixin, type UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; @@ -34,14 +34,14 @@ export declare class UmbElement extends UmbControllerHostElement { ): UmbContextConsumerController; /** * Use the UmbLocalizeController to localize your element. - * @see UmbLocalizeController + * @see UmbLocalizationController */ - localize: UmbLocalizeController; + localize: UmbLocalizationController; } export const UmbElementMixin = (superClass: T) => { class UmbElementMixinClass extends UmbControllerHostElementMixin(superClass) implements UmbElement { - localize: UmbLocalizeController = new UmbLocalizeController(this); + localize: UmbLocalizationController = new UmbLocalizationController(this); /** * @description Observe a RxJS source of choice. diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 2a86b6b220..26622af8fd 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -1,15 +1,8 @@ import type { ManifestBase, ManifestKind } from '../types/index.js'; import type { ManifestTypeMap, SpecificManifestTypeOrManifestBase } from '../types/map.types.js'; import { UmbBasicState } from '@umbraco-cms/backoffice/observable-api'; -import type { - Observable} from '@umbraco-cms/backoffice/external/rxjs'; -import { - map, - distinctUntilChanged, - combineLatest, - of, - switchMap, -} from '@umbraco-cms/backoffice/external/rxjs'; +import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; +import { map, distinctUntilChanged, combineLatest, of, switchMap } from '@umbraco-cms/backoffice/external/rxjs'; function extensionArrayMemoization>( previousValue: Array, @@ -213,6 +206,7 @@ export class UmbExtensionRegistry< ) as unknown as Observable>; } + // TODO: get rid of the name get getByAlias(alias: string) { return this.extensions.pipe( map((exts) => exts.find((ext) => ext.alias === alias)), @@ -245,6 +239,7 @@ export class UmbExtensionRegistry< ) as Observable; } + // TODO: get rid of the name get getByTypeAndAlias< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, @@ -275,6 +270,7 @@ export class UmbExtensionRegistry< ) as Observable; } + // TODO: get rid of the name get getByTypeAndAliases< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, @@ -306,6 +302,49 @@ export class UmbExtensionRegistry< ) as Observable>; } + /** + * Get an observable of an extension by type and a given filter method. + * This will return the all extensions that matches the type and which filter method returns true. + * The filter method will be called for each extension manifest of the given type, and the first argument to it is the extension manifest. + * @param type {string} - The type of the extension to get + * @param filter {(ext: T): void} - The filter method to use to filter the extensions + * @returns {Observable} - An observable of the extensions that matches the type and filter method + */ + byTypeAndFilter< + Key extends keyof ManifestTypeMap | string, + T extends ManifestBase = SpecificManifestTypeOrManifestBase, + >(type: Key, filter: (ext: T) => boolean) { + return combineLatest([ + this.extensions.pipe( + map((exts) => exts.find((ext) => ext.type === type && filter(ext as unknown as T))), + distinctUntilChanged(extensionSingleMemoization), + ), + this._kindsOfType(type), + ]).pipe( + map(([ext, kinds]) => { + // TODO: share one merge function between the different methods of this class: + // Specific Extension Meta merge (does not merge conditions) + if (ext) { + const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; + if (baseManifest) { + const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; + if ((baseManifest as any).meta) { + merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; + } + return merged; + } + } + return ext; + }), + distinctUntilChanged(extensionAndKindMatchSingleMemoization), + ) as Observable; + } + + /** + * Get an observable that provides extensions matching the given type. + * @param type {string} - The type of the extensions to get. + * @returns {Observable} - An observable of the extensions that matches the type. + */ extensionsOfType< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, @@ -331,6 +370,11 @@ export class UmbExtensionRegistry< ) as Observable>; } + /** + * Get an observable that provides extensions matching given types. + * @param type {Array} - The types of the extensions to get. + * @returns {Observable} - An observable of the extensions that matches the types. + */ extensionsOfTypes( types: string[], ): Observable> { diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/index.ts index 0f691deadf..5527ef1f2d 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/index.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/index.ts @@ -1,3 +1,3 @@ -export * from './localize.controller.js'; +export * from './localization.controller.js'; export * from './types/localization.js'; -export * from './manager.js'; +export * from './localization.manager.js'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts similarity index 91% rename from src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.test.ts rename to src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts index 4a64d36c92..3f21914a19 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts @@ -1,7 +1,7 @@ import { aTimeout, elementUpdated, expect, fixture, html } from '@open-wc/testing'; -import type { DefaultLocalizationSet, LocalizationSet} from './manager.js'; -import { registerLocalization, localizations } from './manager.js'; -import { UmbLocalizeController } from './localize.controller.js'; +import type { UmbLocalizationSet, UmbLocalizationSetBase } from './localization.manager.js'; +import { registerLocalization, localizations } from './localization.manager.js'; +import { UmbLocalizationController } from './localization.controller.js'; import { LitElement, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -11,7 +11,7 @@ class UmbLocalizeControllerHostElement extends UmbElementMixin(LitElement) { @property() lang = 'en-us'; } -interface TestLocalization extends LocalizationSet { +interface TestLocalization extends UmbLocalizationSetBase { close: string; logout: string; withInlineToken: any; @@ -36,20 +36,20 @@ const english: TestLocalization = { }, }; -const englishOverride: DefaultLocalizationSet = { +const englishOverride: UmbLocalizationSet = { $code: 'en-us', $dir: 'ltr', close: 'Close 2', }; -const danish: DefaultLocalizationSet = { +const danish: UmbLocalizationSet = { $code: 'da', $dir: 'ltr', close: 'Luk', notOnRegional: 'Not on regional', }; -const danishRegional: DefaultLocalizationSet = { +const danishRegional: UmbLocalizationSet = { $code: 'da-dk', $dir: 'ltr', close: 'Luk', @@ -57,7 +57,7 @@ const danishRegional: DefaultLocalizationSet = { //#endregion describe('UmbLocalizeController', () => { - let controller: UmbLocalizeController; + let controller: UmbLocalizationController; beforeEach(async () => { registerLocalization(english, danish, danishRegional); @@ -72,7 +72,7 @@ describe('UmbLocalizeController', () => { getControllers: () => [], removeControllerByAlias: () => {}, } satisfies UmbControllerHost; - controller = new UmbLocalizeController(host); + controller = new UmbLocalizationController(host); }); afterEach(() => { @@ -226,7 +226,7 @@ describe('UmbLocalizeController', () => { }); it('should have a localize controller', () => { - expect(element.localize).to.be.instanceOf(UmbLocalizeController); + expect(element.localize).to.be.instanceOf(UmbLocalizationController); }); it('should update the term when the language changes', async () => { diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts similarity index 72% rename from src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.ts rename to src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts index 09d8054575..1d428ebbe6 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localize.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts @@ -11,20 +11,12 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import type { - DefaultLocalizationSet, - FunctionParams, - LocalizationSet} from './manager.js'; -import { - connectedElements, - documentDirection, - documentLanguage, - fallback, - localizations, -} from './manager.js'; +import type { UmbLocalizationSet, FunctionParams, UmbLocalizationSetBase } from './localization.manager.js'; +import { umbLocalizationManager } from './localization.manager.js'; +import type { LitElement } from '@umbraco-cms/backoffice/external/lit'; import type { UmbController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -const LocalizeControllerAlias = Symbol(); +const LocalizationControllerAlias = Symbol(); /** * The UmbLocalizeController enables localization for your element. * @@ -43,12 +35,11 @@ const LocalizeControllerAlias = Symbol(); * } * ``` */ -export class UmbLocalizeController - implements UmbController -{ +export class UmbLocalizationController implements UmbController { #host; - #hostEl; - controllerAlias = LocalizeControllerAlias; + #hostEl?: HTMLElement & Partial>; + readonly controllerAlias = LocalizationControllerAlias; + #usedKeys = new Array(); constructor(host: UmbControllerHost) { this.#host = host; @@ -57,15 +48,11 @@ export class UmbLocalizeController) { + const hasOneOfTheseKeys = this.#usedKeys.find((key) => changedKeys.has(key)); + + if (hasOneOfTheseKeys) { + this.#hostEl?.requestUpdate?.(); + } + } + /** * Gets the host element's directionality as determined by the `dir` attribute. The return value is transformed to * lowercase. */ dir() { - return `${this.#hostEl.dir || documentDirection}`.toLowerCase(); + return `${this.#hostEl?.dir || umbLocalizationManager.documentDirection}`.toLowerCase(); } /** @@ -86,21 +85,23 @@ export class UmbLocalizeControllerlocalizations.get(`${language}-${region}`); - const secondary = localizations.get(language); + const primary = umbLocalizationManager.localizations.get(`${language}-${region}`); + const secondary = umbLocalizationManager.localizations.get(language); return { locale, language, region, primary, secondary }; } /** Outputs a translated term. */ - term(key: K, ...args: FunctionParams): string { + term(key: K, ...args: FunctionParams): string { + this.#usedKeys.push(key); + const { primary, secondary } = this.getLocalizationData(this.lang()); let term: any; @@ -109,8 +110,11 @@ export class UmbLocalizeController = T extends (...args: infer U) => string ? U : []; + +export interface UmbLocalizationSetBase { + $code: string; // e.g. en, en-GB + $dir: 'ltr' | 'rtl'; +} +export interface UmbLocalizationSet extends UmbLocalizationSetBase { + [key: string]: UmbLocalizationEntry; +} + +export class UmbLocalizationManager { + connectedControllers = new Set(); + #documentElementObserver: MutationObserver; + + #changedKeys: Set = new Set(); + #requestUpdateChangedKeysId?: number = undefined; + + localizations: Map = new Map(); + documentDirection = document.documentElement.dir || 'ltr'; + documentLanguage = document.documentElement.lang || navigator.language; + fallback?: UmbLocalizationSetBase; + + constructor() { + this.#documentElementObserver = new MutationObserver(this.updateAll); + this.#documentElementObserver.observe(document.documentElement, { + attributes: true, + attributeFilter: ['dir', 'lang'], + }); + } + + appendConsumer(consumer: UmbLocalizationController) { + if (this.connectedControllers.has(consumer)) return; + this.connectedControllers.add(consumer); + } + removeConsumer(consumer: UmbLocalizationController) { + this.connectedControllers.delete(consumer); + } + + /** Registers one or more translations */ + registerLocalization(t: UmbLocalizationSetBase) { + const code = t.$code.toLowerCase(); + + if (this.localizations.has(code)) { + // Merge translations that share the same language code + this.localizations.set(code, { ...this.localizations.get(code), ...t }); + } else { + this.localizations.set(code, t); + } + + // The first translation we registerer will become the fallback + if (!this.fallback) { + this.fallback = t; + } + + this.requestChangedKeysUpdate(); + } + #registerLocalizationBind = this.registerLocalization.bind(this); + + registerManyLocalizations(translations: Array) { + translations.map(this.#registerLocalizationBind); + } + + /** Updates all localized elements that are currently connected */ + updateAll = () => { + this.documentDirection = document.documentElement.dir || 'ltr'; + this.documentLanguage = document.documentElement.lang || navigator.language; + + // Check if there was any changed. + this.connectedControllers.forEach((ctrl) => { + ctrl.documentUpdate(); + }); + + this.#changedKeys.clear(); + }; + + updateChangedKeys = () => { + this.connectedControllers.forEach((ctrl) => { + ctrl.keysChanged(this.#changedKeys); + }); + + this.#changedKeys.clear(); + }; + + requestChangedKeysUpdate() { + if (this.#requestUpdateChangedKeysId) return; + this.#requestUpdateChangedKeysId = requestAnimationFrame(this.updateChangedKeys); + } +} + +export const umbLocalizationManager = new UmbLocalizationManager(); diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/manager.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/manager.ts deleted file mode 100644 index 6148e0f52c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/manager.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* -This module is a modified copy of the original Shoelace localize package: https://github.com/shoelace-style/localize - -The original license is included below. - -Copyright (c) 2020 A Beautiful Site, LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -import type { UmbLocalizationEntry } from './types/localization.js'; -import type { LitElement } from '@umbraco-cms/backoffice/external/lit'; - -export type FunctionParams = T extends (...args: infer U) => string ? U : []; - -export interface LocalizationSet { - $code: string; // e.g. en, en-GB - $dir: 'ltr' | 'rtl'; -} - -export interface DefaultLocalizationSet extends LocalizationSet { - [key: string]: UmbLocalizationEntry; -} - -export const connectedElements = new Set(); -const documentElementObserver = new MutationObserver(update); -export const localizations: Map = new Map(); -export let documentDirection = document.documentElement.dir || 'ltr'; -export let documentLanguage = document.documentElement.lang || navigator.language; -export let fallback: LocalizationSet; - -// Watch for changes on -documentElementObserver.observe(document.documentElement, { - attributes: true, - attributeFilter: ['dir', 'lang'], -}); - -/** Registers one or more translations */ -export function registerLocalization(...translation: LocalizationSet[]) { - translation.map((t) => { - const code = t.$code.toLowerCase(); - - if (localizations.has(code)) { - // Merge translations that share the same language code - localizations.set(code, { ...localizations.get(code), ...t }); - } else { - localizations.set(code, t); - } - - // The first translation that's registered is the fallback - if (!fallback) { - fallback = t; - } - }); - - update(); -} - -/** Updates all localized elements that are currently connected */ -export function update() { - documentDirection = document.documentElement.dir || 'ltr'; - documentLanguage = document.documentElement.lang || navigator.language; - - [...connectedElements.keys()].map((el) => { - if (typeof (el as LitElement).requestUpdate === 'function') { - // TODO: We might want to implement a specific Umbraco method for informing about this. and then make the default UmbLitElement call requestUpdate..? Cause then others can implement their own solution? - (el as LitElement).requestUpdate(); - } - }); -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.test.ts index 3db7df5f70..2280d2be64 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/localize.element.test.ts @@ -2,7 +2,7 @@ import { aTimeout, elementUpdated, expect, fixture, html } from '@open-wc/testin import { UmbLocalizeElement } from './localize.element.js'; import { umbLocalizationRegistry } from '@umbraco-cms/backoffice/localization'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbLocalizeController } from '@umbraco-cms/backoffice/localization-api'; +import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api'; const english = { type: 'localization', @@ -62,7 +62,7 @@ describe('umb-localize', () => { }); it('should have a localize controller', () => { - expect(element.localize).to.be.instanceOf(UmbLocalizeController); + expect(element.localize).to.be.instanceOf(UmbLocalizationController); }); it('should localize a key', async () => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts index 10ffa5d6e1..82ba527409 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.test.ts @@ -1,6 +1,6 @@ import { aTimeout, expect } from '@open-wc/testing'; import { UmbLocalizationRegistry } from './localization.registry.js'; -import type { ManifestLocalization} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestLocalization } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; //#region Localizations diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts index c123b55f54..3af9c6bc7d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts @@ -1,129 +1,122 @@ import type { + UmbLocalizationSetBase, UmbLocalizationDictionary, UmbLocalizationFlatDictionary, - LocalizationSet} from '@umbraco-cms/backoffice/localization-api'; -import { - registerLocalization, - localizations, } from '@umbraco-cms/backoffice/localization-api'; -import { hasDefaultExport, loadManifestPlainJs } from '@umbraco-cms/backoffice/extension-api'; -import type { UmbBackofficeExtensionRegistry} from '@umbraco-cms/backoffice/extension-registry'; +import { umbLocalizationManager } from '@umbraco-cms/backoffice/localization-api'; +import type { ManifestLocalization, UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { - BehaviorSubject, - Subject, - combineLatest, - map, - distinctUntilChanged, - filter, - startWith, -} from '@umbraco-cms/backoffice/external/rxjs'; +import { UmbStringState } from '@umbraco-cms/backoffice/observable-api'; +import { combineLatest } from '@umbraco-cms/backoffice/external/rxjs'; +import { hasDefaultExport, loadManifestPlainJs } from '@umbraco-cms/backoffice/extension-api'; + +function addOrUpdateDictionary( + innerDictionary: UmbLocalizationFlatDictionary, + dictionaryName: string, + dictionary: UmbLocalizationDictionary['value'], +) { + for (const [key, value] of Object.entries(dictionary)) { + innerDictionary[`${dictionaryName}_${key}`] = value; + } +} export class UmbLocalizationRegistry { + // + #isDefaultLoadedPromise?: Promise; + #isDefaultLoadedResolve?: (value: boolean) => void; + + #currentLanguage = new UmbStringState(document.documentElement.lang ?? 'en-us'); + readonly currentLanguage = this.#currentLanguage.asObservable(); + + #loadedExtAliases: Array = []; + /** * Get the current registered translations. */ get localizations() { - return localizations; + return umbLocalizationManager.localizations; } get isDefaultLoaded() { - return this.#isDefaultLoaded.asObservable(); + this.#isDefaultLoadedPromise ??= new Promise((resolve) => { + this.#isDefaultLoadedResolve = resolve; + }); + return this.#isDefaultLoadedPromise; } - #currentLanguage = new Subject(); - #isDefaultLoaded = new BehaviorSubject(false); - constructor(extensionRegistry: UmbBackofficeExtensionRegistry) { - const currentLanguage$ = this.#currentLanguage.pipe( - startWith(document.documentElement.lang || 'en-us'), - map((x) => x.toLowerCase()), - distinctUntilChanged(), - ); + combineLatest([this.currentLanguage, extensionRegistry.extensionsOfType('localization')]).subscribe( + async ([currentLanguage, extensions]) => { + const locale = new Intl.Locale(currentLanguage); + const filteredExt = extensions.filter( + (ext) => + ext.meta.culture.toLowerCase() === locale.baseName.toLowerCase() || + ext.meta.culture.toLowerCase() === locale.language.toLowerCase(), + ); - const currentExtensions$ = extensionRegistry.extensionsOfType('localization').pipe( - filter((x) => x.length > 0), - distinctUntilChanged((prev, curr) => prev.length === curr.length && prev.every((x) => curr.includes(x))), - ); + // Check if there is any difference to the cached aliases + const diff = filteredExt.filter((ext) => !this.#loadedExtAliases.includes(ext.alias)); + if (diff.length !== 0) { + // got new localizations to load: + const translations = await Promise.all(diff.map(this.#loadExtension)); - combineLatest([currentLanguage$, currentExtensions$]).subscribe(async ([userCulture, extensions]) => { - const locale = new Intl.Locale(userCulture); - const translations = await Promise.all( - extensions - .filter( - (x) => - x.meta.culture.toLowerCase() === locale.baseName.toLowerCase() || - x.meta.culture.toLowerCase() === locale.language.toLowerCase(), - ) - .map(async (extension) => { - const innerDictionary: UmbLocalizationFlatDictionary = {}; + if (translations.length) { + umbLocalizationManager.registerManyLocalizations(translations); - // If extension contains a dictionary, add it to the inner dictionary. - if (extension.meta.localizations) { - for (const [dictionaryName, dictionary] of Object.entries(extension.meta.localizations)) { - this.#addOrUpdateDictionary(innerDictionary, dictionaryName, dictionary); - } + // Set the document language + const newLang = locale.baseName.toLowerCase(); + if (document.documentElement.lang.toLowerCase() !== newLang) { + document.documentElement.lang = newLang; } - // If extension contains a js file, load it and add the default dictionary to the inner dictionary. - if (extension.js) { - const loadedExtension = await loadManifestPlainJs(extension.js); - - if (loadedExtension && hasDefaultExport(loadedExtension)) { - for (const [dictionaryName, dictionary] of Object.entries(loadedExtension.default)) { - this.#addOrUpdateDictionary(innerDictionary, dictionaryName, dictionary); - } - } + // Set the document direction to the direction of the primary language + const newDir = translations[0].$dir ?? 'ltr'; + if (document.documentElement.dir !== newDir) { + document.documentElement.dir = newDir; } - - // Notify subscribers that the inner dictionary has changed. - return { - $code: extension.meta.culture.toLowerCase(), - $dir: extension.meta.direction ?? 'ltr', - ...innerDictionary, - } satisfies LocalizationSet; - }), - ); - - if (translations.length) { - registerLocalization(...translations); - - // Set the document language - const newLang = locale.baseName.toLowerCase(); - if (document.documentElement.lang.toLowerCase() !== newLang) { - document.documentElement.lang = newLang; + } } - - // Set the document direction to the direction of the primary language - const newDir = translations[0].$dir ?? 'ltr'; - if (document.documentElement.dir !== newDir) { - document.documentElement.dir = newDir; - } - } - - if (!this.#isDefaultLoaded.value) { - this.#isDefaultLoaded.next(true); - this.#isDefaultLoaded.complete(); - } - }); + }, + ); } + #loadExtension = async (extension: ManifestLocalization) => { + this.#loadedExtAliases.push(extension.alias); + + const innerDictionary: UmbLocalizationFlatDictionary = {}; + + // If extension contains a dictionary, add it to the inner dictionary. + if (extension.meta.localizations) { + for (const [dictionaryName, dictionary] of Object.entries(extension.meta.localizations)) { + addOrUpdateDictionary(innerDictionary, dictionaryName, dictionary); + } + } + + // If extension contains a js file, load it and add the default dictionary to the inner dictionary. + if (extension.js) { + const loadedExtension = await loadManifestPlainJs(extension.js); + + if (loadedExtension && hasDefaultExport(loadedExtension)) { + for (const [dictionaryName, dictionary] of Object.entries(loadedExtension.default)) { + addOrUpdateDictionary(innerDictionary, dictionaryName, dictionary); + } + } + } + + // Notify subscribers that the inner dictionary has changed. + return { + $code: extension.meta.culture.toLowerCase(), + $dir: extension.meta.direction ?? 'ltr', + ...innerDictionary, + } satisfies UmbLocalizationSetBase; + }; + /** * Load a language from the extension registry. * @param locale The locale to load. */ loadLanguage(locale: string) { - this.#currentLanguage.next(locale); - } - - #addOrUpdateDictionary( - innerDictionary: UmbLocalizationFlatDictionary, - dictionaryName: string, - dictionary: UmbLocalizationDictionary['value'], - ) { - for (const [key, value] of Object.entries(dictionary)) { - innerDictionary[`${dictionaryName}_${key}`] = value; - } + this.#currentLanguage.setValue(locale.toLowerCase()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts index 28fa72bb14..19eeef0b32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts @@ -13,6 +13,8 @@ export class UmbSectionSidebarElement extends UmbLitElement { } render() { + // TODO: just for testing purpose, should be removed in PR. + console.log('Render', this); return html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts index 7d59390733..f06de51854 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-menu-item-default/tree-menu-item-default.element.ts @@ -3,10 +3,9 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { ManifestMenuItemTreeKind, UmbBackofficeManifestKind, - UmbMenuItemElement} from '@umbraco-cms/backoffice/extension-registry'; -import { - umbExtensionsRegistry, + UmbMenuItemElement, } from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; // TODO: Move to separate file: const manifest: UmbBackofficeManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts index a41700c52d..ddac865d44 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts @@ -25,8 +25,7 @@ export class UmbCurrentUserContext extends UmbBaseController { this.#observeIsAuthorized(); }); - // TODO: revisit this. It can probably be simplified - this.observe(umbLocalizationRegistry.isDefaultLoaded, (isDefaultLoaded) => { + umbLocalizationRegistry.isDefaultLoaded.then((isDefaultLoaded) => { if (!isDefaultLoaded) return; this.observe( From 83b466cacc7fa0f7e753fd2688915408b2674cc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 25 Jan 2024 14:57:04 +0100 Subject: [PATCH 626/786] only update if document lang or dir was changed --- .../localization-api/localization.manager.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts index 31bd88ce99..b5b58c0fc9 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts @@ -78,18 +78,30 @@ export class UmbLocalizationManager { /** Updates all localized elements that are currently connected */ updateAll = () => { - this.documentDirection = document.documentElement.dir || 'ltr'; - this.documentLanguage = document.documentElement.lang || navigator.language; + const newDir = document.documentElement.dir || 'ltr'; + const newLang = document.documentElement.lang || navigator.language; + + if (this.documentDirection === newDir && this.documentLanguage === newLang) return; + + // The document direction or language did changed, so lets move on: + this.documentDirection = newDir; + this.documentLanguage = newLang; // Check if there was any changed. this.connectedControllers.forEach((ctrl) => { ctrl.documentUpdate(); }); + if (this.#requestUpdateChangedKeysId) { + cancelAnimationFrame(this.#requestUpdateChangedKeysId); + this.#requestUpdateChangedKeysId = undefined; + } this.#changedKeys.clear(); }; updateChangedKeys = () => { + this.#requestUpdateChangedKeysId = undefined; + this.connectedControllers.forEach((ctrl) => { ctrl.keysChanged(this.#changedKeys); }); From 444cae8b31a712c0b9cfe27a1c3e9f6f108aa5f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 25 Jan 2024 15:15:24 +0100 Subject: [PATCH 627/786] a bit of more restructuring --- .../localization.controller.test.ts | 10 ++--- .../localization.controller.ts | 28 ++++++++------ .../localization-api/localization.manager.ts | 37 +++++++++++-------- .../registry/localization.registry.ts | 13 +------ .../section-sidebar.element.ts | 2 - .../user/current-user/current-user.context.ts | 12 +----- 6 files changed, 46 insertions(+), 56 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts index 3f21914a19..695c9b756c 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts @@ -1,6 +1,6 @@ import { aTimeout, elementUpdated, expect, fixture, html } from '@open-wc/testing'; import type { UmbLocalizationSet, UmbLocalizationSetBase } from './localization.manager.js'; -import { registerLocalization, localizations } from './localization.manager.js'; +import { umbLocalizationManager } from './localization.manager.js'; import { UmbLocalizationController } from './localization.controller.js'; import { LitElement, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; @@ -57,10 +57,10 @@ const danishRegional: UmbLocalizationSet = { //#endregion describe('UmbLocalizeController', () => { - let controller: UmbLocalizationController; + let controller: UmbLocalizationController; beforeEach(async () => { - registerLocalization(english, danish, danishRegional); + umbLocalizationManager.registerManyLocalizations([english, danish, danishRegional]); document.documentElement.lang = english.$code; document.documentElement.dir = english.$dir; await aTimeout(0); @@ -77,7 +77,7 @@ describe('UmbLocalizeController', () => { afterEach(() => { controller.destroy(); - localizations.clear(); + umbLocalizationManager.localizations.clear(); }); it('should have a default language', () => { @@ -132,7 +132,7 @@ describe('UmbLocalizeController', () => { it('should override a term if new translation is registered', () => { // Let the registry load the new extension - registerLocalization(englishOverride); + umbLocalizationManager.registerLocalization(englishOverride); expect(controller.term('close')).to.equal('Close 2'); }); diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts index 1d428ebbe6..dd20e23ebd 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts @@ -11,7 +11,12 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import type { UmbLocalizationSet, FunctionParams, UmbLocalizationSetBase } from './localization.manager.js'; +import type { + UmbLocalizationSet, + FunctionParams, + UmbLocalizationSetBase, + UmbLocalizationSetKey, +} from './localization.manager.js'; import { umbLocalizationManager } from './localization.manager.js'; import type { LitElement } from '@umbraco-cms/backoffice/external/lit'; import type { UmbController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -35,11 +40,13 @@ const LocalizationControllerAlias = Symbol(); * } * ``` */ -export class UmbLocalizationController implements UmbController { +export class UmbLocalizationController + implements UmbController +{ #host; #hostEl?: HTMLElement & Partial>; readonly controllerAlias = LocalizationControllerAlias; - #usedKeys = new Array(); + #usedKeys = new Array(); constructor(host: UmbControllerHost) { this.#host = host; @@ -64,7 +71,7 @@ export class UmbLocalizationController implements UmbController { this.#hostEl?.requestUpdate?.(); } - keysChanged(changedKeys: Set) { + keysChanged(changedKeys: Set) { const hasOneOfTheseKeys = this.#usedKeys.find((key) => changedKeys.has(key)); if (hasOneOfTheseKeys) { @@ -92,14 +99,14 @@ export class UmbLocalizationController implements UmbController { const locale = new Intl.Locale(lang); const language = locale?.language.toLowerCase(); const region = locale?.region?.toLowerCase() ?? ''; - const primary = umbLocalizationManager.localizations.get(`${language}-${region}`); - const secondary = umbLocalizationManager.localizations.get(language); + const primary = umbLocalizationManager.localizations.get(`${language}-${region}`) as LocalizationSetType; + const secondary = umbLocalizationManager.localizations.get(language) as LocalizationSetType; return { locale, language, region, primary, secondary }; } /** Outputs a translated term. */ - term(key: K, ...args: FunctionParams): string { + term(key: K, ...args: FunctionParams): string { this.#usedKeys.push(key); const { primary, secondary } = this.getLocalizationData(this.lang()); @@ -110,11 +117,8 @@ export class UmbLocalizationController implements UmbController { term = primary[key]; } else if (secondary && secondary[key]) { term = secondary[key]; - } else if ( - umbLocalizationManager.fallback && - umbLocalizationManager.fallback[key as keyof UmbLocalizationSetBase] - ) { - term = umbLocalizationManager.fallback[key as keyof UmbLocalizationSetBase]; + } else if (umbLocalizationManager.fallback && umbLocalizationManager.fallback[key]) { + term = umbLocalizationManager.fallback[key]; } else { return String(key); } diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts index b5b58c0fc9..e481072374 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts @@ -20,21 +20,29 @@ export interface UmbLocalizationSetBase { $code: string; // e.g. en, en-GB $dir: 'ltr' | 'rtl'; } + +export type UmbLocalizationSetKey = string | number | symbol; + export interface UmbLocalizationSet extends UmbLocalizationSetBase { - [key: string]: UmbLocalizationEntry; + [key: UmbLocalizationSetKey]: UmbLocalizationEntry; } +export const UMB_DEFAULT_LOCALIZATION_CULTURE = 'en-us'; + export class UmbLocalizationManager { - connectedControllers = new Set(); + connectedControllers = new Set>(); #documentElementObserver: MutationObserver; - #changedKeys: Set = new Set(); + #changedKeys: Set = new Set(); #requestUpdateChangedKeysId?: number = undefined; localizations: Map = new Map(); documentDirection = document.documentElement.dir || 'ltr'; documentLanguage = document.documentElement.lang || navigator.language; - fallback?: UmbLocalizationSetBase; + + get fallback(): UmbLocalizationSet | undefined { + return this.localizations.get(UMB_DEFAULT_LOCALIZATION_CULTURE) as UmbLocalizationSet; + } constructor() { this.#documentElementObserver = new MutationObserver(this.updateAll); @@ -44,11 +52,11 @@ export class UmbLocalizationManager { }); } - appendConsumer(consumer: UmbLocalizationController) { + appendConsumer(consumer: UmbLocalizationController) { if (this.connectedControllers.has(consumer)) return; this.connectedControllers.add(consumer); } - removeConsumer(consumer: UmbLocalizationController) { + removeConsumer(consumer: UmbLocalizationController) { this.connectedControllers.delete(consumer); } @@ -63,12 +71,7 @@ export class UmbLocalizationManager { this.localizations.set(code, t); } - // The first translation we registerer will become the fallback - if (!this.fallback) { - this.fallback = t; - } - - this.requestChangedKeysUpdate(); + this.#requestChangedKeysUpdate(); } #registerLocalizationBind = this.registerLocalization.bind(this); @@ -99,7 +102,7 @@ export class UmbLocalizationManager { this.#changedKeys.clear(); }; - updateChangedKeys = () => { + #updateChangedKeys = () => { this.#requestUpdateChangedKeysId = undefined; this.connectedControllers.forEach((ctrl) => { @@ -109,9 +112,13 @@ export class UmbLocalizationManager { this.#changedKeys.clear(); }; - requestChangedKeysUpdate() { + /** + * Request an update of all consumers of the keys defined in #changedKeys. + * This waits one frame, which ensures that multiple changes are collected into one. + */ + #requestChangedKeysUpdate() { if (this.#requestUpdateChangedKeysId) return; - this.#requestUpdateChangedKeysId = requestAnimationFrame(this.updateChangedKeys); + this.#requestUpdateChangedKeysId = requestAnimationFrame(this.#updateChangedKeys); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts index 3af9c6bc7d..708e437f84 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts @@ -21,10 +21,6 @@ function addOrUpdateDictionary( } export class UmbLocalizationRegistry { - // - #isDefaultLoadedPromise?: Promise; - #isDefaultLoadedResolve?: (value: boolean) => void; - #currentLanguage = new UmbStringState(document.documentElement.lang ?? 'en-us'); readonly currentLanguage = this.#currentLanguage.asObservable(); @@ -37,13 +33,6 @@ export class UmbLocalizationRegistry { return umbLocalizationManager.localizations; } - get isDefaultLoaded() { - this.#isDefaultLoadedPromise ??= new Promise((resolve) => { - this.#isDefaultLoadedResolve = resolve; - }); - return this.#isDefaultLoadedPromise; - } - constructor(extensionRegistry: UmbBackofficeExtensionRegistry) { combineLatest([this.currentLanguage, extensionRegistry.extensionsOfType('localization')]).subscribe( async ([currentLanguage, extensions]) => { @@ -54,7 +43,7 @@ export class UmbLocalizationRegistry { ext.meta.culture.toLowerCase() === locale.language.toLowerCase(), ); - // Check if there is any difference to the cached aliases + // Only get the extensions that are not already loading/loaded: const diff = filteredExt.filter((ext) => !this.#loadedExtAliases.includes(ext.alias)); if (diff.length !== 0) { // got new localizations to load: diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts index 19eeef0b32..28fa72bb14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-sidebar/section-sidebar.element.ts @@ -13,8 +13,6 @@ export class UmbSectionSidebarElement extends UmbLitElement { } render() { - // TODO: just for testing purpose, should be removed in PR. - console.log('Render', this); return html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts index ddac865d44..f891318a6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/current-user.context.ts @@ -25,16 +25,8 @@ export class UmbCurrentUserContext extends UmbBaseController { this.#observeIsAuthorized(); }); - umbLocalizationRegistry.isDefaultLoaded.then((isDefaultLoaded) => { - if (!isDefaultLoaded) return; - - this.observe( - this.languageIsoCode, - (currentLanguageIsoCode) => { - umbLocalizationRegistry.loadLanguage(currentLanguageIsoCode); - }, - 'umbCurrentUserLanguageIsoCode', - ); + this.observe(this.languageIsoCode, (currentLanguageIsoCode) => { + umbLocalizationRegistry.loadLanguage(currentLanguageIsoCode); }); this.provideContext(UMB_CURRENT_USER_CONTEXT, this); From 37a4fee6a1a045952f239c239c9b7d1fb2d640dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 25 Jan 2024 15:50:40 +0100 Subject: [PATCH 628/786] tests --- .../localization.controller.test.ts | 53 ++++++++++++++++++- .../localization.controller.ts | 4 +- .../localization-api/localization.manager.ts | 5 ++ 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts index 695c9b756c..ac1ad635d2 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts @@ -11,6 +11,22 @@ class UmbLocalizeControllerHostElement extends UmbElementMixin(LitElement) { @property() lang = 'en-us'; } +@customElement('umb-localization-render-count') +class UmbLocalizationRenderCountElement extends UmbElementMixin(LitElement) { + amountOfUpdates = 0; + amountOfRenders = 0; + + requestUpdate() { + super.requestUpdate(); + this.amountOfUpdates++; + } + + render() { + this.amountOfRenders++; + return html`${this.localize.term('logout')}`; + } +} + interface TestLocalization extends UmbLocalizationSetBase { close: string; logout: string; @@ -42,6 +58,12 @@ const englishOverride: UmbLocalizationSet = { close: 'Close 2', }; +const englishOverrideLogout: UmbLocalizationSet = { + $code: 'en-us', + $dir: 'ltr', + logout: 'Log out 2', +}; + const danish: UmbLocalizationSet = { $code: 'da', $dir: 'ltr', @@ -130,7 +152,7 @@ describe('UmbLocalizeController', () => { expect(controller.term('logout')).to.equal('Log out'); // Fallback }); - it('should override a term if new translation is registered', () => { + it('should override a term if new localization is registered', () => { // Let the registry load the new extension umbLocalizationManager.registerLocalization(englishOverride); @@ -152,6 +174,35 @@ describe('UmbLocalizeController', () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any expect((controller.term as any)('logout', 'Hello', 'World')).to.equal('Log out'); }); + + it('only reacts to changes of its own localization-keys', async () => { + const element: UmbLocalizationRenderCountElement = await fixture( + html``, + ); + expect(element.amountOfUpdates).to.equal(0); + expect(element.amountOfRenders).to.equal(1); + + expect(element.shadowRoot!.textContent).to.equal('Log out'); + expect(element.amountOfUpdates).to.equal(0); + + // Let the registry load the new extension + umbLocalizationManager.registerLocalization(englishOverride); + + await aTimeout(12); + + // This should still be the same (cause it should not be affected as the change did not change our localization key) + expect(element.amountOfUpdates).to.equal(0); + expect(element.shadowRoot!.textContent).to.equal('Log out'); + + // Let the registry load the new extension + umbLocalizationManager.registerLocalization(englishOverrideLogout); + + await aTimeout(12); + + // Now we should have gotten one update and the text should be different + expect(element.amountOfUpdates).to.equal(1); + expect(element.shadowRoot!.textContent).to.equal('Log out 2'); + }); }); describe('date', () => { diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts index dd20e23ebd..767370df80 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts @@ -107,7 +107,9 @@ export class UmbLocalizationController(key: K, ...args: FunctionParams): string { - this.#usedKeys.push(key); + if (!this.#usedKeys.includes(key)) { + this.#usedKeys.push(key); + } const { primary, secondary } = this.getLocalizationData(this.lang()); let term: any; diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts index e481072374..226eb5f277 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.manager.ts @@ -71,6 +71,11 @@ export class UmbLocalizationManager { this.localizations.set(code, t); } + // Declare what keys have been changed: + const keys = Object.keys(t); + for (const key of keys) { + this.#changedKeys.add(key); + } this.#requestChangedKeysUpdate(); } #registerLocalizationBind = this.registerLocalization.bind(this); From 7a5d376491b4529487c6b66d623138eba8194826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 08:50:24 +0100 Subject: [PATCH 629/786] unit test --- .../localization.controller.test.ts | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts index ac1ad635d2..44f4e7235b 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts @@ -16,6 +16,9 @@ class UmbLocalizationRenderCountElement extends UmbElementMixin(LitElement) { amountOfUpdates = 0; amountOfRenders = 0; + @property({ type: Number }) + test: number = 0; + requestUpdate() { super.requestUpdate(); this.amountOfUpdates++; @@ -23,7 +26,7 @@ class UmbLocalizationRenderCountElement extends UmbElementMixin(LitElement) { render() { this.amountOfRenders++; - return html`${this.localize.term('logout')}`; + return html`${this.localize.term('logout') + '#' + this.test}`; } } @@ -177,31 +180,44 @@ describe('UmbLocalizeController', () => { it('only reacts to changes of its own localization-keys', async () => { const element: UmbLocalizationRenderCountElement = await fixture( - html``, + html``, ); + + // Something triggers multiple updates initially, and it varies how many it is. So we wait for a timeout to ensure that we have a clean slate and then reset the counter: + await aTimeout(20); + element.amountOfUpdates = 0; + expect(element.amountOfUpdates).to.equal(0); expect(element.amountOfRenders).to.equal(1); - - expect(element.shadowRoot!.textContent).to.equal('Log out'); - expect(element.amountOfUpdates).to.equal(0); + expect(element.shadowRoot!.textContent).to.equal('Log out#10'); // Let the registry load the new extension umbLocalizationManager.registerLocalization(englishOverride); - await aTimeout(12); + // Wait three frames is safe: + await new Promise((resolve) => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); // This should still be the same (cause it should not be affected as the change did not change our localization key) expect(element.amountOfUpdates).to.equal(0); - expect(element.shadowRoot!.textContent).to.equal('Log out'); + expect(element.amountOfRenders).to.equal(1); + expect(element.shadowRoot!.textContent).to.equal('Log out#10'); // Let the registry load the new extension umbLocalizationManager.registerLocalization(englishOverrideLogout); - await aTimeout(12); + // Wait three frames is safe: + await new Promise((resolve) => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); // Now we should have gotten one update and the text should be different expect(element.amountOfUpdates).to.equal(1); - expect(element.shadowRoot!.textContent).to.equal('Log out 2'); + expect(element.amountOfRenders).to.equal(2); + expect(element.shadowRoot!.textContent).to.equal('Log out 2#10'); + + console.log('done'); }); }); From eb49484e320473456ec2081af8ed1900a777e3ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 08:51:57 +0100 Subject: [PATCH 630/786] clean up test --- .../localization.controller.test.ts | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts index 44f4e7235b..9df2003229 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.test.ts @@ -14,10 +14,6 @@ class UmbLocalizeControllerHostElement extends UmbElementMixin(LitElement) { @customElement('umb-localization-render-count') class UmbLocalizationRenderCountElement extends UmbElementMixin(LitElement) { amountOfUpdates = 0; - amountOfRenders = 0; - - @property({ type: Number }) - test: number = 0; requestUpdate() { super.requestUpdate(); @@ -25,8 +21,7 @@ class UmbLocalizationRenderCountElement extends UmbElementMixin(LitElement) { } render() { - this.amountOfRenders++; - return html`${this.localize.term('logout') + '#' + this.test}`; + return html`${this.localize.term('logout')}`; } } @@ -180,16 +175,14 @@ describe('UmbLocalizeController', () => { it('only reacts to changes of its own localization-keys', async () => { const element: UmbLocalizationRenderCountElement = await fixture( - html``, + html``, ); // Something triggers multiple updates initially, and it varies how many it is. So we wait for a timeout to ensure that we have a clean slate and then reset the counter: await aTimeout(20); element.amountOfUpdates = 0; - expect(element.amountOfUpdates).to.equal(0); - expect(element.amountOfRenders).to.equal(1); - expect(element.shadowRoot!.textContent).to.equal('Log out#10'); + expect(element.shadowRoot!.textContent).to.equal('Log out'); // Let the registry load the new extension umbLocalizationManager.registerLocalization(englishOverride); @@ -201,8 +194,7 @@ describe('UmbLocalizeController', () => { // This should still be the same (cause it should not be affected as the change did not change our localization key) expect(element.amountOfUpdates).to.equal(0); - expect(element.amountOfRenders).to.equal(1); - expect(element.shadowRoot!.textContent).to.equal('Log out#10'); + expect(element.shadowRoot!.textContent).to.equal('Log out'); // Let the registry load the new extension umbLocalizationManager.registerLocalization(englishOverrideLogout); @@ -214,10 +206,7 @@ describe('UmbLocalizeController', () => { // Now we should have gotten one update and the text should be different expect(element.amountOfUpdates).to.equal(1); - expect(element.amountOfRenders).to.equal(2); - expect(element.shadowRoot!.textContent).to.equal('Log out 2#10'); - - console.log('done'); + expect(element.shadowRoot!.textContent).to.equal('Log out 2'); }); }); From e0402465f9dd9f0ef2c2fbb99c3bb5b07a5806a8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 26 Jan 2024 09:10:59 +0100 Subject: [PATCH 631/786] mapping --- ...ocument-type-workspace-view-structure.element.ts | 13 +++++++------ .../entity-actions/permissions/manifests.ts | 2 +- .../permissions/permissions-modal.element.ts | 11 ++++++----- .../detail/media-type-detail.server.data-source.ts | 12 ++++-------- .../tree/folder/media-type-folder.repository.ts | 3 +-- .../media-type-workspace-view-structure.element.ts | 9 ++++++--- .../src/packages/media/media/tree/types.ts | 1 - .../input-template/input-template.element.ts | 8 +++----- 8 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts index 787971f9ff..8df3a2cc27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts @@ -6,6 +6,7 @@ import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; @customElement('umb-document-type-workspace-view-structure') export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement { @@ -63,12 +64,12 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement element-types-only .selectedIds=${this._allowedContentTypeIDs ?? []} @change="${(e: CustomEvent) => { - const sortedContentTypesList = (e.target as UmbInputDocumentTypeElement).selectedIds.map( - (id, index) => ({ - id: id, - sortOrder: index, - }), - ); + const sortedContentTypesList: Array = ( + e.target as UmbInputDocumentTypeElement + ).selectedIds.map((id, index) => ({ + contentType: { unique: id }, + sortOrder: index, + })); this.#workspaceContext?.setAllowedContentTypes(sortedContentTypesList); }}"> diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts index 5d6d764428..4342532571 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UmbDocumentPermissionsEntityAction } from './permissions.action.js'; import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts index 67886ad820..e5c64d311f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions-modal.element.ts @@ -1,5 +1,5 @@ import { UmbDocumentPermissionRepository } from '../../user-permissions/index.js'; -import { UmbDocumentRepository } from '../../repository/index.js'; +import { UmbDocumentItemRepository } from '../../repository/index.js'; import { UmbUserGroupRepository } from '@umbraco-cms/backoffice/user-group'; import { html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @@ -7,11 +7,12 @@ import type { UmbEntityUserPermissionSettingsModalData, UmbEntityUserPermissionSettingsModalValue, UmbModalContext, - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; + UmbModalManagerContext, +} from '@umbraco-cms/backoffice/modal'; import { UMB_ENTITY_USER_PERMISSION_MODAL, UMB_MODAL_MANAGER_CONTEXT, - UMB_USER_GROUP_PICKER_MODAL + UMB_USER_GROUP_PICKER_MODAL, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbSelectedEvent } from '@umbraco-cms/backoffice/event'; @@ -40,7 +41,7 @@ export class UmbPermissionsModalElement extends UmbLitElement { #userPermissions: Array = []; #userGroupRepository = new UmbUserGroupRepository(this); #documentPermissionRepository = new UmbDocumentPermissionRepository(this); - #documentRepository = new UmbDocumentRepository(this); + #documentItemRepository = new UmbDocumentItemRepository(this); #modalManagerContext?: UmbModalManagerContext; #userGroupPickerModal?: UmbModalContext; @@ -67,7 +68,7 @@ export class UmbPermissionsModalElement extends UmbLitElement { } async #getEntityItem(unique: string) { - const { data } = await this.#documentRepository.requestItems([unique]); + const { data } = await this.#documentItemRepository.requestItems([unique]); if (!data) throw new Error('Could not load item'); this._entityItem = data[0]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index 0c50795389..04f04289ee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -2,12 +2,8 @@ import type { UmbMediaTypeDetailModel } from '../../types.js'; import { UMB_MEDIA_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; -import type { - CreateMediaTypeRequestModel, - UpdateMediaTypeRequestModel} from '@umbraco-cms/backoffice/backend-api'; -import { - MediaTypeResource -} from '@umbraco-cms/backoffice/backend-api'; +import type { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -87,7 +83,7 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { @@ -18,7 +18,6 @@ const folderToMediaTypeTreeItemMapper = (folder: UmbFolderModel) => { parentUnique: folder.parentUnique, name: folder.name, entityType: UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE, - isContainer: false, hasChildren: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts index 235ba18173..a18c4a86fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts @@ -6,6 +6,7 @@ import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; @customElement('umb-media-type-workspace-view-structure') export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement { @@ -33,7 +34,7 @@ export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement imp this.observe(this.#workspaceContext.allowedContentTypes, (allowedContentTypes) => { const oldValue = this._allowedContentTypeIDs; this._allowedContentTypeIDs = allowedContentTypes - ?.map((x) => x.id) + ?.map((x) => x.contentType.unique) .filter((x) => x !== undefined) as Array; this.requestUpdate('_allowedContentTypeIDs', oldValue); }); @@ -62,8 +63,10 @@ export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement imp ${repeat( this._propertyStructure, - (property) => property.id ?? '' + property.container.id ?? '' + property.sortOrder ?? '', + (property) => property.id ?? '' + property.container?.id ?? '' + property.sortOrder ?? '', (property) => { // Note: This piece might be moved into the property component const inheritedFromMedia = this._ownerMediaTypes?.find( - (types) => types.containers?.find((containers) => containers.id === property.container.id), + (types) => types.containers?.find((containers) => containers.id === property.container?.id), ); return html` { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index 75975d1824..0d446ce259 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -295,7 +295,7 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { renderPropertyTags() { return this.property ? html`
- ${this.property.dataTypeId ? html`${this._dataTypeName}` : nothing} + ${this.property.dataType.id ? html`${this._dataTypeName}` : nothing} ${this.property.variesByCulture ? html` ${this.localize.term('contentTypeEditor_cultureVariantLabel')} diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts index 80461c338f..e431f442bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts @@ -1,8 +1,9 @@ import { css, html, customElement, property, repeat, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UmbDocumentRepository } from '@umbraco-cms/backoffice/document'; +import { UmbDocumentItemRepository } from '@umbraco-cms/backoffice/document'; import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbDocumentItemModel } from 'src/packages/documents/documents/repository/item/types'; @customElement('umb-user-document-start-node') export class UmbUserDocumentStartNodeElement extends UmbLitElement { @@ -10,9 +11,9 @@ export class UmbUserDocumentStartNodeElement extends UmbLitElement { ids: Array = []; @state() - _displayValue: Array = []; + _displayValue: Array = []; - #itemRepository = new UmbDocumentRepository(this); + #itemRepository = new UmbDocumentItemRepository(this); protected async firstUpdated(): Promise { if (this.ids.length === 0) return; From 1b515095e5340161f049ad422dbd291070835971 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 26 Jan 2024 12:28:21 +0100 Subject: [PATCH 640/786] mapping --- .../entity-actions/create/manifests.ts | 4 +-- .../document-detail.server.data-source.ts | 30 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts index 4b154d25af..61b72ae19a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_REPOSITORY_ALIAS } from '../../repository/manifests.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../../entity.js'; import { UmbCreateDocumentEntityAction } from './create.action.js'; import type { ManifestEntityAction, ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; @@ -13,7 +13,7 @@ const entityActions: Array = [ meta: { icon: 'icon-add', label: 'Create', - repositoryAlias: UMB_DOCUMENT_REPOSITORY_ALIAS, + repositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, entityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE], }, /* removed until we have permissions in place diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts index 22fcdb9e7c..a287d1f9fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts @@ -1,12 +1,9 @@ -import { UmbDocumentDetailModel } from '../../types.js'; +import type { UmbDocumentDetailModel } from '../../types.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; -import { - CreateDocumentRequestModel, - DocumentResource, - UpdateDocumentRequestModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { DocumentResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -38,10 +35,11 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource Date: Fri, 26 Jan 2024 12:39:17 +0100 Subject: [PATCH 641/786] Revert "fix js issue" This reverts commit 686f9b6a419667a9723283e891398cb39ebe753b. --- ...property-editor-ui-block-grid-type-configuration.element.ts | 2 +- ...property-editor-ui-block-list-type-configuration.element.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index 10a4d4c3f9..9714e9cd08 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -105,7 +105,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement #onCreate(e: CustomEvent, groupKey: string | null) { const selectedElementType = e.detail.contentElementTypeKey; if (selectedElementType) { - this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + groupKey + '/' + selectedElementType); + this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + selectedElementType + '/' + groupKey); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts index b8941ca8b1..a1a1c7de07 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-type-configuration/property-editor-ui-block-list-type-configuration.element.ts @@ -48,8 +48,7 @@ export class UmbPropertyEditorUIBlockListBlockConfigurationElement #onCreate(e: CustomEvent) { const selectedElementType = e.detail.contentElementTypeKey; if (selectedElementType) { - // We do not have any groups here, which is why we pass null as the groupKey. - this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/null/' + selectedElementType); + this.#blockTypeWorkspaceModalRegistration?.open({}, 'create/' + selectedElementType + '/null'); } } From cd2b75038a07db0f6537162fcac23f10e5a4bd18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:19:51 +0100 Subject: [PATCH 642/786] make private methods --- .../registry/extension.registry.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 26622af8fd..6764b32b97 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -177,19 +177,19 @@ export class UmbExtensionRegistry< return true; } - private _kindsOfType | string>(type: Key) { + #kindsOfType | string>(type: Key) { return this.kinds.pipe( map((kinds) => kinds.filter((kind) => kind.matchType === type)), distinctUntilChanged(extensionArrayMemoization), ); } - private _extensionsOfType | string>(type: Key) { + #extensionsOfType | string>(type: Key) { return this.extensions.pipe( map((exts) => exts.filter((ext) => ext.type === type)), distinctUntilChanged(extensionArrayMemoization), ); } - private _kindsOfTypes(types: string[]) { + #kindsOfTypes(types: string[]) { return this.kinds.pipe( map((kinds) => kinds.filter((kind) => types.indexOf(kind.matchType) !== -1)), distinctUntilChanged(extensionArrayMemoization), @@ -197,7 +197,7 @@ export class UmbExtensionRegistry< } // TODO: can we get rid of as unknown here - private _extensionsOfTypes( + #extensionsOfTypes( types: Array, ): Observable> { return this.extensions.pipe( @@ -213,7 +213,7 @@ export class UmbExtensionRegistry< distinctUntilChanged(extensionSingleMemoization), switchMap((ext) => { if (ext?.kind) { - return this._kindsOfType(ext.type).pipe( + return this.#kindsOfType(ext.type).pipe( map((kinds) => { // Specific Extension Meta merge (does not merge conditions) if (ext) { @@ -249,7 +249,7 @@ export class UmbExtensionRegistry< map((exts) => exts.find((ext) => ext.type === type && ext.alias === alias)), distinctUntilChanged(extensionSingleMemoization), ), - this._kindsOfType(type), + this.#kindsOfType(type), ]).pipe( map(([ext, kinds]) => { // TODO: share one merge function between the different methods of this class: @@ -280,7 +280,7 @@ export class UmbExtensionRegistry< map((exts) => exts.filter((ext) => ext.type === type && aliases.indexOf(ext.alias) !== -1)), distinctUntilChanged(extensionArrayMemoization), ), - this._kindsOfType(type), + this.#kindsOfType(type), ]).pipe( map(([exts, kinds]) => exts @@ -319,7 +319,7 @@ export class UmbExtensionRegistry< map((exts) => exts.find((ext) => ext.type === type && filter(ext as unknown as T))), distinctUntilChanged(extensionSingleMemoization), ), - this._kindsOfType(type), + this.#kindsOfType(type), ]).pipe( map(([ext, kinds]) => { // TODO: share one merge function between the different methods of this class: @@ -349,7 +349,7 @@ export class UmbExtensionRegistry< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, >(type: Key) { - return combineLatest([this._extensionsOfType(type), this._kindsOfType(type)]).pipe( + return combineLatest([this.#extensionsOfType(type), this.#kindsOfType(type)]).pipe( map(([exts, kinds]) => exts .map((ext) => { @@ -378,7 +378,7 @@ export class UmbExtensionRegistry< extensionsOfTypes( types: string[], ): Observable> { - return combineLatest([this._extensionsOfTypes(types), this._kindsOfTypes(types)]).pipe( + return combineLatest([this.#extensionsOfTypes(types), this.#kindsOfTypes(types)]).pipe( map(([exts, kinds]) => exts .map((ext) => { From 442446ff23fe4a87c69fc2ec49f831ce9a4cb795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:21:42 +0100 Subject: [PATCH 643/786] more clean up --- .../extension-api/registry/extension.registry.ts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 6764b32b97..611d3caf47 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -106,7 +106,7 @@ export class UmbExtensionRegistry< } register(manifest: ManifestTypes | ManifestKind): void { - const isValid = this.checkExtension(manifest); + const isValid = this.#checkExtension(manifest); if (!isValid) { return; } @@ -143,14 +143,7 @@ export class UmbExtensionRegistry< return false; } - /* - getByAlias(alias: string) { - // TODO: make pipes prettier/simpler/reuseable - return this.extensions.pipe(map((extensions) => extensions.find((extension) => extension.alias === alias) || null)); - } - */ - - private checkExtension(manifest: ManifestTypes | ManifestKind): boolean { + #checkExtension(manifest: ManifestTypes | ManifestKind): boolean { if (!manifest.type) { console.error(`Extension is missing type`, manifest); return false; @@ -345,6 +338,7 @@ export class UmbExtensionRegistry< * @param type {string} - The type of the extensions to get. * @returns {Observable} - An observable of the extensions that matches the type. */ + // TODO: get rid of the extensions name. extensionsOfType< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, @@ -375,6 +369,7 @@ export class UmbExtensionRegistry< * @param type {Array} - The types of the extensions to get. * @returns {Observable} - An observable of the extensions that matches the types. */ + // TODO: get rid of the extensions name. extensionsOfTypes( types: string[], ): Observable> { From 9054fde15e319fb6a67128264c5674cd3b82538b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:25:51 +0100 Subject: [PATCH 644/786] byType --- .../base-extensions-initializer.controller.ts | 4 ++-- .../bundle-extension-initializer.ts | 2 +- .../entry-point-extension-initializer.ts | 2 +- .../registry/extension.registry.test.ts | 12 ++++++------ .../registry/extension.registry.ts | 17 +++++++++++------ .../entity-actions-bundle.element.ts | 4 ++-- .../input-section/input-section.element.ts | 4 ++-- .../input-tiny-mce/input-tiny-mce.element.ts | 2 +- .../data-type-picker-flow-modal.element.ts | 7 ++++--- .../property-editor-ui-picker-modal.element.ts | 9 ++++----- .../ui-culture-input.element.ts | 4 ++-- .../registry/localization.registry.ts | 2 +- .../section-picker-modal.element.ts | 12 ++++-------- ...ui-tiny-mce-toolbar-configuration.element.ts | 4 ++-- .../src/packages/core/themes/theme.context.ts | 4 ++-- .../tree-item-base/tree-item-base.context.ts | 2 +- .../dashboard-health-check.element.ts | 6 +++--- .../created-packages-section-view.element.ts | 10 +++------- ...talled-packages-section-view-item.element.ts | 8 ++++---- .../user-profile-app-themes.element.ts | 6 +++--- ...roup-table-sections-column-layout.element.ts | 2 +- .../user-group-ref/user-group-ref.element.ts | 4 ++-- ...ser-group-default-permission-list.element.ts | 2 +- ...ity-user-permission-settings-list.element.ts | 6 +++--- 24 files changed, 66 insertions(+), 69 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts index b962b7777b..b08e5cac83 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts @@ -56,8 +56,8 @@ export abstract class UmbBaseExtensionsInitializer< } protected _init() { let source = Array.isArray(this.#type) - ? this.#extensionRegistry.extensionsOfTypes(this.#type as string[]) - : this.#extensionRegistry.extensionsOfType(this.#type as ManifestTypeName); + ? this.#extensionRegistry.byTypes(this.#type as string[]) + : this.#extensionRegistry.byType(this.#type as ManifestTypeName); if (this.#filter) { source = source.pipe(map((extensions: Array) => extensions.filter(this.#filter!))); } diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts index d3af968dc7..23555f8246 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/bundle-extension-initializer.ts @@ -11,7 +11,7 @@ export class UmbBundleExtensionInitializer extends UmbBaseController { constructor(host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry) { super(host); this.#extensionRegistry = extensionRegistry; - this.observe(extensionRegistry.extensionsOfType('bundle'), (bundles) => { + this.observe(extensionRegistry.byType('bundle'), (bundles) => { // Unregister removed bundles: this.#bundleMap.forEach((existingBundle) => { if (!bundles.find((b) => b.alias === existingBundle.alias)) { diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts index 6ff6c69576..5823bc9c59 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/initializers/entry-point-extension-initializer.ts @@ -13,7 +13,7 @@ export class UmbEntryPointExtensionInitializer extends UmbBaseController { super(host); this.#host = host; this.#extensionRegistry = extensionRegistry; - this.observe(extensionRegistry.extensionsOfType('entryPoint'), (entryPoints) => { + this.observe(extensionRegistry.byType('entryPoint'), (entryPoints) => { entryPoints.forEach((entryPoint) => { if (this.#entryPointMap.has(entryPoint.alias)) return; this.#entryPointMap.set(entryPoint.alias, entryPoint); diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts index b0492dc21c..20ae4ae57f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts @@ -94,7 +94,7 @@ describe('UmbExtensionRegistry', () => { it('should get all extensions by type', (done) => { extensionRegistry - .extensionsOfType(type) + .byType(type) .subscribe((extensions) => { expect(extensions).to.have.lengthOf(3); expect(extensions?.[0]?.type).to.eq(type); @@ -106,7 +106,7 @@ describe('UmbExtensionRegistry', () => { it('should return extensions ordered by weight', (done) => { extensionRegistry - .extensionsOfType(type) + .byType(type) .subscribe((extensions) => { expect(extensions?.[0]?.weight).to.eq(200); expect(extensions?.[1]?.weight).to.eq(25); @@ -121,7 +121,7 @@ describe('UmbExtensionRegistry', () => { let lastAmount = 0; extensionRegistry - .extensionsOfType('section') + .byType('section') .subscribe((extensions) => { amountOfTimesTriggered++; const newAmount = extensions?.length ?? 0; @@ -244,7 +244,7 @@ describe('UmbExtensionRegistry with kinds', () => { it('should merge with kinds', (done) => { extensionRegistry - .extensionsOfType('section') + .byType('section') .subscribe((extensions) => { expect(extensions).to.have.lengthOf(3); expect(extensions?.[0]?.elementName).to.not.eq('my-kind-element'); @@ -265,7 +265,7 @@ describe('UmbExtensionRegistry with kinds', () => { extensionRegistry.unregister('Umb.Test.Kind'); extensionRegistry - .extensionsOfType('section') + .byType('section') .subscribe((extensions) => { amountOfTimesTriggered++; expect(extensions).to.have.lengthOf(3); @@ -287,7 +287,7 @@ describe('UmbExtensionRegistry with kinds', () => { let amountOfTimesTriggered = -1; extensionRegistry - .extensionsOfType('section') + .byType('section') .subscribe((extensions) => { amountOfTimesTriggered++; expect(extensions).to.have.lengthOf(3); diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 611d3caf47..2f527db29e 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -338,8 +338,7 @@ export class UmbExtensionRegistry< * @param type {string} - The type of the extensions to get. * @returns {Observable} - An observable of the extensions that matches the type. */ - // TODO: get rid of the extensions name. - extensionsOfType< + byType< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, >(type: Key) { @@ -363,16 +362,17 @@ export class UmbExtensionRegistry< distinctUntilChanged(extensionAndKindMatchArrayMemoization), ) as Observable>; } + /** + * @deprecated Use `byType` instead. + */ + extensionsOfType = this.byType.bind(this); /** * Get an observable that provides extensions matching given types. * @param type {Array} - The types of the extensions to get. * @returns {Observable} - An observable of the extensions that matches the types. */ - // TODO: get rid of the extensions name. - extensionsOfTypes( - types: string[], - ): Observable> { + byTypes(types: string[]): Observable> { return combineLatest([this.#extensionsOfTypes(types), this.#kindsOfTypes(types)]).pipe( map(([exts, kinds]) => exts @@ -395,4 +395,9 @@ export class UmbExtensionRegistry< distinctUntilChanged(extensionAndKindMatchArrayMemoization), ) as Observable>; } + + /** + * @deprecated Use `byTypes` instead. + */ + extensionsOfTypes = this.byTypes.bind(this); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts index 5666bc542c..3de9b99748 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts @@ -1,7 +1,7 @@ import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import type { UmbSectionSidebarContext} from '@umbraco-cms/backoffice/section'; +import type { UmbSectionSidebarContext } from '@umbraco-cms/backoffice/section'; import { UMB_SECTION_SIDEBAR_CONTEXT } from '@umbraco-cms/backoffice/section'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -44,7 +44,7 @@ export class UmbEntityActionsBundleElement extends UmbLitElement { #observeEntityActions() { this.observe( umbExtensionsRegistry - .extensionsOfType('entityAction') + .byType('entityAction') .pipe(map((actions) => actions.filter((action) => action.meta.entityTypes.includes(this.entityType!)))), (actions) => { this._hasActions = actions.length > 0; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts index 13cd0d0827..1e1743c1ad 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-section/input-section.element.ts @@ -2,7 +2,7 @@ import { UmbInputListBaseElement } from '../input-list-base/input-list-base.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UMB_SECTION_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import type { ManifestSection} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-input-section') @@ -18,7 +18,7 @@ export class UmbInputSectionElement extends UmbInputListBaseElement { private _observeSections() { if (this.value.length > 0) { - this.observe(umbExtensionsRegistry.extensionsOfType('section'), (sections: Array) => { + this.observe(umbExtensionsRegistry.byType('section'), (sections: Array) => { this._sections = sections.filter((section) => this.value.includes(section.alias)); }); } else { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 190c92d443..0ef9d7db16 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -78,7 +78,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { * the plugins are ready and so are not associated with the editor. */ async #loadPlugins() { - const observable = umbExtensionsRegistry?.extensionsOfType('tinyMcePlugin'); + const observable = umbExtensionsRegistry?.byType('tinyMcePlugin'); const manifests = (await firstValueFrom(observable)) as ManifestTinyMcePlugin[]; const promises = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts index 279baa268f..dffe289872 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts @@ -5,13 +5,14 @@ import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import type { UmbDataTypePickerFlowModalData, UmbDataTypePickerFlowModalValue, - UmbModalRouteBuilder} from '@umbraco-cms/backoffice/modal'; + UmbModalRouteBuilder, +} from '@umbraco-cms/backoffice/modal'; import { UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL, UmbModalBaseElement, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; -import type { ManifestPropertyEditorUi} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; import { UMB_DATATYPE_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/data-type'; @@ -107,7 +108,7 @@ export class UmbDataTypePickerFlowModalElement extends UmbModalBaseElement< '_repositoryItemsObserver', ); - this.observe(umbExtensionsRegistry.extensionsOfType('propertyEditorUi'), (propertyEditorUIs) => { + this.observe(umbExtensionsRegistry.byType('propertyEditorUi'), (propertyEditorUIs) => { // Only include Property Editor UIs which has Property Editor Schema Alias this.#propertyEditorUIs = propertyEditorUIs.filter( (propertyEditorUi) => !!propertyEditorUi.meta.propertyEditorSchemaAlias, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts index 010eb6ffee..2a32afa768 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.ts @@ -3,11 +3,10 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import type { UmbPropertyEditorUIPickerModalData, - UmbPropertyEditorUIPickerModalValue} from '@umbraco-cms/backoffice/modal'; -import { - UmbModalBaseElement, + UmbPropertyEditorUIPickerModalValue, } from '@umbraco-cms/backoffice/modal'; -import type { ManifestPropertyEditorUi} from '@umbraco-cms/backoffice/extension-registry'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; interface GroupedPropertyEditorUIs { @@ -38,7 +37,7 @@ export class UmbPropertyEditorUIPickerModalElement extends UmbModalBaseElement< #usePropertyEditorUIs() { if (!this.data) return; - this.observe(umbExtensionsRegistry.extensionsOfType('propertyEditorUi'), (propertyEditorUIs) => { + this.observe(umbExtensionsRegistry.byType('propertyEditorUi'), (propertyEditorUIs) => { // Only include Property Editor UIs which has Property Editor Schema Alias this._propertyEditorUIs = propertyEditorUIs.filter( (propertyEditorUi) => !!propertyEditorUi.meta.propertyEditorSchemaAlias, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts index 6e607850c6..5d49ac03fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/components/ui-culture-input/ui-culture-input.element.ts @@ -3,7 +3,7 @@ import { css, html, customElement, query, state, property } from '@umbraco-cms/b import type { UUIComboboxElement, UUIComboboxEvent } from '@umbraco-cms/backoffice/external/uui'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { ManifestLocalization} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestLocalization } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; interface UmbCultureInputOption { @@ -38,7 +38,7 @@ export class UmbUiCultureInputElement extends FormControlMixin(UmbLitElement) { #observeTranslations() { this.observe( - umbExtensionsRegistry.extensionsOfType('localization'), + umbExtensionsRegistry.byType('localization'), (localizationManifests) => { this.#mapToOptions(localizationManifests); }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts index 708e437f84..f2b5e98a4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/localization/registry/localization.registry.ts @@ -34,7 +34,7 @@ export class UmbLocalizationRegistry { } constructor(extensionRegistry: UmbBackofficeExtensionRegistry) { - combineLatest([this.currentLanguage, extensionRegistry.extensionsOfType('localization')]).subscribe( + combineLatest([this.currentLanguage, extensionRegistry.byType('localization')]).subscribe( async ([currentLanguage, extensions]) => { const locale = new Intl.Locale(currentLanguage); const filteredExt = extensions.filter( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts index c72ad04237..909bf12c1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/section-picker/section-picker-modal.element.ts @@ -1,14 +1,10 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; -import type { ManifestSection} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import type { - UmbSectionPickerModalData, - UmbSectionPickerModalValue} from '@umbraco-cms/backoffice/modal'; -import { - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbSectionPickerModalData, UmbSectionPickerModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @customElement('umb-section-picker-modal') export class UmbSectionPickerModalElement extends UmbModalBaseElement< @@ -28,7 +24,7 @@ export class UmbSectionPickerModalElement extends UmbModalBaseElement< this.#selectionManager.setSelection(this.data?.selection ?? []); this.observe( - umbExtensionsRegistry.extensionsOfType('section'), + umbExtensionsRegistry.byType('section'), (sections: Array) => (this._sections = sections), ), 'umbSectionsObserver'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts index 3df001a360..5c3f7306cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/config/toolbar/property-editor-ui-tiny-mce-toolbar-configuration.element.ts @@ -2,7 +2,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; import { customElement, css, html, property, map, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { UmbPropertyEditorUiElement} from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; @@ -78,7 +78,7 @@ export class UmbPropertyEditorUITinyMceToolbarConfigurationElement private async getToolbarPlugins(): Promise { // Get all the toolbar plugins - const plugin$ = umbExtensionsRegistry.extensionsOfType('tinyMcePlugin'); + const plugin$ = umbExtensionsRegistry.byType('tinyMcePlugin'); const plugins = await firstValueFrom(plugin$); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts index 120b241c2b..f069308ec8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/themes/theme.context.ts @@ -4,7 +4,7 @@ import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-a import { UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { ManifestTheme} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTheme } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { loadManifestPlainCss } from '@umbraco-cms/backoffice/extension-api'; @@ -37,7 +37,7 @@ export class UmbThemeContext extends UmbBaseController { localStorage.setItem(LOCAL_STORAGE_KEY, themeAlias); this.#themeObserver = this.observe( umbExtensionsRegistry - .extensionsOfType('theme') + .byType('theme') .pipe(map((extensions) => extensions.filter((extension) => extension.alias === themeAlias))), async (themes) => { this.#styleElement?.remove(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts index a01ef5721f..d329e17fa9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-base/tree-item-base.context.ts @@ -181,7 +181,7 @@ export class UmbTreeItemContextBase #observeActions() { this.observe( umbExtensionsRegistry - .extensionsOfType('entityAction') + .byType('entityAction') .pipe(map((actions) => actions.filter((action) => action.meta.entityTypes.includes(this.entityType!)))), (actions) => { this.#hasActions.setValue(actions.length > 0); diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts index af642d87b4..183ff898d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/dashboard-health-check.element.ts @@ -2,11 +2,11 @@ import type { UmbDashboardHealthCheckGroupElement } from './views/health-check-g import { UmbHealthCheckDashboardContext, UMB_HEALTHCHECK_DASHBOARD_CONTEXT } from './health-check-dashboard.context.js'; import { UmbHealthCheckContext } from './health-check.context.js'; import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; -import type { HealthCheckGroupResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import type { HealthCheckGroupResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { HealthCheckResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { ManifestHealthCheck} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestHealthCheck } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -34,7 +34,7 @@ export class UmbDashboardHealthCheckElement extends UmbLitElement { super(); this.provideContext(UMB_HEALTHCHECK_DASHBOARD_CONTEXT, this._healthCheckDashboardContext); - this.observe(umbExtensionsRegistry.extensionsOfType('healthCheck'), (healthCheckManifests) => { + this.observe(umbExtensionsRegistry.byType('healthCheck'), (healthCheckManifests) => { this._healthCheckDashboardContext.manifests = healthCheckManifests; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts index 502bd8285a..02f21e2016 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/created/created-packages-section-view.element.ts @@ -1,11 +1,7 @@ import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbRoute } from '@umbraco-cms/backoffice/router'; -import type { - ManifestWorkspace, - UmbSectionViewElement} from '@umbraco-cms/backoffice/extension-registry'; -import { - umbExtensionsRegistry, -} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestWorkspace, UmbSectionViewElement } from '@umbraco-cms/backoffice/extension-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -19,7 +15,7 @@ export class UmbCreatedPackagesSectionViewElement extends UmbLitElement implemen constructor() { super(); // TODO: Do not implement all workspaces at this point. We should only implement the 'package-builder' workspace. - this.observe(umbExtensionsRegistry?.extensionsOfType('workspace'), (workspaceExtensions) => { + this.observe(umbExtensionsRegistry?.byType('workspace'), (workspaceExtensions) => { this._workspaces = workspaceExtensions; this._createRoutes(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts index fc0859b2e1..dafcfa1760 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.ts @@ -1,15 +1,15 @@ import { html, css, nothing, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; -import type { UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UMB_CONFIRM_MODAL } from '@umbraco-cms/backoffice/modal'; import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api'; -import type { ManifestPackageView} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPackageView } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import { PackageResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; @customElement('umb-installed-packages-section-view-item') @@ -58,7 +58,7 @@ export class UmbInstalledPackagesSectionViewItemElement extends UmbLitElement { #observePackageView() { this.observe( - umbExtensionsRegistry.extensionsOfType('packageView').pipe( + umbExtensionsRegistry.byType('packageView').pipe( map((extensions) => { return extensions.filter((extension) => extension.meta.packageName === this.#name); }), diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts index e4708f1d0e..f38d8a247f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/user-profile-apps/user-profile-app-themes.element.ts @@ -1,9 +1,9 @@ -import type { UmbThemeContext} from '@umbraco-cms/backoffice/themes'; +import type { UmbThemeContext } from '@umbraco-cms/backoffice/themes'; import { UMB_THEME_CONTEXT } from '@umbraco-cms/backoffice/themes'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUISelectEvent } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { ManifestTheme} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestTheme } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-user-profile-app-themes') @@ -29,7 +29,7 @@ export class UmbUserProfileAppThemesElement extends UmbLitElement { ); this.observe( - umbExtensionsRegistry.extensionsOfType('theme'), + umbExtensionsRegistry.byType('theme'), (themes) => { this._themes = themes; }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts index b49b2f22a8..d39ed9f6c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts @@ -22,7 +22,7 @@ export class UmbUserGroupTableSectionsColumnLayoutElement extends UmbLitElement private observeSectionNames() { this.observe( - umbExtensionsRegistry.extensionsOfType('section'), + umbExtensionsRegistry.byType('section'), (sections) => { this._sectionsNames = sections.filter((x) => this.value.includes(x.alias)).map((x) => x.meta.label || x.name); }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts index d9be491df6..ad89f8484d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/components/user-group-ref/user-group-ref.element.ts @@ -1,7 +1,7 @@ import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; import { customElement, html, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; -import type { ManifestUserPermission} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestUserPermission } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; @@ -25,7 +25,7 @@ export class UmbUserGroupRefElement extends UmbElementMixin(UUIRefNodeElement) { async #observeUserPermissions(value: Array) { if (value) { this.observe( - umbExtensionsRegistry.extensionsOfType('userPermission').pipe( + umbExtensionsRegistry.byType('userPermission').pipe( map((manifests) => { return manifests.filter((manifest) => manifest.alias && value.includes(manifest.alias)); }), diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts index 12315424f7..53643bcfc4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/components/user-group-default-permission-list.element.ts @@ -32,7 +32,7 @@ export class UmbUserGroupDefaultPermissionListElement extends UmbLitElement { #observeUserPermissions() { this.observe( - umbExtensionsRegistry.extensionsOfType('userPermission'), + umbExtensionsRegistry.byType('userPermission'), (userPermissionManifests) => { this._entityTypes = [...new Set(userPermissionManifests.map((manifest) => manifest.meta.entityType))]; }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts index 475cbf6db6..fcf0879a5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/entity-user-permission-settings-list/entity-user-permission-settings-list.element.ts @@ -1,6 +1,6 @@ -import type { UmbChangeEvent} from '@umbraco-cms/backoffice/event'; +import type { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbSelectionChangeEvent } from '@umbraco-cms/backoffice/event'; -import type { ManifestUserPermission} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestUserPermission } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { css, html, customElement, property, state, nothing, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -36,7 +36,7 @@ export class UmbEntityUserPermissionSettingsListElement extends UmbLitElement { this.#manifestObserver?.destroy(); this.#manifestObserver = this.observe( - umbExtensionsRegistry.extensionsOfType('userPermission'), + umbExtensionsRegistry.byType('userPermission'), (userPermissionManifests) => { this._manifests = userPermissionManifests.filter((manifest) => manifest.meta.entityType === this.entityType); }, From a07e656b925d6eced623860584dccf5e94242871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:26:29 +0100 Subject: [PATCH 645/786] byTypeAndAliases --- .../controller/base-extension-initializer.controller.ts | 2 +- .../libs/extension-api/registry/extension.registry.test.ts | 2 +- .../src/libs/extension-api/registry/extension.registry.ts | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts index 7d689422ed..d8deb6cded 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts @@ -143,7 +143,7 @@ export abstract class UmbBaseExtensionInitializer< if (conditionConfigs.length > 0) { // Observes the conditions and initialize as they come in. this.observe( - this.#extensionRegistry.getByTypeAndAliases('condition', conditionAliases), + this.#extensionRegistry.byTypeAndAliases('condition', conditionAliases), this.#gotConditions, '_observeConditions', ); diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts index 20ae4ae57f..bd58bdb34d 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts @@ -80,7 +80,7 @@ describe('UmbExtensionRegistry', () => { it('should get an extension by aliases', (done) => { const aliases = ['Umb.Test.Section.1', 'Umb.Test.Section.2']; extensionRegistry - .getByTypeAndAliases('section', aliases) + .byTypeAndAliases('section', aliases) .subscribe((extensions) => { expect(extensions[0]?.alias).to.eq(aliases[1]); expect(extensions[1]?.alias).to.eq(aliases[0]); diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 2f527db29e..c0be272240 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -263,8 +263,7 @@ export class UmbExtensionRegistry< ) as Observable; } - // TODO: get rid of the name get - getByTypeAndAliases< + byTypeAndAliases< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, >(type: Key, aliases: Array) { @@ -294,6 +293,10 @@ export class UmbExtensionRegistry< distinctUntilChanged(extensionAndKindMatchArrayMemoization), ) as Observable>; } + /** + * @deprecated Use `byTypeAndAliases` instead. + */ + getByTypeAndAliases = this.byTypeAndAliases.bind(this); /** * Get an observable of an extension by type and a given filter method. From 4ae6fd049e0d1067a695d621eb79d6183a5e5cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:27:11 +0100 Subject: [PATCH 646/786] byTypeAndAlias --- .../src/libs/extension-api/registry/extension.registry.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index c0be272240..0cf95d96d0 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -233,7 +233,7 @@ export class UmbExtensionRegistry< } // TODO: get rid of the name get - getByTypeAndAlias< + byTypeAndAlias< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, >(type: Key, alias: string) { @@ -262,6 +262,10 @@ export class UmbExtensionRegistry< distinctUntilChanged(extensionAndKindMatchSingleMemoization), ) as Observable; } + /** + * @deprecated Use `byTypeAndAlias` instead. + */ + getByTypeAndAlias = this.byTypeAndAlias.bind(this); byTypeAndAliases< Key extends keyof ManifestTypeMap | string, From 1ac5b51715fed3531fae52bba01fd4c74cf0bc6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:28:37 +0100 Subject: [PATCH 647/786] byAlias --- .../controller/base-extension-initializer.controller.ts | 2 +- .../src/libs/extension-api/registry/extension.registry.ts | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts index d8deb6cded..816a32e4a0 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extension-initializer.controller.ts @@ -73,7 +73,7 @@ export abstract class UmbBaseExtensionInitializer< } protected _init() { this.#manifestObserver = this.observe( - this.#extensionRegistry.getByAlias(this.#alias), + this.#extensionRegistry.byAlias(this.#alias), async (extensionManifest) => { this.#clearPermittedState(); this.#manifest = extensionManifest; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 0cf95d96d0..44966aeac2 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -199,8 +199,7 @@ export class UmbExtensionRegistry< ) as unknown as Observable>; } - // TODO: get rid of the name get - getByAlias(alias: string) { + byAlias(alias: string) { return this.extensions.pipe( map((exts) => exts.find((ext) => ext.alias === alias)), distinctUntilChanged(extensionSingleMemoization), @@ -231,8 +230,11 @@ export class UmbExtensionRegistry< distinctUntilChanged(extensionAndKindMatchSingleMemoization), ) as Observable; } + /** + * @deprecated Use `byAlias` instead. + */ + getByAlias = this.byAlias.bind(this); - // TODO: get rid of the name get byTypeAndAlias< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, From d843ba6bf79b921e5d655577fd8dbc5c300993a1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 26 Jan 2024 13:30:23 +0100 Subject: [PATCH 648/786] mapping --- .../document-type-workspace.context.ts | 8 ++-- ...t-type-workspace-view-templates.element.ts | 21 ++++++---- .../input-document/input-document.element.ts | 38 +++++++++++-------- .../detail/document-detail.repository.ts | 4 +- .../actions/save-and-preview.action.ts | 2 +- .../actions/save-and-schedule.action.ts | 2 +- .../user-document-start-node.element.ts | 10 ++--- .../user-media-start-node.element.ts | 3 +- 8 files changed, 50 insertions(+), 38 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index da4a783138..fcb5cadb98 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -32,7 +32,7 @@ export class UmbDocumentTypeWorkspaceContext // Document type specific: readonly allowedTemplateIds; - readonly defaultTemplateId; + readonly defaultTemplate; readonly cleanup; readonly structure = new UmbContentTypePropertyStructureManager(this, this.repository); @@ -58,7 +58,7 @@ export class UmbDocumentTypeWorkspaceContext // Document type specific: this.allowedTemplateIds = this.structure.ownerContentTypeObservablePart((data) => data?.allowedTemplates); - this.defaultTemplateId = this.structure.ownerContentTypeObservablePart((data) => data?.defaultTemplate); + this.defaultTemplate = this.structure.ownerContentTypeObservablePart((data) => data?.defaultTemplate); this.cleanup = this.structure.ownerContentTypeObservablePart((data) => data?.defaultTemplate); } @@ -117,10 +117,10 @@ export class UmbDocumentTypeWorkspaceContext } // Document type specific: - setAllowedTemplateIds(allowedTemplates: Array) { + setAllowedTemplateIds(allowedTemplates: Array<{ id: string }>) { this.structure.updateOwnerContentType({ allowedTemplates }); } - setDefaultTemplateId(defaultTemplate: string) { + setDefaultTemplate(defaultTemplate: { id: string }) { this.structure.updateOwnerContentType({ defaultTemplate }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts index a7f63a1afc..019238c2e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts @@ -12,7 +12,7 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement extends UmbLitElement #workspaceContext?: UmbDocumentTypeWorkspaceContext; @state() - private _defaultTemplateId?: string | null; + private _defaultTemplateId: string | null = null; @state() private _allowedTemplateIds?: Array; @@ -28,10 +28,10 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement extends UmbLitElement private _observeDocumentType() { if (!this.#workspaceContext) return; this.observe( - this.#workspaceContext.defaultTemplateId, - (defaultTemplateId) => { + this.#workspaceContext.defaultTemplate, + (defaultTemplate) => { const oldValue = this._defaultTemplateId; - this._defaultTemplate = defaultTemplateId; + this._defaultTemplateId = defaultTemplate ? defaultTemplate.id : null; this.requestUpdate('_defaultTemplateId', oldValue); }, 'defaultTemplate', @@ -40,7 +40,7 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement extends UmbLitElement this.#workspaceContext.allowedTemplateIds, (allowedTemplateIds) => { const oldValue = this._allowedTemplateIds; - this._allowedTemplateIds = allowedTemplateIds; + this._allowedTemplateIds = allowedTemplateIds?.map((template) => template.id); this.requestUpdate('_allowedTemplateIds', oldValue); }, 'allowedTemplateIds', @@ -50,9 +50,14 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement extends UmbLitElement #templateInputChange(e: CustomEvent) { // save new allowed ids const input = e.target as UmbInputTemplateElement; - const idsWithoutRoot = input.selectedIds?.filter((id) => id !== null) ?? []; + const idsWithoutRoot = + input.selectedIds + ?.filter((id) => id !== null) + .map((id) => { + return { id }; + }) ?? []; this.#workspaceContext?.setAllowedTemplateIds(idsWithoutRoot); - this.#workspaceContext?.setDefaultTemplateId(input.defaultId); + this.#workspaceContext?.setDefaultTemplate({ id: input.defaultId }); } render() { @@ -61,7 +66,7 @@ export class UmbDocumentTypeWorkspaceViewTemplatesElement extends UmbLitElement
Choose which templates editors are allowed to use on content of this type
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index eab713c6e5..9b8321d11f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -2,10 +2,11 @@ import { UmbDocumentPickerContext } from './input-document.context.js'; import { css, html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { DocumentItemResponseModel, DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import type { UmbDocumentItemModel } from '@umbraco-cms/backoffice/document'; const SORTER_CONFIG: UmbSorterConfig = { compareElementToModel: (element, model) => { @@ -102,7 +103,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { private _editDocumentPath = ''; @state() - private _items?: Array; + private _items?: Array; #pickerContext = new UmbDocumentPickerContext(this); @@ -163,7 +164,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { return html` ${repeat( this._items, - (item) => item.id, + (item) => item.unique, (item) => this.#renderItem(item), )} `; @@ -178,16 +179,17 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { label=${this.localize.term('general_choose')}>`; } - #renderItem(item: DocumentItemResponseModel) { - if (!item.id) return; + #renderItem(item: UmbDocumentItemModel) { + if (!item.unique) return; + // TODO: get correct variant name + const name = item.variants[0].name; + return html` - + ${this.#renderIcon(item)} ${this.#renderIsTrashed(item)} ${this.#renderOpenButton(item)} - this.#pickerContext.requestRemoveItem(item.id!)} - label="Remove document ${item.name}" + this.#pickerContext.requestRemoveItem(item.unique)} label="Remove document ${name}" >${this.localize.term('general_remove')} @@ -195,22 +197,26 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { `; } - #renderIcon(item: DocumentItemResponseModel) { - if (!item.icon) return; - return html``; + #renderIcon(item: UmbDocumentItemModel) { + if (!item.documentType.icon) return; + return html``; } - #renderIsTrashed(item: DocumentItemResponseModel) { + #renderIsTrashed(item: UmbDocumentItemModel) { if (!item.isTrashed) return; return html`Trashed`; } - #renderOpenButton(item: DocumentItemResponseModel) { + #renderOpenButton(item: UmbDocumentItemModel) { if (!this.showOpenButton) return; + + // TODO: get correct variant name + const name = item.variants[0].name; + return html` + href="${this._editDocumentPath}edit/${item.unique}" + label="${this.localize.term('general_open')} ${name}"> ${this.localize.term('general_open')} `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts index ff2ca012dd..81ba4a1870 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.repository.ts @@ -1,7 +1,7 @@ -import { UmbDocumentDetailModel } from '../../types.js'; +import type { UmbDocumentDetailModel } from '../../types.js'; import { UmbDocumentServerDataSource } from './document-detail.server.data-source.js'; import { UMB_DOCUMENT_DETAIL_STORE_CONTEXT } from './document-detail.store.js'; -import { type UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; export class UmbDocumentDetailRepository extends UmbDetailRepositoryBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts index 5bbecd1111..8900655ce6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-preview.action.ts @@ -13,6 +13,6 @@ export class UmbDocumentSaveAndPreviewWorkspaceAction extends UmbWorkspaceAction const document = this.workspaceContext.getData(); // TODO: handle errors if (!document) return; - this.workspaceContext.repository?.saveAndPreview(); + //this.workspaceContext.repository?.saveAndPreview(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts index b9451ee8ad..03881c3ccc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save-and-schedule.action.ts @@ -13,6 +13,6 @@ export class UmbSaveAndScheduleDocumentWorkspaceAction extends UmbWorkspaceActio const document = this.workspaceContext.getData(); // TODO: handle errors if (!document) return; - this.workspaceContext.repository.saveAndSchedule(); + //this.workspaceContext.repository.saveAndSchedule(); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts index e431f442bf..4c04fa1378 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts @@ -1,9 +1,8 @@ -import { css, html, customElement, property, repeat, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, repeat, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { UmbDocumentItemModel } from '@umbraco-cms/backoffice/document'; import { UmbDocumentItemRepository } from '@umbraco-cms/backoffice/document'; -import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDocumentItemModel } from 'src/packages/documents/documents/repository/item/types'; @customElement('umb-user-document-start-node') export class UmbUserDocumentStartNodeElement extends UmbLitElement { @@ -32,10 +31,11 @@ export class UmbUserDocumentStartNodeElement extends UmbLitElement { return repeat( this._displayValue, - (item) => item.id, + (item) => item.unique, (item) => { return html` - + + `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts index ad1b7bc408..ecd5582496 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts @@ -34,7 +34,8 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { (item) => item.id, (item) => { return html` - + + `; From 093ba992653fe1d8af44905a03f0c8b88c2e0af3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 26 Jan 2024 13:40:33 +0100 Subject: [PATCH 649/786] mapping --- .../input-tree-picker-source.element.ts | 2 +- .../input-document-picker-root.element.ts | 31 ++++++++++--------- .../workspace/document-workspace.context.ts | 6 ++-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index 4d8a8ac9ff..79207bb441 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -77,7 +77,7 @@ export class UmbInputTreePickerSourceElement extends FormControlMixin(UmbLitElem #onIdChange(event: CustomEvent) { switch (this.type) { case 'content': - this.nodeId = (event.target).nodeId; + this.nodeId = (event.target).unique; break; case 'media': case 'member': diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 68b5ab60b3..f3bad68655 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -1,4 +1,5 @@ import { UmbDocumentPickerContext } from '../input-document/input-document.context.js'; +import type { UmbDocumentItemModel } from '../../repository/index.js'; import { html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -6,21 +7,21 @@ import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend- @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { - public get nodeId(): string | null | undefined { + public get unique(): string | null | undefined { return this.#documentPickerContext.getSelection()[0]; } - public set nodeId(id: string | null | undefined) { - const selection = id ? [id] : []; + public set unique(unique: string | null | undefined) { + const selection = unique ? [unique] : []; this.#documentPickerContext.setSelection(selection); } @property() - public set value(id: string) { - this.nodeId = id; + public set value(unique: string) { + this.unique = unique; } @state() - private _items?: Array; + private _items?: Array; #documentPickerContext = new UmbDocumentPickerContext(this); @@ -50,7 +51,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl ? html` ${repeat( this._items, - (item) => item.id, + (item) => item.unique, (item) => this._renderItem(item), )} ` @@ -60,7 +61,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl } #renderButtons() { - if (this.nodeId) return; + if (this.unique) return; //TODO: Dynamic paths return html` @@ -75,18 +76,20 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl `; } - private _renderItem(item: DocumentItemResponseModel) { - if (!item.id) return; + private _renderItem(item: UmbDocumentItemModel) { + if (!item.unique) return; + // TODO: get correct variant name + const name = item.variants[0].name; return html` - + - this.#documentPickerContext.openPicker()} label="Edit document ${item.name}" + this.#documentPickerContext.openPicker()} label="Edit document ${name}" >Edit this.#documentPickerContext.requestRemoveItem(item.id!)} - label="Remove document ${item.name}" + @click=${() => this.#documentPickerContext.requestRemoveItem(item.unique)} + label="Remove document ${name}" >Remove diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index a6463c0d52..6b78354ec9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -33,8 +33,8 @@ export class UmbDocumentWorkspaceContext return this.#getDataPromise; } - readonly unique = this.#currentData.asObservablePart((data) => data?.id); - readonly contentTypeId = this.#currentData.asObservablePart((data) => data?.documentType.id); + readonly unique = this.#currentData.asObservablePart((data) => data?.unique); + readonly contentTypeUnique = this.#currentData.asObservablePart((data) => data?.documentType.unique); readonly variants = this.#currentData.asObservablePart((data) => data?.variants || []); readonly urls = this.#currentData.asObservablePart((data) => data?.urls || []); @@ -47,7 +47,7 @@ export class UmbDocumentWorkspaceContext // TODO: Get Workspace Alias via Manifest. super(host, 'Umb.Workspace.Document'); - this.observe(this.contentTypeId, (id) => this.structure.loadType(id)); + this.observe(this.contentTypeUnique, (unique) => this.structure.loadType(unique)); /* TODO: Make something to ensure all variants are present in data? Seems like a good idea?. From 79a9642282e9e06e7d252e2b175f8f01bf8b7f21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:42:33 +0100 Subject: [PATCH 650/786] reuse code of mergeExtensionsWithKinds --- .../registry/extension.registry.ts | 138 +++++------------- 1 file changed, 40 insertions(+), 98 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 44966aeac2..6bba87eb9f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -199,30 +199,47 @@ export class UmbExtensionRegistry< ) as unknown as Observable>; } + #mergeExtensionWithKinds([ext, kinds]) { + // Specific Extension Meta merge (does not merge conditions) + if (ext) { + // Since we don't have the type up front in this request, we will just get all kinds here and find the matching one: + const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; + // TODO: This check can go away when making a find kind based on type and kind. + if (baseManifest) { + const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; + if ((baseManifest as any).meta) { + merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; + } + return merged; + } + } + return ext; + } + + #mergeExtensionsWithKinds([exts, kinds]) { + exts + .map((ext) => { + // Specific Extension Meta merge (does not merge conditions) + const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; + if (baseManifest) { + const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; + if ((baseManifest as any).meta) { + merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; + } + return merged; + } + return ext; + }) + .sort(sortExtensions); + } + byAlias(alias: string) { return this.extensions.pipe( map((exts) => exts.find((ext) => ext.alias === alias)), distinctUntilChanged(extensionSingleMemoization), switchMap((ext) => { if (ext?.kind) { - return this.#kindsOfType(ext.type).pipe( - map((kinds) => { - // Specific Extension Meta merge (does not merge conditions) - if (ext) { - // Since we dont have the type up front in this request, we will just get all kinds here and find the matching one: - const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; - // TODO: This check can go away when making a find kind based on type and kind. - if (baseManifest) { - const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; - if ((baseManifest as any).meta) { - merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; - } - return merged; - } - } - return ext; - }), - ); + return this.#kindsOfType(ext.type).pipe(map((kinds) => this.#mergeExtensionWithKinds([ext, kinds]))); } return of(ext); }), @@ -246,21 +263,7 @@ export class UmbExtensionRegistry< ), this.#kindsOfType(type), ]).pipe( - map(([ext, kinds]) => { - // TODO: share one merge function between the different methods of this class: - // Specific Extension Meta merge (does not merge conditions) - if (ext) { - const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; - if (baseManifest) { - const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; - if ((baseManifest as any).meta) { - merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; - } - return merged; - } - } - return ext; - }), + map(this.#mergeExtensionWithKinds), distinctUntilChanged(extensionAndKindMatchSingleMemoization), ) as Observable; } @@ -280,22 +283,7 @@ export class UmbExtensionRegistry< ), this.#kindsOfType(type), ]).pipe( - map(([exts, kinds]) => - exts - .map((ext) => { - // Specific Extension Meta merge (does not merge conditions) - const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; - if (baseManifest) { - const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; - if ((baseManifest as any).meta) { - merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; - } - return merged; - } - return ext; - }) - .sort(sortExtensions), - ), + map(this.#mergeExtensionsWithKinds), distinctUntilChanged(extensionAndKindMatchArrayMemoization), ) as Observable>; } @@ -323,21 +311,7 @@ export class UmbExtensionRegistry< ), this.#kindsOfType(type), ]).pipe( - map(([ext, kinds]) => { - // TODO: share one merge function between the different methods of this class: - // Specific Extension Meta merge (does not merge conditions) - if (ext) { - const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; - if (baseManifest) { - const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; - if ((baseManifest as any).meta) { - merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; - } - return merged; - } - } - return ext; - }), + map(this.#mergeExtensionsWithKinds), distinctUntilChanged(extensionAndKindMatchSingleMemoization), ) as Observable; } @@ -352,22 +326,7 @@ export class UmbExtensionRegistry< T extends ManifestBase = SpecificManifestTypeOrManifestBase, >(type: Key) { return combineLatest([this.#extensionsOfType(type), this.#kindsOfType(type)]).pipe( - map(([exts, kinds]) => - exts - .map((ext) => { - // Specific Extension Meta merge (does not merge conditions) - const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; - if (baseManifest) { - const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; - if ((baseManifest as any).meta) { - merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; - } - return merged; - } - return ext; - }) - .sort(sortExtensions), - ), + map(this.#mergeExtensionsWithKinds), distinctUntilChanged(extensionAndKindMatchArrayMemoization), ) as Observable>; } @@ -383,24 +342,7 @@ export class UmbExtensionRegistry< */ byTypes(types: string[]): Observable> { return combineLatest([this.#extensionsOfTypes(types), this.#kindsOfTypes(types)]).pipe( - map(([exts, kinds]) => - exts - .map((ext) => { - // Specific Extension Meta merge (does not merge conditions) - if (ext) { - const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; - if (baseManifest) { - const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; - if ((baseManifest as any).meta) { - merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; - } - return merged; - } - } - return ext; - }) - .sort(sortExtensions), - ), + map(this.#mergeExtensionsWithKinds), distinctUntilChanged(extensionAndKindMatchArrayMemoization), ) as Observable>; } From 234884638bd3c50dbc34cb80a8667922b593dbd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 13:50:21 +0100 Subject: [PATCH 651/786] JSDocs --- .../registry/extension.registry.ts | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index 6bba87eb9f..ff27dad3cc 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -233,6 +233,11 @@ export class UmbExtensionRegistry< .sort(sortExtensions); } + /** + * Get an observable that provides extensions matching the given alias. + * @param alias {string} - The alias of the extensions to get. + * @returns {Observable} - An observable of the extension that matches the alias. + */ byAlias(alias: string) { return this.extensions.pipe( map((exts) => exts.find((ext) => ext.alias === alias)), @@ -252,6 +257,12 @@ export class UmbExtensionRegistry< */ getByAlias = this.byAlias.bind(this); + /** + * Get an observable that provides extensions matching the given type and alias. + * @param type {string} - The type of the extensions to get. + * @param alias {string} - The alias of the extensions to get. + * @returns {Observable} - An observable of the extensions that matches the type and alias. + */ byTypeAndAlias< Key extends keyof ManifestTypeMap | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase, @@ -293,12 +304,12 @@ export class UmbExtensionRegistry< getByTypeAndAliases = this.byTypeAndAliases.bind(this); /** - * Get an observable of an extension by type and a given filter method. + * Get an observable of extensions by type and a given filter method. * This will return the all extensions that matches the type and which filter method returns true. * The filter method will be called for each extension manifest of the given type, and the first argument to it is the extension manifest. * @param type {string} - The type of the extension to get * @param filter {(ext: T): void} - The filter method to use to filter the extensions - * @returns {Observable} - An observable of the extensions that matches the type and filter method + * @returns {Observable>} - An observable of the extensions that matches the type and filter method */ byTypeAndFilter< Key extends keyof ManifestTypeMap | string, @@ -307,13 +318,13 @@ export class UmbExtensionRegistry< return combineLatest([ this.extensions.pipe( map((exts) => exts.find((ext) => ext.type === type && filter(ext as unknown as T))), - distinctUntilChanged(extensionSingleMemoization), + distinctUntilChanged(extensionArrayMemoization), ), this.#kindsOfType(type), ]).pipe( map(this.#mergeExtensionsWithKinds), - distinctUntilChanged(extensionAndKindMatchSingleMemoization), - ) as Observable; + distinctUntilChanged(extensionAndKindMatchArrayMemoization), + ) as Observable>; } /** From 9d98d172649e8ff37fca158848c1395ed7643429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 14:34:53 +0100 Subject: [PATCH 652/786] mega fix of types and test --- .../registry/extension.registry.test.ts | 25 +++++++++++- .../registry/extension.registry.ts | 40 ++++++++++++------- 2 files changed, 48 insertions(+), 17 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts index bd58bdb34d..3e542380fc 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts @@ -66,10 +66,20 @@ describe('UmbExtensionRegistry', () => { expect(extensionRegistry.isRegistered('Umb.Test.Section.1')).to.be.true; }); + it('should get several extensions by type', (done) => { + extensionRegistry + .byType('section') + .subscribe((extensions) => { + expect(extensions.length).to.eq(3); + done(); + }) + .unsubscribe(); + }); + it('should get an extension by alias', (done) => { const alias = 'Umb.Test.Section.1'; extensionRegistry - .getByTypeAndAlias('section', alias) + .byTypeAndAlias('section', alias) .subscribe((extension) => { expect(extension?.alias).to.eq(alias); done(); @@ -77,6 +87,17 @@ describe('UmbExtensionRegistry', () => { .unsubscribe(); }); + it('should get an extension by type and filter', (done) => { + extensionRegistry + .byTypeAndFilter('section', (ext) => ext.weight === 25) + .subscribe((extensions) => { + expect(extensions.length).to.eq(1); + expect(extensions[0].alias).to.eq('Umb.Test.Section.3'); + done(); + }) + .unsubscribe(); + }); + it('should get an extension by aliases', (done) => { const aliases = ['Umb.Test.Section.1', 'Umb.Test.Section.2']; extensionRegistry @@ -89,7 +110,7 @@ describe('UmbExtensionRegistry', () => { .unsubscribe(); }); - describe('getByType', () => { + describe('byType', () => { const type = 'section'; it('should get all extensions by type', (done) => { diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts index ff27dad3cc..4729708047 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.ts @@ -176,9 +176,13 @@ export class UmbExtensionRegistry< distinctUntilChanged(extensionArrayMemoization), ); } - #extensionsOfType | string>(type: Key) { + + #extensionsOfType< + Key extends keyof ManifestTypeMap | string, + T extends ManifestBase = SpecificManifestTypeOrManifestBase, + >(type: Key) { return this.extensions.pipe( - map((exts) => exts.filter((ext) => ext.type === type)), + map((exts) => exts.filter((ext) => ext.type === type) as unknown as T[]), distinctUntilChanged(extensionArrayMemoization), ); } @@ -194,30 +198,36 @@ export class UmbExtensionRegistry< types: Array, ): Observable> { return this.extensions.pipe( - map((exts) => exts.filter((ext) => types.indexOf(ext.type) !== -1)), + map((exts) => exts.filter((ext) => types.indexOf(ext.type) !== -1) as unknown as Array), distinctUntilChanged(extensionArrayMemoization), - ) as unknown as Observable>; + ); } - #mergeExtensionWithKinds([ext, kinds]) { + #mergeExtensionWithKinds>([ + ext, + kinds, + ]: [ExtensionType | undefined, Array]): ExtensionType | undefined { // Specific Extension Meta merge (does not merge conditions) if (ext) { // Since we don't have the type up front in this request, we will just get all kinds here and find the matching one: const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; // TODO: This check can go away when making a find kind based on type and kind. if (baseManifest) { - const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext } as any; + const merged = { __isMatchedWithKind: true, ...baseManifest, ...ext }; if ((baseManifest as any).meta) { - merged.meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; + (merged as any).meta = { ...(baseManifest as any).meta, ...(ext as any).meta }; } - return merged; + return merged as ExtensionType; } } return ext; } - #mergeExtensionsWithKinds([exts, kinds]) { - exts + #mergeExtensionsWithKinds>([ + exts, + kinds, + ]: [Array, Array]): ExtensionType[] { + return exts .map((ext) => { // Specific Extension Meta merge (does not merge conditions) const baseManifest = kinds.find((kind) => kind.matchKind === ext.kind)?.manifest; @@ -289,7 +299,7 @@ export class UmbExtensionRegistry< >(type: Key, aliases: Array) { return combineLatest([ this.extensions.pipe( - map((exts) => exts.filter((ext) => ext.type === type && aliases.indexOf(ext.alias) !== -1)), + map((exts) => exts.filter((ext) => ext.type === type && aliases.indexOf(ext.alias) !== -1) as unknown as T[]), distinctUntilChanged(extensionArrayMemoization), ), this.#kindsOfType(type), @@ -309,7 +319,7 @@ export class UmbExtensionRegistry< * The filter method will be called for each extension manifest of the given type, and the first argument to it is the extension manifest. * @param type {string} - The type of the extension to get * @param filter {(ext: T): void} - The filter method to use to filter the extensions - * @returns {Observable>} - An observable of the extensions that matches the type and filter method + * @returns {Observable>} - An observable of the extensions that matches the type and filter method */ byTypeAndFilter< Key extends keyof ManifestTypeMap | string, @@ -317,14 +327,14 @@ export class UmbExtensionRegistry< >(type: Key, filter: (ext: T) => boolean) { return combineLatest([ this.extensions.pipe( - map((exts) => exts.find((ext) => ext.type === type && filter(ext as unknown as T))), + map((exts) => exts.filter((ext) => ext.type === type && filter(ext as unknown as T)) as unknown as T[]), distinctUntilChanged(extensionArrayMemoization), ), this.#kindsOfType(type), ]).pipe( map(this.#mergeExtensionsWithKinds), distinctUntilChanged(extensionAndKindMatchArrayMemoization), - ) as Observable>; + ) as Observable>; } /** @@ -352,7 +362,7 @@ export class UmbExtensionRegistry< * @returns {Observable} - An observable of the extensions that matches the types. */ byTypes(types: string[]): Observable> { - return combineLatest([this.#extensionsOfTypes(types), this.#kindsOfTypes(types)]).pipe( + return combineLatest([this.#extensionsOfTypes(types), this.#kindsOfTypes(types)]).pipe( map(this.#mergeExtensionsWithKinds), distinctUntilChanged(extensionAndKindMatchArrayMemoization), ) as Observable>; From da21654f2de5742dfdbaa30516619df6e4136556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 26 Jan 2024 14:39:11 +0100 Subject: [PATCH 653/786] more test --- .../registry/extension.registry.test.ts | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts index 3e542380fc..68e00ddbd7 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/registry/extension.registry.test.ts @@ -47,6 +47,7 @@ describe('UmbExtensionRegistry', () => { type: 'workspace', name: 'test-editor-1', alias: 'Umb.Test.Editor.1', + weight: 2, meta: { entityType: 'testEntity', }, @@ -77,6 +78,17 @@ describe('UmbExtensionRegistry', () => { }); it('should get an extension by alias', (done) => { + const alias = 'Umb.Test.Section.1'; + extensionRegistry + .byAlias(alias) + .subscribe((extension) => { + expect(extension?.alias).to.eq(alias); + done(); + }) + .unsubscribe(); + }); + + it('should get an extension by type and alias', (done) => { const alias = 'Umb.Test.Section.1'; extensionRegistry .byTypeAndAlias('section', alias) @@ -190,6 +202,37 @@ describe('UmbExtensionRegistry', () => { .unsubscribe(); }); }); + + describe('byTypes', () => { + const types = ['section', 'workspace']; + + it('should get all extensions of the given types', (done) => { + extensionRegistry + .byTypes(types) + .subscribe((extensions) => { + expect(extensions).to.have.lengthOf(4); + expect(extensions?.[0]?.type).to.eq('section'); + expect(extensions?.[1]?.type).to.eq('section'); + expect(extensions?.[2]?.type).to.eq('workspace'); + expect(extensions?.[3]?.type).to.eq('section'); + done(); + }) + .unsubscribe(); + }); + + it('should return extensions ordered by weight', (done) => { + extensionRegistry + .byTypes(types) + .subscribe((extensions) => { + expect(extensions?.[0]?.weight).to.eq(200); + expect(extensions?.[1]?.weight).to.eq(25); + expect(extensions?.[2]?.weight).to.eq(2); + expect(extensions?.[3]?.weight).to.eq(1); + done(); + }) + .unsubscribe(); + }); + }); }); describe('UmbExtensionRegistry with kinds', () => { From e8dfaa0281f5e4a704bc1fa323a5c6d0b3b289b2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 26 Jan 2024 20:31:35 +0100 Subject: [PATCH 654/786] add document type structure repo --- .../data/document-type/document-type.db.ts | 10 +++ .../src/mocks/handlers/document-type/index.ts | 3 +- .../document-type/structure.handlers.ts | 21 +++++ .../src/packages/core/content-type/index.ts | 1 + ...nt-type-structure-data-source.interface.ts | 11 +++ .../content-type-structure-repository-base.ts | 57 ++++++++++++++ ...ent-type-structure-repository.interface.ts | 1 + ...-type-structure-server-data-source-base.ts | 77 +++++++++++++++++++ .../core/content-type/structure/index.ts | 4 + .../collection-data-source.interface.ts | 4 +- ...ata-source-paged-response-data.function.ts | 12 +-- ...nd-data-source-paged-response-data.test.ts | 4 +- .../core/repository/data-source/types.ts | 2 +- .../data-source/tree-data-source.interface.ts | 6 +- .../tree-server-data-source-base.ts | 10 +-- .../tree-item.context.interface.ts | 4 +- .../core/tree/tree-repository.interface.ts | 6 +- .../src/packages/core/tree/tree.context.ts | 4 +- .../detail/document-type-detail.repository.ts | 4 + .../document-types/repository/index.ts | 1 + .../document-type-structure.repository.ts | 9 +++ ...ument-type-structure.server.data-source.ts | 36 +++++++++ .../repository/structure/index.ts | 3 + .../repository/structure/manifests.ts | 13 ++++ .../repository/structure/types.ts | 6 ++ .../templates/repository/sources/index.ts | 6 +- 26 files changed, 285 insertions(+), 30 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index 2511bb3108..a6c35060e8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -27,6 +27,16 @@ class UmbDocumentTypeMockDB extends UmbEntityMockDbBase) { super(data); } + + getAllowedChildren(id: string | null): Array<{ id: string }> { + return []; + } + + getAllowedAtRoot(): Array<{ id: string }> { + const mockItems = this.data.filter((item) => item.allowedAsRoot); + debugger; + return []; + } } const createMockDocumentTypeFolderMapper = (request: CreateFolderRequestModel): UmbMockDocumentTypeModel => { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts index c905d34111..35a0b233f7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/index.ts @@ -2,5 +2,6 @@ import { treeHandlers } from './tree.handlers.js'; import { detailHandlers } from './detail.handlers.js'; import { itemHandlers } from './item.handlers.js'; import { folderHandlers } from './folder.handlers.js'; +import { structureHandlers } from './structure.handlers.js'; -export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...detailHandlers]; +export const handlers = [...treeHandlers, ...itemHandlers, ...folderHandlers, ...structureHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts new file mode 100644 index 0000000000..18448127db --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts @@ -0,0 +1,21 @@ +const { rest } = window.MockServiceWorker; +import { umbDocumentTypeMockDb } from '../../data/document-type/document-type.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const structureHandlers = [ + rest.get(umbracoPath(`${UMB_SLUG}/:id/allowed-children`), (req, res, ctx) => { + const id = req.params.id as string; + debugger; + if (!id) return res(ctx.status(400)); + const response = umbDocumentTypeMockDb.getAllowedChildren(id); + debugger; + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`${UMB_SLUG}/allowed-at-root`), (req, res, ctx) => { + const response = umbDocumentTypeMockDb.getAllowedAtRoot(); + debugger; + return res(ctx.status(200), ctx.json(response)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts index a8e7305030..f2eddad99c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/index.ts @@ -3,3 +3,4 @@ export * from './content-type-property-structure-helper.class.js'; export * from './content-type-structure-manager.class.js'; export * from './types.js'; export * from './components/index.js'; +export * from './structure/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts new file mode 100644 index 0000000000..20b0d46305 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts @@ -0,0 +1,11 @@ +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { DataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; + +export interface UmbContentTypeStructureDataSourceConstructor { + new (host: UmbControllerHost): UmbContentTypeStructureDataSource; +} + +export interface UmbContentTypeStructureDataSource { + allowedAtRoot(): Promise>>; + allowedChildrenOf(unique: string): Promise>>; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts new file mode 100644 index 0000000000..450645b9a6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts @@ -0,0 +1,57 @@ +import type { UmbContentTypeStructureRepository } from './content-type-structure-repository.interface.js'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbItemStore } from '@umbraco-cms/backoffice/store'; +import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; + +export abstract class UmbContentTypeStructureRepositoryBase + extends UmbRepositoryBase + implements UmbContentTypeStructureRepository +{ + protected _init: Promise; + protected _itemStore?: UmbItemStore; + #itemSource: UmbItemDataSource; + + constructor( + host: UmbControllerHost, + itemSource: UmbItemDataSourceConstructor, + itemStoreContextAlias: string | UmbContextToken, + ) { + super(host); + this.#itemSource = new itemSource(host); + + this._init = this.consumeContext(itemStoreContextAlias, (instance) => { + this._itemStore = instance as UmbItemStore; + }).asPromise(); + } + + /** + * Requests the items for the given uniques + * @param {Array} uniques + * @return {*} + * @memberof UmbItemRepositoryBase + */ + async requestItems(uniques: Array) { + if (!uniques) throw new Error('Uniques are missing'); + await this._init; + + const { data, error } = await this.#itemSource.getItems(uniques); + + if (data) { + this._itemStore!.appendItems(data); + } + + return { data, error, asObservable: () => this._itemStore!.items(uniques) }; + } + + /** + * Returns a promise with an observable of the items for the given uniques + * @param {Array} uniques + * @return {*} + * @memberof UmbItemRepositoryBase + */ + async items(uniques: Array) { + await this._init; + return this._itemStore!.items(uniques); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts new file mode 100644 index 0000000000..2c768a1ece --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts @@ -0,0 +1 @@ +export interface UmbContentTypeStructureRepository {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts new file mode 100644 index 0000000000..4be68fb1e8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts @@ -0,0 +1,77 @@ +import type { UmbPagedModel } from '../../repository/data-source/types.js'; +import type { UmbContentTypeStructureDataSource } from './content-type-structure-data-source.interface.js'; +import type { + AllowedContentTypeModel, + CancelablePromise, + ItemResponseModelBaseModel, +} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export interface UmbContentTypeStructureServerDataSourceBaseArgs< + ServerItemType extends ItemResponseModelBaseModel, + ClientItemType extends { unique: string }, +> { + getAllowedAtRoot: () => CancelablePromise>; + getAllowedChildrenOf: (unique: string) => CancelablePromise>; + mapper: (item: ServerItemType) => ClientItemType; +} + +export abstract class UmbContentTypeStructureServerDataSourceBase< + ServerItemType extends AllowedContentTypeModel, + ClientItemType extends { unique: string }, +> implements UmbContentTypeStructureDataSource +{ + #host; + #getAllowedAtRoot; + #getAllowedChildrenOf; + #mapper; + + /** + * Creates an instance of UmbContentTypeStructureServerDataSourceBase. + * @param {UmbControllerHost} host + * @memberof UmbItemServerDataSourceBase + */ + constructor( + host: UmbControllerHost, + args: UmbContentTypeStructureServerDataSourceBaseArgs, + ) { + this.#host = host; + this.#getAllowedAtRoot = args.getAllowedAtRoot; + this.#getAllowedChildrenOf = args.getAllowedChildrenOf; + this.#mapper = args.mapper; + } + + /** + * Returns a promise with the allowed content types at root + * @return {*} + * @memberof UmbContentTypeStructureServerDataSourceBase + */ + async allowedAtRoot() { + const { data, error } = await tryExecuteAndNotify(this.#host, this.#getAllowedAtRoot()); + + if (data) { + const items = data.items.map((item) => this.#mapper(item)); + return { data: { items, total: data.total } }; + } + + return { error }; + } + + /** + * Returns a promise with the allowed content types for the given unique + * @param {string} unique + * @return {*} + * @memberof UmbContentTypeStructureServerDataSourceBase + */ + async allowedChildrenOf(unique: string) { + const { data, error } = await tryExecuteAndNotify(this.#host, this.#getAllowedChildrenOf(unique)); + + if (data) { + const items = data.items.map((item) => this.#mapper(item)); + return { data: { items, total: data.total } }; + } + + return { error }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/index.ts new file mode 100644 index 0000000000..d1a5aa8c6b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/index.ts @@ -0,0 +1,4 @@ +export * from './content-type-structure-repository-base.js'; +export * from './content-type-structure-repository.interface.js'; +export * from './content-type-structure-server-data-source-base.js'; +export * from './content-type-structure-data-source.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/collection-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/collection-data-source.interface.ts index 8b592ef855..ab098ed14b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/collection-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/collection-data-source.interface.ts @@ -1,6 +1,6 @@ import type { DataSourceResponse } from '../index.js'; -import type { UmbPagedData } from './types.js'; +import type { UmbPagedModel } from './types.js'; export interface UmbCollectionDataSource { - getCollection(filter: FilterType): Promise>>; + getCollection(filter: FilterType): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts index 43493a49ec..e3f7bfcc61 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.function.ts @@ -1,13 +1,13 @@ -import type { DataSourceResponse, UmbPagedData } from '../index.js'; +import type { DataSourceResponse, UmbPagedModel } from '../index.js'; import type { Diff } from '@umbraco-cms/backoffice/utils'; /** * This function extends the data set of a paged DataSourceResponse. * Provide the desired type as a generic type parameter. * This will require the appendData argument to fill in the missing properties of the items. - * @param response {DataSourceResponse>} + * @param response {DataSourceResponse>} * @param appendData {object} Additional properties to append to the data set. - * @returns {DataSourceResponse>} + * @returns {DataSourceResponse>} * * @example * @@ -25,10 +25,10 @@ export function extendDataSourcePagedResponseData< // Maybe this Omit<..., "$ype"> can be removed, but for now it kept showing up as a difference, though its not a difference on the two types. ToType = IncomingDataType & ExtendedDataType, >( - response: DataSourceResponse>, + response: DataSourceResponse>, appendData: MissingPropsType, -): DataSourceResponse> { - if (response.data === undefined) return response as unknown as DataSourceResponse>; +): DataSourceResponse> { + if (response.data === undefined) return response as unknown as DataSourceResponse>; return { ...response, data: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts index 61503b42ad..533f637da3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/extend-data-source-paged-response-data.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import type { UmbPagedData } from './types.js'; +import type { UmbPagedModel } from './types.js'; import type { DataSourceResponse } from './data-source-response.interface.js'; import { extendDataSourcePagedResponseData } from './extend-data-source-paged-response-data.function.js'; @@ -10,7 +10,7 @@ describe('extendDataSourcePagedResponseData', () => { describe('Extending data set', () => { it('has an controllerAlias property', () => { - const response: DataSourceResponse> = { + const response: DataSourceResponse> = { data: { items: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/types.ts index 62454b9ebe..9825f3c650 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/data-source/types.ts @@ -1,4 +1,4 @@ -export interface UmbPagedData { +export interface UmbPagedModel { total: number; items: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts index aa718fa335..e9a11b277b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-data-source.interface.ts @@ -1,5 +1,5 @@ import type { UmbTreeItemModelBase } from '../types.js'; -import type { UmbPagedData, DataSourceResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbPagedModel, DataSourceResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbTreeDataSourceConstructor { @@ -7,6 +7,6 @@ export interface UmbTreeDataSourceConstructor { - getRootItems(): Promise>>; - getChildrenOf(parentUnique: string | null): Promise>>; + getRootItems(): Promise>>; + getChildrenOf(parentUnique: string | null): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts index b3f9452f7b..47954ee7c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts @@ -3,14 +3,14 @@ import type { UmbTreeDataSource } from './tree-data-source.interface.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; import type { CancelablePromise, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; export interface UmbTreeServerDataSourceBaseArgs< ServerTreeItemType extends TreeItemPresentationModel, ClientTreeItemType extends UmbTreeItemModelBase, > { - getRootItems: () => CancelablePromise>; - getChildrenOf: (parentUnique: string | null) => CancelablePromise>; + getRootItems: () => CancelablePromise>; + getChildrenOf: (parentUnique: string | null) => CancelablePromise>; mapper: (item: ServerTreeItemType) => ClientTreeItemType; } @@ -26,8 +26,8 @@ export abstract class UmbTreeServerDataSourceBase< > implements UmbTreeDataSource { #host: UmbControllerHost; - #getRootItems: () => CancelablePromise>; - #getChildrenOf: (parentUnique: string | null) => CancelablePromise>; + #getRootItems: () => CancelablePromise>; + #getChildrenOf: (parentUnique: string | null) => CancelablePromise>; #mapper: (item: ServerTreeItemType) => ClientTreeItemType; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts index 9dfe9a8068..7f58939bea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item-default/tree-item.context.interface.ts @@ -1,7 +1,7 @@ import type { UmbTreeItemModelBase } from '../types.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; export interface UmbTreeItemContext { unique?: string | null; @@ -18,7 +18,7 @@ export interface UmbTreeItemContext { setTreeItem(treeItem: TreeItemType | undefined): void; requestChildren(): Promise<{ - data?: UmbPagedData | undefined; + data?: UmbPagedModel | undefined; error?: ProblemDetails | undefined; asObservable?: () => Observable; }>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts index d6e9e36b8e..3eca4d2847 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts @@ -1,5 +1,5 @@ import type { UmbTreeItemModelBase } from './types.js'; -import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; @@ -14,7 +14,7 @@ export interface UmbTreeRepository< }>; requestTreeItemsOf: (parentUnique: string | null) => Promise<{ - data?: UmbPagedData; + data?: UmbPagedModel; error?: ProblemDetails; asObservable?: () => Observable; }>; @@ -26,7 +26,7 @@ export interface UmbTreeRepository< because it is a server decision to split them */ requestRootTreeItems: () => Promise<{ - data?: UmbPagedData; + data?: UmbPagedModel; error?: ProblemDetails; asObservable?: () => Observable; }>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts index 8702857f44..7a19bfed9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree.context.ts @@ -3,7 +3,7 @@ import type { UmbTreeItemModelBase } from './types.js'; import type { UmbTreeRepository } from './tree-repository.interface.js'; import { type UmbActionEventContext, UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import type { UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; import { type ManifestRepository, type ManifestTree, @@ -21,7 +21,7 @@ import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; export interface UmbTreeContext extends UmbBaseController { selection: UmbSelectionManager; requestChildrenOf: (parentUnique: string | null) => Promise<{ - data?: UmbPagedData; + data?: UmbPagedModel; error?: ProblemDetails; asObservable?: () => Observable; }>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts index b4ad681fa0..9556b01dd3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts @@ -7,4 +7,8 @@ export class UmbDocumentTypeDetailRepository extends UmbDetailRepositoryBase> {} + + allowedChildren(id: string): Promise> {} } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/index.ts index e94276bc0a..5abd54bbee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/index.ts @@ -1,2 +1,3 @@ export * from './detail/index.js'; export * from './item/index.js'; +export * from './structure/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts new file mode 100644 index 0000000000..20e12cab58 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts @@ -0,0 +1,9 @@ +import { UmbDocumentTypeStructureServerDataSource } from './document-type-structure.server.data-source.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbContentTypeStructureRepositoryBase } from '@umbraco-cms/backoffice/content-type'; + +export class UmbDocumentTypeStructureRepository extends UmbContentTypeStructureRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbDocumentTypeStructureServerDataSource); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts new file mode 100644 index 0000000000..4de6fc8530 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts @@ -0,0 +1,36 @@ +import type { UmbAllowedDocumentTypeModel } from './types.js'; +import type { AllowedDocumentTypeModel } from '@umbraco-cms/backoffice/backend-api'; +import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import { UmbContentTypeStructureServerDataSourceBase } from '@umbraco-cms/backoffice/content-type'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +/** + * + * @export + * @class UmbDocumentTypeStructureServerDataSource + * @extends {UmbContentTypeStructureServerDataSourceBase} + */ +export class UmbDocumentTypeStructureServerDataSource extends UmbContentTypeStructureServerDataSourceBase< + AllowedDocumentTypeModel, + UmbAllowedDocumentTypeModel +> { + constructor(host: UmbControllerHost) { + super(host, { getAllowedAtRoot, getAllowedChildrenOf, mapper }); + } +} + +// eslint-disable-next-line local-rules/no-direct-api-import +const getAllowedAtRoot = () => DocumentTypeResource.getDocumentTypeAllowedAtRoot({}); + +const getAllowedChildrenOf = (unique: string) => + // eslint-disable-next-line local-rules/no-direct-api-import + DocumentTypeResource.getDocumentTypeByIdAllowedChildren({ id: unique }); + +const mapper = (item: AllowedDocumentTypeModel): UmbAllowedDocumentTypeModel => { + return { + unique: item.id, + name: item.name, + description: item.description || null, + icon: item.icon || null, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/index.ts new file mode 100644 index 0000000000..0c4b416c2f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/index.ts @@ -0,0 +1,3 @@ +export { UmbDocumentTypeStructureRepository } from './document-type-structure.repository.js'; +export { UMB_DOCUMENT_TYPE_STRUCTURE_REPOSITORY_ALIAS } from './manifests.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/manifests.ts new file mode 100644 index 0000000000..182cfe012e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/manifests.ts @@ -0,0 +1,13 @@ +import { UmbDocumentTypeStructureRepository } from './document-type-structure.repository.js'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_DOCUMENT_TYPE_STRUCTURE_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType.Structure'; + +const structureRepository: ManifestRepository = { + type: 'repository', + alias: UMB_DOCUMENT_TYPE_STRUCTURE_REPOSITORY_ALIAS, + name: 'Document Type Structure Repository', + api: UmbDocumentTypeStructureRepository, +}; + +export const manifests = [structureRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/types.ts new file mode 100644 index 0000000000..f0299ca6d9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/types.ts @@ -0,0 +1,6 @@ +export interface UmbAllowedDocumentTypeModel { + unique: string; + name: string; + description: string | null; + icon: string | null; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts index f13fa00fab..9d339c4fda 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/sources/index.ts @@ -1,9 +1,9 @@ -import type { DataSourceResponse, UmbPagedData } from '@umbraco-cms/backoffice/repository'; +import type { DataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; import type { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbEntityTreeItemModel } from '@umbraco-cms/backoffice/tree'; export interface TemplateTreeDataSource { - getRootItems(): Promise>>; - getChildrenOf(parentId: string): Promise>>; + getRootItems(): Promise>>; + getChildrenOf(parentId: string): Promise>>; getItems(ids: Array): Promise>; } From 7b0b02acc4697010b9bb2c9062babd3935492141 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 26 Jan 2024 21:14:22 +0100 Subject: [PATCH 655/786] clean up structure repo --- ...nt-type-structure-data-source.interface.ts | 4 +- .../content-type-structure-repository-base.ts | 55 ++++++------------- ...ent-type-structure-repository.interface.ts | 7 ++- ...-type-structure-server-data-source-base.ts | 14 ++--- .../item/item-server-data-source-base.ts | 6 +- .../tree-server-data-source-base.ts | 14 ++--- .../detail/document-type-detail.repository.ts | 4 -- .../document-type-structure.repository.ts | 3 +- .../create/create-document-modal.element.ts | 41 ++++++-------- 9 files changed, 60 insertions(+), 88 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts index 20b0d46305..55db3e55d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts @@ -6,6 +6,6 @@ export interface UmbContentTypeStructureDataSourceConstructor { } export interface UmbContentTypeStructureDataSource { - allowedAtRoot(): Promise>>; - allowedChildrenOf(unique: string): Promise>>; + getAllowedAtRoot(): Promise>>; + getAllowedChildrenOf(unique: string): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts index 450645b9a6..dc1ff8ccbc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts @@ -1,57 +1,38 @@ import type { UmbContentTypeStructureRepository } from './content-type-structure-repository.interface.js'; +import type { + UmbContentTypeStructureDataSource, + UmbContentTypeStructureDataSourceConstructor, +} from './content-type-structure-data-source.interface.js'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbItemStore } from '@umbraco-cms/backoffice/store'; -import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -export abstract class UmbContentTypeStructureRepositoryBase +export abstract class UmbContentTypeStructureRepositoryBase extends UmbRepositoryBase - implements UmbContentTypeStructureRepository + implements UmbContentTypeStructureRepository { - protected _init: Promise; - protected _itemStore?: UmbItemStore; - #itemSource: UmbItemDataSource; + #structureSource: UmbContentTypeStructureDataSource; - constructor( - host: UmbControllerHost, - itemSource: UmbItemDataSourceConstructor, - itemStoreContextAlias: string | UmbContextToken, - ) { + constructor(host: UmbControllerHost, structureSource: UmbContentTypeStructureDataSourceConstructor) { super(host); - this.#itemSource = new itemSource(host); - - this._init = this.consumeContext(itemStoreContextAlias, (instance) => { - this._itemStore = instance as UmbItemStore; - }).asPromise(); + this.#structureSource = new structureSource(host); } /** - * Requests the items for the given uniques - * @param {Array} uniques + * Returns a promise with the allowed content types at root * @return {*} - * @memberof UmbItemRepositoryBase + * @memberof UmbContentTypeStructureRepositoryBase */ - async requestItems(uniques: Array) { - if (!uniques) throw new Error('Uniques are missing'); - await this._init; - - const { data, error } = await this.#itemSource.getItems(uniques); - - if (data) { - this._itemStore!.appendItems(data); - } - - return { data, error, asObservable: () => this._itemStore!.items(uniques) }; + requestAllowedAtRoot() { + return this.#structureSource.getAllowedAtRoot(); } /** - * Returns a promise with an observable of the items for the given uniques - * @param {Array} uniques + * Returns a promise with the allowed children of a content type + * @param {string} unique * @return {*} - * @memberof UmbItemRepositoryBase + * @memberof UmbContentTypeStructureRepositoryBase */ - async items(uniques: Array) { - await this._init; - return this._itemStore!.items(uniques); + requestAllowedChildrenOf(unique: string) { + return this.#structureSource.getAllowedChildrenOf(unique); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts index 2c768a1ece..d949c9b583 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts @@ -1 +1,6 @@ -export interface UmbContentTypeStructureRepository {} +import type { DataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; + +export interface UmbContentTypeStructureRepository { + requestAllowedAtRoot(): Promise>>; + requestAllowedChildrenOf(unique: string): Promise>>; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts index 4be68fb1e8..2404249e94 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts @@ -1,10 +1,6 @@ import type { UmbPagedModel } from '../../repository/data-source/types.js'; import type { UmbContentTypeStructureDataSource } from './content-type-structure-data-source.interface.js'; -import type { - AllowedContentTypeModel, - CancelablePromise, - ItemResponseModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { AllowedContentTypeModel, ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -12,8 +8,8 @@ export interface UmbContentTypeStructureServerDataSourceBaseArgs< ServerItemType extends ItemResponseModelBaseModel, ClientItemType extends { unique: string }, > { - getAllowedAtRoot: () => CancelablePromise>; - getAllowedChildrenOf: (unique: string) => CancelablePromise>; + getAllowedAtRoot: () => Promise>; + getAllowedChildrenOf: (unique: string) => Promise>; mapper: (item: ServerItemType) => ClientItemType; } @@ -47,7 +43,7 @@ export abstract class UmbContentTypeStructureServerDataSourceBase< * @return {*} * @memberof UmbContentTypeStructureServerDataSourceBase */ - async allowedAtRoot() { + async getAllowedAtRoot() { const { data, error } = await tryExecuteAndNotify(this.#host, this.#getAllowedAtRoot()); if (data) { @@ -64,7 +60,7 @@ export abstract class UmbContentTypeStructureServerDataSourceBase< * @return {*} * @memberof UmbContentTypeStructureServerDataSourceBase */ - async allowedChildrenOf(unique: string) { + async getAllowedChildrenOf(unique: string) { const { data, error } = await tryExecuteAndNotify(this.#host, this.#getAllowedChildrenOf(unique)); if (data) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts index edc4125854..58c4f82503 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-server-data-source-base.ts @@ -1,5 +1,5 @@ import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import { CancelablePromise, ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -7,7 +7,7 @@ export interface UmbItemServerDataSourceBaseArgs< ServerItemType extends ItemResponseModelBaseModel, ClientItemType extends { unique: string }, > { - getItems: (uniques: Array) => CancelablePromise>; + getItems: (uniques: Array) => Promise>; mapper: (item: ServerItemType) => ClientItemType; } @@ -23,7 +23,7 @@ export abstract class UmbItemServerDataSourceBase< > implements UmbItemDataSource { #host: UmbControllerHost; - #getItems: (uniques: Array) => CancelablePromise>; + #getItems: (uniques: Array) => Promise>; #mapper: (item: ServerItemType) => ClientItemType; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts index 47954ee7c1..7ec894515a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data-source/tree-server-data-source-base.ts @@ -2,15 +2,15 @@ import type { UmbTreeItemModelBase } from '../types.js'; import type { UmbTreeDataSource } from './tree-data-source.interface.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import type { CancelablePromise, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; +import type { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbPagedModel } from '@umbraco-cms/backoffice/repository'; export interface UmbTreeServerDataSourceBaseArgs< ServerTreeItemType extends TreeItemPresentationModel, ClientTreeItemType extends UmbTreeItemModelBase, > { - getRootItems: () => CancelablePromise>; - getChildrenOf: (parentUnique: string | null) => CancelablePromise>; + getRootItems: () => Promise>; + getChildrenOf: (parentUnique: string | null) => Promise>; mapper: (item: ServerTreeItemType) => ClientTreeItemType; } @@ -25,10 +25,10 @@ export abstract class UmbTreeServerDataSourceBase< ClientTreeItemType extends UmbTreeItemModelBase, > implements UmbTreeDataSource { - #host: UmbControllerHost; - #getRootItems: () => CancelablePromise>; - #getChildrenOf: (parentUnique: string | null) => CancelablePromise>; - #mapper: (item: ServerTreeItemType) => ClientTreeItemType; + #host; + #getRootItems; + #getChildrenOf; + #mapper; /** * Creates an instance of UmbTreeServerDataSourceBase. diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts index 9556b01dd3..b4ad681fa0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.repository.ts @@ -7,8 +7,4 @@ export class UmbDocumentTypeDetailRepository extends UmbDetailRepositoryBase> {} - - allowedChildren(id: string): Promise> {} } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts index 20e12cab58..791f521d30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.repository.ts @@ -1,8 +1,9 @@ import { UmbDocumentTypeStructureServerDataSource } from './document-type-structure.server.data-source.js'; +import type { UmbAllowedDocumentTypeModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContentTypeStructureRepositoryBase } from '@umbraco-cms/backoffice/content-type'; -export class UmbDocumentTypeStructureRepository extends UmbContentTypeStructureRepositoryBase { +export class UmbDocumentTypeStructureRepository extends UmbContentTypeStructureRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbDocumentTypeStructureServerDataSource); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts index 1cdea74ac2..cdf2c3fe8e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts @@ -2,34 +2,36 @@ import { html, nothing, customElement, state, ifDefined } from '@umbraco-cms/bac import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbCreateDocumentModalData, UmbCreateDocumentModalValue } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import type { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbDocumentDetailRepository } from '@umbraco-cms/backoffice/document'; +import { + UmbDocumentTypeStructureRepository, + type UmbAllowedDocumentTypeModel, +} from '@umbraco-cms/backoffice/document-type'; @customElement('umb-create-document-modal') export class UmbCreateDocumentModalElement extends UmbModalBaseElement< UmbCreateDocumentModalData, UmbCreateDocumentModalValue > { - #documentRepository = new UmbDocumentDetailRepository(this); + #documentTypeStructureRepository = new UmbDocumentTypeStructureRepository(this); @state() - private _allowedDocumentTypes: DocumentTypeResponseModel[] = []; + private _allowedDocumentTypes: UmbAllowedDocumentTypeModel[] = []; @state() private _headline: string = 'Create'; async firstUpdated() { - const documentId = this.data?.id || null; + const documentUnique = this.data?.unique || null; - this.#retrieveAllowedDocumentTypesOf(documentId); + this.#retrieveAllowedDocumentTypesOf(documentUnique); - if (documentId) { - this.#retrieveHeadline(documentId); + if (documentUnique) { + this.#retrieveHeadline(documentUnique); } } - async #retrieveAllowedDocumentTypesOf(id: string | null) { - const { data } = await this.#documentRepository.requestAllowedDocumentTypesOf(id); + async #retrieveAllowedDocumentTypesOf(unique: string | null) { + const { data } = await this.#documentTypeStructureRepository.allowedDocumentTypesOf(unique); if (data) { // TODO: implement pagination, or get 1000? @@ -37,26 +39,17 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< } } - async #retrieveHeadline(id: string) { - if (!id) return; - const { data } = await this.#documentRepository.requestById(id); + async #retrieveHeadline(unique: string) { + if (!unique) return; + const { data } = await this.#documentItemRepository.requestItems(id); if (data) { // TODO: we need to get the correct variant context here this._headline = `Create at ${data.variants?.[0].name}`; } } - private _handleCancel() { - this.modalContext?.reject(); - } - #onClick(event: PointerEvent) { event.stopPropagation(); - const target = event.target as HTMLButtonElement; - const documentTypeId = target.dataset.id; - if (!documentTypeId) throw new Error('No document type id found'); - this.value = { documentTypeId }; - this.modalContext?.submit(); } render() { @@ -66,13 +59,13 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< ${this._allowedDocumentTypes.length === 0 ? html`

No allowed types

` : nothing} ${this._allowedDocumentTypes.map( (item) => html` - + ${item.icon ? html`` : nothing} `, )} - Cancel + Cancel `; } From d3b83f23f108bda05a3d6f946222a1e637fe7708 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 28 Jan 2024 19:47:22 +0100 Subject: [PATCH 656/786] add doc type structure data handling --- .../data/document-type/document-type.data.ts | 2 +- .../data/document-type/document-type.db.ts | 27 ++++++++-- .../document-type/structure.handlers.ts | 3 -- ...nt-type-structure-data-source.interface.ts | 2 +- .../content-type-structure-repository-base.ts | 2 +- .../src/packages/core/modal/token/index.ts | 1 - .../item/item-data-source.interface.ts | 4 +- .../repository/item/item-repository-base.ts | 4 +- ...ument-type-structure.server.data-source.ts | 12 +++-- .../create/create-document-modal.element.ts | 24 ++++++--- .../create}/create-document-modal.token.ts | 11 ++-- .../entity-actions/create/create.action.ts | 48 ++++++++--------- .../item/document-item.repository.ts | 2 +- .../item/document-item.server.data-source.ts | 51 +++++++++++++++++++ .../item/document-item.server.data.ts | 40 --------------- .../documents/repository/item/types.ts | 6 ++- .../tree-item/document-tree-item.element.ts | 3 +- 17 files changed, 143 insertions(+), 99 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/{core/modal/token => documents/documents/entity-actions/create}/create-document-modal.token.ts (70%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data-source.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index 8b8b400896..de8dfbfab0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -724,7 +724,7 @@ export const data: Array = [ sortOrder: 0, }, ], - allowedDocumentTypes: [], + allowedDocumentTypes: [{ documentType: { id: 'simple-document-type-id' }, sortOrder: 0 }], compositions: [], cleanup: { preventCleanup: false, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts index a6c35060e8..2a8d456990 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.db.ts @@ -7,11 +7,14 @@ import type { UmbMockDocumentTypeModel } from './document-type.data.js'; import { data } from './document-type.data.js'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { + AllowedDocumentTypeModel, CreateDocumentTypeRequestModel, CreateFolderRequestModel, DocumentTypeItemResponseModel, DocumentTypeResponseModel, + DocumentTypeSortModel, DocumentTypeTreeItemResponseModel, + PagedAllowedDocumentTypeModel, } from '@umbraco-cms/backoffice/backend-api'; class UmbDocumentTypeMockDB extends UmbEntityMockDbBase { @@ -28,14 +31,19 @@ class UmbDocumentTypeMockDB extends UmbEntityMockDbBase { - return []; + getAllowedChildren(id: string): PagedAllowedDocumentTypeModel { + const documentType = this.detail.read(id); + const allowedDocumentTypes = documentType.allowedDocumentTypes.map((sortModel: DocumentTypeSortModel) => + this.detail.read(sortModel.documentType.id), + ); + const mappedItems = allowedDocumentTypes.map((item: UmbMockDocumentTypeModel) => allowedDocumentTypeMapper(item)); + return { items: mappedItems, total: mappedItems.length }; } - getAllowedAtRoot(): Array<{ id: string }> { + getAllowedAtRoot(): PagedAllowedDocumentTypeModel { const mockItems = this.data.filter((item) => item.allowedAsRoot); - debugger; - return []; + const mappedItems = mockItems.map((item) => allowedDocumentTypeMapper(item)); + return { items: mappedItems, total: mappedItems.length }; } } @@ -136,4 +144,13 @@ const documentTypeItemMapper = (item: UmbMockDocumentTypeModel): DocumentTypeIte }; }; +const allowedDocumentTypeMapper = (item: UmbMockDocumentTypeModel): AllowedDocumentTypeModel => { + return { + id: item.id, + name: item.name, + description: item.description, + icon: item.icon, + }; +}; + export const umbDocumentTypeMockDb = new UmbDocumentTypeMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts index 18448127db..3d16440c73 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document-type/structure.handlers.ts @@ -6,16 +6,13 @@ import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const structureHandlers = [ rest.get(umbracoPath(`${UMB_SLUG}/:id/allowed-children`), (req, res, ctx) => { const id = req.params.id as string; - debugger; if (!id) return res(ctx.status(400)); const response = umbDocumentTypeMockDb.getAllowedChildren(id); - debugger; return res(ctx.status(200), ctx.json(response)); }), rest.get(umbracoPath(`${UMB_SLUG}/allowed-at-root`), (req, res, ctx) => { const response = umbDocumentTypeMockDb.getAllowedAtRoot(); - debugger; return res(ctx.status(200), ctx.json(response)); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts index 55db3e55d6..31e0534ce3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts @@ -7,5 +7,5 @@ export interface UmbContentTypeStructureDataSourceConstructor { export interface UmbContentTypeStructureDataSource { getAllowedAtRoot(): Promise>>; - getAllowedChildrenOf(unique: string): Promise>>; + getAllowedChildrenOf(unique: string | null): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts index dc1ff8ccbc..e0b18eb5c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts @@ -32,7 +32,7 @@ export abstract class UmbContentTypeStructureRepositoryBase * @return {*} * @memberof UmbContentTypeStructureRepositoryBase */ - requestAllowedChildrenOf(unique: string) { + requestAllowedChildrenOf(unique: string | null) { return this.#structureSource.getAllowedChildrenOf(unique); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts index 2b50aea71b..38d57f9d6f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/index.ts @@ -2,7 +2,6 @@ export * from './change-password-modal.token.js'; export * from './code-editor-modal.token.js'; export * from './confirm-modal.token.js'; export * from './create-dictionary-modal.token.js'; -export * from './create-document-modal.token.js'; export * from './create-user-modal.token.js'; export * from './create-user-success-modal.token.js'; export * from './current-user-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts index 97639454da..cb95f0ec6c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-data-source.interface.ts @@ -1,10 +1,10 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; -export interface UmbItemDataSourceConstructor { +export interface UmbItemDataSourceConstructor { new (host: UmbControllerHost): UmbItemDataSource; } -export interface UmbItemDataSource { +export interface UmbItemDataSource { getItems(unique: Array): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts index ad20e0483a..d9b083893e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/repository/item/item-repository-base.ts @@ -11,11 +11,11 @@ export class UmbItemRepositoryBase { protected _init: Promise; protected _itemStore?: UmbItemStore; - #itemSource: UmbItemDataSource; + #itemSource: UmbItemDataSource; constructor( host: UmbControllerHost, - itemSource: UmbItemDataSourceConstructor, + itemSource: UmbItemDataSourceConstructor, itemStoreContextAlias: string | UmbContextToken, ) { super(host); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts index 4de6fc8530..ada0b70e0c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts @@ -22,9 +22,15 @@ export class UmbDocumentTypeStructureServerDataSource extends UmbContentTypeStru // eslint-disable-next-line local-rules/no-direct-api-import const getAllowedAtRoot = () => DocumentTypeResource.getDocumentTypeAllowedAtRoot({}); -const getAllowedChildrenOf = (unique: string) => - // eslint-disable-next-line local-rules/no-direct-api-import - DocumentTypeResource.getDocumentTypeByIdAllowedChildren({ id: unique }); +const getAllowedChildrenOf = (unique: string | null) => { + if (unique) { + // eslint-disable-next-line local-rules/no-direct-api-import + return DocumentTypeResource.getDocumentTypeByIdAllowedChildren({ id: unique }); + } else { + // eslint-disable-next-line local-rules/no-direct-api-import + return DocumentTypeResource.getDocumentTypeAllowedAtRoot({}); + } +}; const mapper = (item: AllowedDocumentTypeModel): UmbAllowedDocumentTypeModel => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts index cdf2c3fe8e..0d2f10a28b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts @@ -1,3 +1,4 @@ +import { UmbDocumentItemRepository } from '../../repository/index.js'; import { html, nothing, customElement, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbCreateDocumentModalData, UmbCreateDocumentModalValue } from '@umbraco-cms/backoffice/modal'; @@ -13,6 +14,7 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< UmbCreateDocumentModalValue > { #documentTypeStructureRepository = new UmbDocumentTypeStructureRepository(this); + #documentItemRepository = new UmbDocumentItemRepository(this); @state() private _allowedDocumentTypes: UmbAllowedDocumentTypeModel[] = []; @@ -21,9 +23,10 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< private _headline: string = 'Create'; async firstUpdated() { - const documentUnique = this.data?.unique || null; + const documentUnique = this.data?.document?.unique || null; + const documentTypeUnique = this.data?.documentType?.unique || null; - this.#retrieveAllowedDocumentTypesOf(documentUnique); + this.#retrieveAllowedDocumentTypesOf(documentTypeUnique); if (documentUnique) { this.#retrieveHeadline(documentUnique); @@ -31,7 +34,7 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< } async #retrieveAllowedDocumentTypesOf(unique: string | null) { - const { data } = await this.#documentTypeStructureRepository.allowedDocumentTypesOf(unique); + const { data } = await this.#documentTypeStructureRepository.requestAllowedChildrenOf(unique); if (data) { // TODO: implement pagination, or get 1000? @@ -41,10 +44,10 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< async #retrieveHeadline(unique: string) { if (!unique) return; - const { data } = await this.#documentItemRepository.requestItems(id); + const { data } = await this.#documentItemRepository.requestItems([unique]); if (data) { // TODO: we need to get the correct variant context here - this._headline = `Create at ${data.variants?.[0].name}`; + this._headline = `Create at ${data[0].variants?.[0].name}`; } } @@ -58,9 +61,14 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< ${this._allowedDocumentTypes.length === 0 ? html`

No allowed types

` : nothing} ${this._allowedDocumentTypes.map( - (item) => html` - - ${item.icon ? html`` : nothing} + (documentType) => html` + + ${documentType.icon ? html`` : nothing} `, )} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-document-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.token.ts similarity index 70% rename from src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-document-modal.token.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.token.ts index 7847cd7f5d..9c173ba12c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/create-document-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.token.ts @@ -1,12 +1,15 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbCreateDocumentModalData { - id: string | null; + document: { + unique: string; + } | null; + documentType: { + unique: string; + } | null; } -export interface UmbCreateDocumentModalValue { - documentTypeId: string; -} +export interface UmbCreateDocumentModalValue {} export const UMB_CREATE_DOCUMENT_MODAL = new UmbModalToken( 'Umb.Modal.CreateDocument', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index 7616da850a..0f0c37c4fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -1,19 +1,21 @@ -import type { UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../../repository/index.js'; +import { UmbDocumentItemRepository } from '../../repository/index.js'; +import type { UmbCreateDocumentModalData } from './create-document-modal.token.js'; +import { UMB_CREATE_DOCUMENT_MODAL } from './create-document-modal.token.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_MODAL_MANAGER_CONTEXT, - UMB_CREATE_DOCUMENT_MODAL as UMB_CREATE_DOCUMENT_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; -export class UmbCreateDocumentEntityAction extends UmbEntityActionBase { +export class UmbCreateDocumentEntityAction extends UmbEntityActionBase { #modalContext?: UmbModalManagerContext; + #itemRepository; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); + this.#itemRepository = new UmbDocumentItemRepository(host); + this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); @@ -21,25 +23,23 @@ export class UmbCreateDocumentEntityAction extends UmbEntityActionBase { + /** + * Creates an instance of UmbDocumentItemServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbDocumentItemServerDataSource + */ + constructor(host: UmbControllerHost) { + super(host, { + getItems, + mapper, + }); + } +} + +/* eslint-disable local-rules/no-direct-api-import */ +const getItems = (uniques: Array) => DocumentResource.getDocumentItem({ id: uniques }); + +const mapper = (item: DocumentItemResponseModel): UmbDocumentItemModel => { + return { + unique: item.id, + isTrashed: item.isTrashed, + isProtected: item.isProtected, + documentType: { + unique: item.documentType.id, + icon: item.documentType.icon, + hasListView: item.documentType.hasListView, + }, + variants: item.variants.map((variant) => { + return { + culture: variant.culture || null, + name: variant.name, + state: variant.state, + }; + }), + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data.ts deleted file mode 100644 index a734371862..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import type { DocumentItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; -import { DocumentResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for Document items that fetches data from the server - * @export - * @class UmbDocumentItemServerDataSource - * @implements {DocumentTreeDataSource} - */ -export class UmbDocumentItemServerDataSource implements UmbItemDataSource { - #host: UmbControllerHost; - - /** - * Creates an instance of UmbDocumentItemServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbDocumentItemServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches the items for the given ids from the server - * @param {Array} ids - * @return {*} - * @memberof UmbDocumentItemServerDataSource - */ - async getItems(ids: Array) { - if (!ids) throw new Error('Ids are missing'); - return tryExecuteAndNotify( - this.#host, - DocumentResource.getDocumentItem({ - id: ids, - }), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts index d48a5cabbe..951687a15e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts @@ -1,3 +1,5 @@ +import type { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; + export interface UmbDocumentItemModel { unique: string; isTrashed: boolean; @@ -12,6 +14,6 @@ export interface UmbDocumentItemModel { export interface UmbDocumentItemVariantModel { name: string; - culture: string; - state: string; + culture: string | null; + state: ContentStateModel | null; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts index a52bfa4310..3c38d4fbed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts @@ -40,8 +40,9 @@ export class UmbDocumentTreeItemElement extends UmbLitElement implements UmbTree } // TODO: lower opacity if item is not published + // TODO: get correct variant name #renderLabel() { - return html` ${this.item?.name} `; + return html` ${this.item?.variants[0].name} `; } static styles = [ From 6d9f8418b6b7fb547b18021a7411d32a68460011 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 28 Jan 2024 19:48:03 +0100 Subject: [PATCH 657/786] remove debugger --- .../documents/documents/entity-actions/create/create.action.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index 0f0c37c4fd..ab3000abf0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -28,7 +28,6 @@ export class UmbCreateDocumentEntityAction extends UmbEntityActionBase Date: Sun, 28 Jan 2024 20:55:39 +0100 Subject: [PATCH 658/786] get doc unique from the correct place --- .../entity-actions/create/create-document-modal.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts index 0d2f10a28b..47e907c19d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.element.ts @@ -64,7 +64,7 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< (documentType) => html` From 0fced1688a4c180ad10459f8a761b5ff2212481e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 28 Jan 2024 21:05:40 +0100 Subject: [PATCH 659/786] rename modal --- .../create/create-document-modal.token.ts | 22 --------------- .../entity-actions/create/create.action.ts | 8 +++--- ... document-create-options-modal.element.ts} | 27 +++++++++++-------- .../document-create-options-modal.token.ts | 22 +++++++++++++++ .../entity-actions/create/manifests.ts | 6 ++--- .../workspace/document-workspace.element.ts | 5 ++-- 6 files changed, 48 insertions(+), 42 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.token.ts rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/{create-document-modal.element.ts => document-create-options-modal.element.ts} (75%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.token.ts deleted file mode 100644 index 9c173ba12c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create-document-modal.token.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; - -export interface UmbCreateDocumentModalData { - document: { - unique: string; - } | null; - documentType: { - unique: string; - } | null; -} - -export interface UmbCreateDocumentModalValue {} - -export const UMB_CREATE_DOCUMENT_MODAL = new UmbModalToken( - 'Umb.Modal.CreateDocument', - { - modal: { - type: 'sidebar', - size: 'small', - }, - }, -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts index ab3000abf0..8e806c3e2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts @@ -1,7 +1,7 @@ import type { UmbDocumentDetailRepository } from '../../repository/index.js'; import { UmbDocumentItemRepository } from '../../repository/index.js'; -import type { UmbCreateDocumentModalData } from './create-document-modal.token.js'; -import { UMB_CREATE_DOCUMENT_MODAL } from './create-document-modal.token.js'; +import type { UmbDocumentCreateOptionsModalData } from './document-create-options-modal.token.js'; +import { UMB_DOCUMENT_CREATE_OPTIONS_MODAL } from './document-create-options-modal.token.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; @@ -35,9 +35,9 @@ export class UmbCreateDocumentEntityAction extends UmbEntityActionBase { #documentTypeStructureRepository = new UmbDocumentTypeStructureRepository(this); #documentItemRepository = new UmbDocumentItemRepository(this); @@ -51,8 +54,9 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< } } - #onClick(event: PointerEvent) { - event.stopPropagation(); + // close the modal when navigating to data type + #onNavigate() { + this._submitModal(); } render() { @@ -67,8 +71,9 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< href="${`section/content/workspace/document/create/${this.data?.document?.unique ?? 'null'}/${ documentType.unique }`}" - label="${documentType.name}"> - ${documentType.icon ? html`` : nothing} + label="${documentType.name}" + @click=${this.#onNavigate}> + > ${documentType.icon ? html`` : nothing} `, )} @@ -81,10 +86,10 @@ export class UmbCreateDocumentModalElement extends UmbModalBaseElement< static styles = [UmbTextStyles]; } -export default UmbCreateDocumentModalElement; +export default UmbDocumentCreateOptionsModalElement; declare global { interface HTMLElementTagNameMap { - 'umb-create-document-modal': UmbCreateDocumentModalElement; + 'umb-document-create-options-modal': UmbDocumentCreateOptionsModalElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts new file mode 100644 index 0000000000..add3c78079 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/document-create-options-modal.token.ts @@ -0,0 +1,22 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbDocumentCreateOptionsModalData { + document: { + unique: string; + } | null; + documentType: { + unique: string; + } | null; +} + +export interface UmbDocumentCreateOptionsModalValue {} + +export const UMB_DOCUMENT_CREATE_OPTIONS_MODAL = new UmbModalToken< + UmbDocumentCreateOptionsModalData, + UmbDocumentCreateOptionsModalValue +>('Umb.Modal.Document.CreateOptions', { + modal: { + type: 'sidebar', + size: 'small', + }, +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts index 61b72ae19a..59e716fcf9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts @@ -33,9 +33,9 @@ const entityActions: Array = [ const modals: Array = [ { type: 'modal', - alias: 'Umb.Modal.CreateDocument', - name: 'Create Document Modal', - js: () => import('./create-document-modal.element.js'), + alias: 'Umb.Modal.Document.CreateOptions', + name: 'Document Create Options Modal', + js: () => import('./document-create-options-modal.element.js'), }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index 3a89f4b731..608225a565 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -6,9 +6,9 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import type { UmbApi} from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; -import type { ManifestWorkspace} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-workspace') @@ -35,6 +35,7 @@ export class UmbDocumentWorkspaceElement extends UmbLitElement { path: 'create/:parentId/:documentTypeKey', component: this.#editorElement, setup: async (_component, info) => { + debugger; // TODO: Remember the perspective of permissions here, we need to check if the user has access to create a document of this type under this parent? const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; const documentTypeKey = info.match.params.documentTypeKey; From afbdbe7244e17cefa34ce80b889a192e55e108c1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 28 Jan 2024 21:15:32 +0100 Subject: [PATCH 660/786] extend base for data type item server source --- .../item/data-type-item.repository.ts | 2 +- .../item/data-type-item.server.data-source.ts | 39 ++++++++++++++++++ .../item/data-type-item.server.data.ts | 40 ------------------- .../workspace/document-workspace.element.ts | 1 - 4 files changed, 40 insertions(+), 42 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts index 01c7113f0f..2e5ab9fb07 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.repository.ts @@ -1,4 +1,4 @@ -import { UmbDataTypeItemServerDataSource } from './data-type-item.server.data.js'; +import { UmbDataTypeItemServerDataSource } from './data-type-item.server.data-source.js'; import { UMB_DATA_TYPE_ITEM_STORE_CONTEXT } from './data-type-item.store.js'; import type { UmbDataTypeItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts new file mode 100644 index 0000000000..9943a59a86 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data-source.ts @@ -0,0 +1,39 @@ +import type { UmbDataTypeItemModel } from './types.js'; +import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository'; +import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +/** + * A server data source for Data Type items + * @export + * @class UmbDataTypeItemServerDataSource + * @implements {DocumentTreeDataSource} + */ +export class UmbDataTypeItemServerDataSource extends UmbItemServerDataSourceBase< + DataTypeItemResponseModel, + UmbDataTypeItemModel +> { + /** + * Creates an instance of UmbDataTypeItemServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbDataTypeItemServerDataSource + */ + constructor(host: UmbControllerHost) { + super(host, { + getItems, + mapper, + }); + } +} + +/* eslint-disable local-rules/no-direct-api-import */ +const getItems = (uniques: Array) => DataTypeResource.getDataTypeItem({ id: uniques }); + +const mapper = (item: DataTypeItemResponseModel): UmbDataTypeItemModel => { + return { + unique: item.id, + name: item.name, + propertyEditorUiAlias: item.editorUiAlias || '', // TODO: why can this be undefined or null on the server? + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts deleted file mode 100644 index 305afb247f..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.server.data.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import type { DataTypeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; -import { DataTypeResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for Data Type items that fetches data from the server - * @export - * @class UmbDataTypeItemServerDataSource - * @implements {DocumentTreeDataSource} - */ -export class UmbDataTypeItemServerDataSource implements UmbItemDataSource { - #host: UmbControllerHost; - - /** - * Creates an instance of UmbDataTypeItemServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbDataTypeItemServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches the items for the given ids from the server - * @param {Array} ids - * @return {*} - * @memberof UmbDataTypeItemServerDataSource - */ - async getItems(ids: Array) { - if (!ids) throw new Error('Ids are missing'); - return tryExecuteAndNotify( - this.#host, - DataTypeResource.getDataTypeItem({ - id: ids, - }), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts index 608225a565..39d5d096cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.element.ts @@ -35,7 +35,6 @@ export class UmbDocumentWorkspaceElement extends UmbLitElement { path: 'create/:parentId/:documentTypeKey', component: this.#editorElement, setup: async (_component, info) => { - debugger; // TODO: Remember the perspective of permissions here, we need to check if the user has access to create a document of this type under this parent? const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; const documentTypeKey = info.match.params.documentTypeKey; From c9e5810de00ab9ba1383a294a082db0aba263431 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 28 Jan 2024 21:31:28 +0100 Subject: [PATCH 661/786] use base --- .../item/document-type-item.server.data.ts | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts index aff1cc985f..6ca440b1da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts @@ -1,40 +1,37 @@ -import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import type { DocumentTypeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDocumentTypeItemModel } from './types.js'; +import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository'; +import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for Document Type items that fetches data from the server * @export * @class UmbDocumentTypeItemServerDataSource - * @implements {UmbItemDataSource} + * @extends {UmbItemServerDataSourceBase} */ -export class UmbDocumentTypeItemServerDataSource implements UmbItemDataSource { - #host: UmbControllerHost; - +export class UmbDocumentTypeItemServerDataSource extends UmbItemServerDataSourceBase< + DocumentTypeItemResponseModel, + UmbDocumentTypeItemModel +> { /** * Creates an instance of UmbDocumentTypeItemServerDataSource. * @param {UmbControllerHost} host * @memberof UmbDocumentTypeItemServerDataSource */ constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches the items for the given ids from the server - * @param {Array} ids - * @return {*} - * @memberof UmbDocumentTypeItemServerDataSource - */ - async getItems(ids: Array) { - if (!ids) throw new Error('Ids are missing'); - return tryExecuteAndNotify( - this.#host, - DocumentTypeResource.getDocumentTypeItem({ - id: ids, - }), - ); + super(host, { getItems, mapper }); } } + +/* eslint-disable local-rules/no-direct-api-import */ +const getItems = (uniques: Array) => DocumentTypeResource.getDocumentTypeItem({ id: uniques }); + +const mapper = (item: DocumentTypeItemResponseModel): UmbDocumentTypeItemModel => { + return { + isElement: item.isElement, + icon: item.icon, + unique: item.id, + name: item.name, + }; +}; From 72b2d20309f6eca0c99f2a9d77a4c69324704edf Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 28 Jan 2024 21:31:33 +0100 Subject: [PATCH 662/786] mapping --- .../src/mocks/data/document-type/document-type.data.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts index b0a335b77d..c03f4b5dd5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document-type/document-type.data.ts @@ -1496,8 +1496,8 @@ export const data: Array = [ containers: [], }, { - allowedTemplateIds: [], - defaultTemplateId: null, + allowedTemplates: [], + defaultTemplate: null, id: 'test-block-id', alias: 'testBlock', name: 'Test broken group key', @@ -1508,10 +1508,9 @@ export const data: Array = [ variesBySegment: false, isElement: true, hasChildren: false, - isContainer: false, - parentId: null, + parent: null, isFolder: false, - allowedContentTypes: [], + allowedDocumentTypes: [], compositions: [], cleanup: { preventCleanup: false, From 12d4e9f30888bbd213b75bbec52fb814bae2b591 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Sun, 28 Jan 2024 21:37:14 +0100 Subject: [PATCH 663/786] make local variant model --- .../src/packages/core/variant/index.ts | 1 + .../src/packages/core/variant/types.ts | 11 +++++++++++ .../workspace-variantable-context.interface.ts | 7 +++---- .../src/packages/documents/documents/types.ts | 12 +----------- 4 files changed, 16 insertions(+), 15 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/variant/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/variant/index.ts index 2155245d23..cf4b565e59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/variant/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/variant/index.ts @@ -1 +1,2 @@ export * from './variant-id.class.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts new file mode 100644 index 0000000000..cc4dbc93a8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/variant/types.ts @@ -0,0 +1,11 @@ +import type { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbVariantModel { + createDate: string | null; + culture: string | null; + name: string; + publishDate: string | null; + segment: string | null; + state: ContentStateModel | null; + updateDate: string | null; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts index 9ffa5998fe..4e2004e5f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-context/workspace-variantable-context.interface.ts @@ -2,8 +2,7 @@ import type { UmbWorkspaceSplitViewManager } from '../workspace-split-view-manag import type { UmbPropertyDatasetContext } from '../../property/property-dataset/property-dataset-context.interface.js'; import type { UmbSaveableWorkspaceContextInterface } from './saveable-workspace-context.interface.js'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; -import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import type { ContentStateModel, VariantResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbVariantId, UmbVariantModel } from '@umbraco-cms/backoffice/variant'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export interface UmbVariantableWorkspaceContextInterface extends UmbSaveableWorkspaceContextInterface { @@ -12,9 +11,9 @@ export interface UmbVariantableWorkspaceContextInterface extends UmbSaveableWork setName(name: string, variantId?: UmbVariantId): void; // Variant: - variants: Observable>; + variants: Observable>; splitView: UmbWorkspaceSplitViewManager; - getVariant(variantId: UmbVariantId): VariantResponseModelBaseModel | undefined; + getVariant(variantId: UmbVariantId): UmbVariantModel | undefined; // Property: // This one is async cause it needs to structure to provide this data: diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts index 466c5cac32..d0a528bf5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts @@ -9,15 +9,5 @@ export interface UmbDocumentDetailModel { unique: string; urls: Array; values: Array; - variants: Array; -} - -export interface UmbDocumentVariantModel { - createDate: string | null; - culture: string | null; - name: string; - publishDate: string | null; - segment: string | null; - state: ContentStateModel | null; - updateDate: string | null; + variants: Array; } From 69ab8308802d6d697b55da6155c8d75315319ca9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 09:22:16 +0100 Subject: [PATCH 664/786] extend item store that supports unique --- .../repository/item/data-type-item.store.ts | 6 +-- .../item/document-type-item.repository.ts | 2 +- ... document-type-item.server.data-source.ts} | 0 .../item/document-type-item.store.ts | 6 +-- .../media-type-item.server.data-source.ts | 45 +++++++++---------- .../repository/item/media-type-item.store.ts | 6 +-- .../user/user/repository/item/types.ts | 4 ++ .../repository/item/user-item.repository.ts | 4 +- .../item/user-item.server.data-source.ts | 42 ++++++++--------- .../user/repository/item/user-item.store.ts | 8 ++-- 10 files changed, 60 insertions(+), 63 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/{document-type-item.server.data.ts => document-type-item.server.data-source.ts} (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts index d2cc030fd8..83e3e767cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/repository/item/data-type-item.store.ts @@ -1,7 +1,7 @@ -import type { DataTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDataTypeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; +import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; /** * @export @@ -10,7 +10,7 @@ import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; * @description - Data Store for Data Type items */ -export class UmbDataTypeItemStore extends UmbEntityItemStore { +export class UmbDataTypeItemStore extends UmbItemStoreBase { /** * Creates an instance of UmbDataTypeItemStore. * @param {UmbControllerHost} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts index 500d791da5..c8a5d0fa7e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.repository.ts @@ -1,5 +1,5 @@ import type { UmbDocumentTypeItemModel } from './types.js'; -import { UmbDocumentTypeItemServerDataSource } from './document-type-item.server.data.js'; +import { UmbDocumentTypeItemServerDataSource } from './document-type-item.server.data-source.js'; import { UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT } from './document-type-item.store.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data-source.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data.ts rename to src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.server.data-source.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts index 23ed3af0e2..26ed5716eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts @@ -1,7 +1,7 @@ -import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbDocumentTypeItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; +import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; /** * @export @@ -10,7 +10,7 @@ import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; * @description - Data Store for Document Type items */ -export class UmbDocumentTypeItemStore extends UmbEntityItemStore { +export class UmbDocumentTypeItemStore extends UmbItemStoreBase { /** * Creates an instance of UmbDocumentTypeItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts index 0fc150df29..78a040aaf6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.server.data-source.ts @@ -1,8 +1,8 @@ -import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import type { MediaTypeItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbMediaTypeItemModel } from './types.js'; +import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository'; +import type { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for Media Type items that fetches data from the server @@ -10,31 +10,30 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; * @class UmbMediaTypeItemServerDataSource * @implements {UmbItemDataSource} */ -export class UmbMediaTypeItemServerDataSource implements UmbItemDataSource { - #host: UmbControllerHost; - +export class UmbMediaTypeItemServerDataSource extends UmbItemServerDataSourceBase< + MediaTypeItemResponseModel, + UmbMediaTypeItemModel +> { /** * Creates an instance of UmbMediaTypeItemServerDataSource. * @param {UmbControllerHost} host * @memberof UmbMediaTypeItemServerDataSource */ constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches the items for the given ids from the server - * @param {Array} ids - * @return {*} - * @memberof UmbMediaTypeItemServerDataSource - */ - async getItems(ids: Array) { - if (!ids) throw new Error('Ids are missing'); - return tryExecuteAndNotify( - this.#host, - MediaTypeResource.getMediaTypeItem({ - id: ids, - }), - ); + super(host, { + getItems, + mapper, + }); } } + +/* eslint-disable local-rules/no-direct-api-import */ +const getItems = (uniques: Array) => MediaTypeResource.getMediaTypeItem({ id: uniques }); + +const mapper = (item: MediaTypeItemResponseModel): UmbMediaTypeItemModel => { + return { + icon: item.icon || null, + name: item.name, + unique: item.name, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts index b94ff5957f..682d62c3bd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts @@ -1,7 +1,7 @@ -import type { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbMediaTypeItemModel } from './index.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; +import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; /** * @export @@ -10,7 +10,7 @@ import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; * @description - Data Store for Media Type items */ -export class UmbMediaTypeItemStore extends UmbEntityItemStore { +export class UmbMediaTypeItemStore extends UmbItemStoreBase { /** * Creates an instance of UmbMediaTypeItemStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/types.ts new file mode 100644 index 0000000000..d2811e5d91 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/types.ts @@ -0,0 +1,4 @@ +export interface UmbUserItemModel { + unique: string; + name: string; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts index 3f15eaaa15..dfc603a51b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.repository.ts @@ -1,10 +1,10 @@ import { UmbUserItemServerDataSource } from './user-item.server.data-source.js'; import { UMB_USER_ITEM_STORE_CONTEXT } from './user-item.store.js'; +import type { UmbUserItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbUserItemRepository extends UmbItemRepositoryBase { +export class UmbUserItemRepository extends UmbItemRepositoryBase { constructor(host: UmbControllerHost) { super(host, UmbUserItemServerDataSource, UMB_USER_ITEM_STORE_CONTEXT); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts index 3087588765..119067b248 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.server.data-source.ts @@ -1,8 +1,8 @@ -import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; +import type { UmbUserItemModel } from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import type { UserItemResponseModel} from '@umbraco-cms/backoffice/backend-api'; +import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UserResource } from '@umbraco-cms/backoffice/backend-api'; +import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository'; /** * A data source for user items that fetches data from the server @@ -10,32 +10,26 @@ import { UserResource } from '@umbraco-cms/backoffice/backend-api'; * @class UmbUserItemServerDataSource * @implements {UmbItemDataSource} */ -export class UmbUserItemServerDataSource implements UmbItemDataSource { - #host: UmbControllerHost; - +export class UmbUserItemServerDataSource extends UmbItemServerDataSourceBase { /** * Creates an instance of UmbUserItemServerDataSource. * @param {UmbControllerHost} host * @memberof UmbUserItemServerDataSource */ constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches the items for the given ids from the server - * @param {Array} ids - * @return {*} - * @memberof UmbUserItemServerDataSource - */ - async getItems(ids: Array) { - if (!ids) throw new Error('Ids are missing'); - - return tryExecuteAndNotify( - this.#host, - UserResource.getUserItem({ - id: ids, - }), - ); + super(host, { + getItems, + mapper, + }); } } + +/* eslint-disable local-rules/no-direct-api-import */ +const getItems = (uniques: Array) => UserResource.getUserItem({ id: uniques }); + +const mapper = (item: UserItemResponseModel): UmbUserItemModel => { + return { + unique: item.id, + name: item.name, + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts index 8b8a1131eb..00c8d2fabb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts @@ -1,17 +1,17 @@ -import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbUserItemModel } from './types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; +import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; /** * @export * @class UmbUserItemStore - * @extends {UmbEntityItemStore} + * @extends {UmbItemStoreBase} * @description - Data Store for user items */ // TODO: add UmbItemStoreInterface when changed to uniques -export class UmbUserItemStore extends UmbEntityItemStore { +export class UmbUserItemStore extends UmbItemStoreBase { /** * Creates an instance of UmbUserItemStore. * @param {UmbControllerHostElement} host From afdfdf8acdf08771effc2de98f7a11bdc1b361bb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 09:24:03 +0100 Subject: [PATCH 665/786] temp get variant name --- .../templates/modals/query-builder/query-builder.element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts index f04610d28c..819f033a4b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts @@ -128,7 +128,8 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement async #getDocumentItem(ids: string[]) { const { data, error } = await this.#documentItemRepository.requestItems(ids); if (data) { - this._selectedRootContentName = data[0].name; + // TODO: get correct variant name + this._selectedRootContentName = data[0].variants[0].name; } } From 7d4b5eaac7cab40f09018a4bcc04fc213651cce0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 10:04:48 +0100 Subject: [PATCH 666/786] align media repos --- .../src/packages/media/media/entity.ts | 6 +- .../src/packages/media/media/index.ts | 25 +-- .../media/media/repository/detail/index.ts | 2 + .../media/repository/detail/manifests.ts | 23 ++ .../detail/media-detail.repository.ts | 11 + .../detail/media-detail.server.data-source.ts | 165 +++++++++++++++ .../repository/detail/media-detail.store.ts | 23 ++ .../packages/media/media/repository/index.ts | 7 +- .../media/media/repository/item/index.ts | 2 + .../media/media/repository/item/manifests.ts | 22 ++ .../repository/item/media-item.repository.ts | 11 + .../item/media-item.server.data-source.ts | 50 +++++ .../media/repository/item/media-item.store.ts | 24 +++ .../media/media/repository/item/types.ts | 18 ++ .../media/media/repository/manifests.ts | 34 +-- .../media/repository/media-item.store.ts | 24 --- .../media/repository/media.repository.ts | 196 ------------------ .../media/media/repository/media.store.ts | 33 --- .../media-detail.server.data-source.ts | 168 --------------- .../sources/media-item.server.data-source.ts | 39 ---- .../src/packages/media/media/types.ts | 13 ++ .../workspace/media-workspace.context.ts | 11 +- .../src/packages/media/section.manifests.ts | 4 +- 23 files changed, 382 insertions(+), 529 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.store.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity.ts index 42d49af90e..1df9b8aa2e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity.ts @@ -1,3 +1,5 @@ -export const UMB_MEDIA_ROOT_ENTITY_TYPE = 'media-root'; export const UMB_MEDIA_ENTITY_TYPE = 'media'; -export const UMB_MEDIA_FOLDER_ENTITY_TYPE = 'media-folder'; +export const UMB_MEDIA_ROOT_ENTITY_TYPE = 'media-root'; + +export type UmbMediaEntityType = typeof UMB_MEDIA_ENTITY_TYPE; +export type UmbMediaRootEntityType = typeof UMB_MEDIA_ROOT_ENTITY_TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts index 771dbabfba..82f981c511 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/index.ts @@ -1,28 +1,5 @@ -import type { - ContentTreeItemResponseModel, - ContentUrlInfoModel, - MediaTypeReferenceResponseModel, - MediaValueModel, - MediaVariantResponseModel, -} from '@umbraco-cms/backoffice/backend-api'; - export * from './components/index.js'; export * from './repository/index.js'; +export * from './types.js'; export { UMB_MEDIA_COLLECTION_ALIAS } from './collection/index.js'; - -// Content -export interface ContentProperty { - alias: string; - label: string; - description: string; - dataTypeId: string; -} -export interface UmbMediaDetailModel { - id: string; - isTrashed: boolean; - variants: Array; - values: Array; - urls: Array; - mediaType: MediaTypeReferenceResponseModel; -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/index.ts new file mode 100644 index 0000000000..e4c6d1606b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/index.ts @@ -0,0 +1,2 @@ +export { UmbMediaDetailRepository } from './media-detail.repository.js'; +export { UMB_MEDIA_DETAIL_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts new file mode 100644 index 0000000000..7095dfc4ce --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/manifests.ts @@ -0,0 +1,23 @@ +import { UmbMediaDetailRepository } from './media-detail.repository.js'; +import { UmbMediaDetailStore } from './media-detail.store.js'; +import type { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_MEDIA_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Media.Detail'; + +const repository: ManifestRepository = { + type: 'repository', + alias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, + name: 'Media Detail Repository', + api: UmbMediaDetailRepository, +}; + +export const UMB_MEDIA_DETAIL_STORE_ALIAS = 'Umb.Store.Media.Detail'; + +const store: ManifestStore = { + type: 'store', + alias: UMB_MEDIA_DETAIL_STORE_ALIAS, + name: 'Media Detail Store', + api: UmbMediaDetailStore, +}; + +export const manifests = [repository, store]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts new file mode 100644 index 0000000000..f2a15cbe0d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.repository.ts @@ -0,0 +1,11 @@ +import type { UmbMediaDetailModel } from '../../types.js'; +import { UmbMediaServerDataSource } from './media-detail.server.data-source.js'; +import { UMB_MEDIA_DETAIL_STORE_CONTEXT } from './media-detail.store.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository'; + +export class UmbMediaDetailRepository extends UmbDetailRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbMediaServerDataSource, UMB_MEDIA_DETAIL_STORE_CONTEXT); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.server.data-source.ts new file mode 100644 index 0000000000..5f575c80f5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.server.data-source.ts @@ -0,0 +1,165 @@ +import type { UmbMediaDetailModel } from '../../types.js'; +import { UMB_MEDIA_ENTITY_TYPE } from '../../entity.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository'; +import type { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { MediaResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +/** + * A data source for the Media that fetches data from the server + * @export + * @class UmbMediaServerDataSource + * @implements {RepositoryDetailDataSource} + */ +export class UmbMediaServerDataSource implements UmbDetailDataSource { + #host: UmbControllerHost; + + /** + * Creates an instance of UmbMediaServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbMediaServerDataSource + */ + constructor(host: UmbControllerHost) { + this.#host = host; + } + + /** + * Creates a new Media scaffold + * @param {(string | null)} parentUnique + * @return { UmbMediaDetailModel } + * @memberof UmbMediaServerDataSource + */ + async createScaffold(parentUnique: string | null) { + const data: UmbMediaDetailModel = { + entityType: UMB_MEDIA_ENTITY_TYPE, + unique: UmbId.new(), + urls: [], + mediaType: { + unique: 'mediaTypeId', + }, + isTrashed: false, + values: [], + variants: [ + { + state: null, + culture: null, + segment: null, + name: '', + publishDate: null, + createDate: null, + updateDate: null, + }, + ], + }; + + return { data }; + } + + /** + * Fetches a Media with the given id from the server + * @param {string} unique + * @return {*} + * @memberof UmbMediaServerDataSource + */ + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + const { data, error } = await tryExecuteAndNotify(this.#host, MediaResource.getMediaById({ id: unique })); + + if (error || !data) { + return { error }; + } + + // TODO: make data mapper to prevent errors + const document: UmbMediaDetailModel = { + entityType: UMB_MEDIA_ENTITY_TYPE, + unique: data.id, + values: data.values, + variants: data.variants, + urls: data.urls, + mediaType: { unique: data.mediaType.id }, + isTrashed: data.isTrashed, + }; + + return { data: document }; + } + + /** + * Inserts a new Media on the server + * @param {UmbMediaDetailModel} model + * @return {*} + * @memberof UmbMediaServerDataSource + */ + async create(model: UmbMediaDetailModel) { + if (!model) throw new Error('Media is missing'); + if (!model.unique) throw new Error('Media unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: CreateMediaRequestModel = { + id: model.unique, + parent: model.parentUnique, + documentType: { id: model.documentType.unique }, + template: model.template, + values: model.values, + variants: model.variants, + }; + + const { data, error } = await tryExecuteAndNotify( + this.#host, + MediaResource.postMedia({ + requestBody, + }), + ); + + if (data) { + return this.read(data); + } + + return { error }; + } + + /** + * Updates a Media on the server + * @param {UmbMediaDetailModel} Media + * @return {*} + * @memberof UmbMediaServerDataSource + */ + async update(model: UmbMediaDetailModel) { + if (!model.unique) throw new Error('Unique is missing'); + + // TODO: make data mapper to prevent errors + const requestBody: UpdateMediaRequestModel = { + values: model.values, + variants: model.variants, + }; + + const { data, error } = await tryExecuteAndNotify( + this.#host, + MediaResource.putMediaById({ + id: model.unique, + requestBody, + }), + ); + + if (data) { + return this.read(data); + } + + return { error }; + } + + /** + * Deletes a Media on the server + * @param {string} unique + * @return {*} + * @memberof UmbMediaServerDataSource + */ + async delete(unique: string) { + if (!unique) throw new Error('Unique is missing'); + + // TODO: update to delete when implemented + return tryExecuteAndNotify(this.#host, MediaResource.putMediaByIdMoveToRecycleBin({ id: unique })); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.store.ts new file mode 100644 index 0000000000..3fcf8b8c0c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/detail/media-detail.store.ts @@ -0,0 +1,23 @@ +import type { UmbMediaDetailModel } from '../../types.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +/** + * @export + * @class UmbMediaDetailStore + * @extends {UmbStoreBase} + * @description - Data Store for Media Details + */ +export class UmbMediaDetailStore extends UmbDetailStoreBase { + /** + * Creates an instance of UmbMediaDetailStore. + * @param {UmbControllerHost} host + * @memberof UmbMediaDetailStore + */ + constructor(host: UmbControllerHost) { + super(host, UMB_MEDIA_DETAIL_STORE_CONTEXT.toString()); + } +} + +export const UMB_MEDIA_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbMediaDetailStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/index.ts index 940fc67617..480a724215 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/index.ts @@ -1,3 +1,4 @@ -export * from './media.repository.js'; -export { UMB_MEDIA_REPOSITORY_ALIAS } from './manifests.js'; -export { UMB_MEDIA_STORE_CONTEXT } from './media.store.js'; +export { UmbMediaDetailRepository, UMB_MEDIA_DETAIL_REPOSITORY_ALIAS } from './detail/index.js'; +export { UmbMediaItemRepository, UMB_MEDIA_ITEM_REPOSITORY_ALIAS } from './item/index.js'; + +export type { UmbMediaItemModel } from './item/types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/index.ts new file mode 100644 index 0000000000..77ca34778b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/index.ts @@ -0,0 +1,2 @@ +export { UmbMediaItemRepository } from './media-item.repository.js'; +export { UMB_MEDIA_ITEM_REPOSITORY_ALIAS } from './manifests.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts new file mode 100644 index 0000000000..9f7c647064 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/manifests.ts @@ -0,0 +1,22 @@ +import { UmbMediaItemStore } from './media-item.store.js'; +import { UmbMediaItemRepository } from './media-item.repository.js'; +import type { ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; + +export const UMB_MEDIA_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MediaItem'; +export const UMB_MEDIA_STORE_ALIAS = 'Umb.Store.MediaItem'; + +const itemRepository: ManifestRepository = { + type: 'repository', + alias: UMB_MEDIA_ITEM_REPOSITORY_ALIAS, + name: 'Media Item Repository', + api: UmbMediaItemRepository, +}; + +const itemStore: ManifestItemStore = { + type: 'itemStore', + alias: UMB_MEDIA_STORE_ALIAS, + name: 'Media Item Store', + api: UmbMediaItemStore, +}; + +export const manifests = [itemRepository, itemStore]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts new file mode 100644 index 0000000000..c52c11502f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.repository.ts @@ -0,0 +1,11 @@ +import { UmbMediaItemServerDataSource } from './media-item.server.data-source.js'; +import { UMB_MEDIA_ITEM_STORE_CONTEXT } from './media-item.store.js'; +import type { UmbMediaItemModel } from './types.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository'; + +export class UmbMediaItemRepository extends UmbItemRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbMediaItemServerDataSource, UMB_MEDIA_ITEM_STORE_CONTEXT); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts new file mode 100644 index 0000000000..7453cda3ff --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts @@ -0,0 +1,50 @@ +import type { UmbMediaItemModel } from './types.js'; +import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import { MediaResource } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository'; + +/** + * A data source for Media items that fetches data from the server + * @export + * @class UmbMediaItemServerDataSource + * @implements {MediaTreeDataSource} + */ +export class UmbMediaItemServerDataSource extends UmbItemServerDataSourceBase< + MediaItemResponseModel, + UmbMediaItemModel +> { + /** + * Creates an instance of UmbMediaItemServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbMediaItemServerDataSource + */ + constructor(host: UmbControllerHost) { + super(host, { + getItems, + mapper, + }); + } +} + +/* eslint-disable local-rules/no-direct-api-import */ +const getItems = (uniques: Array) => MediaResource.getMediaItem({ id: uniques }); + +const mapper = (item: MediaItemResponseModel): UmbMediaItemModel => { + return { + unique: item.id, + isTrashed: item.isTrashed, + mediaType: { + unique: item.mediaType.id, + icon: item.mediaType.icon, + hasListView: item.mediaType.hasListView, + }, + variants: item.variants.map((variant) => { + return { + culture: variant.culture || null, + name: variant.name, + state: variant.state, + }; + }), + }; +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts new file mode 100644 index 0000000000..9d99038df8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.store.ts @@ -0,0 +1,24 @@ +import type { UmbMediaDetailModel } from '../../types.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; + +/** + * @export + * @class UmbMediaItemStore + * @extends {UmbStoreBase} + * @description - Data Store for Media items + */ + +export class UmbMediaItemStore extends UmbItemStoreBase { + /** + * Creates an instance of UmbMediaItemStore. + * @param {UmbControllerHost} host + * @memberof UmbMediaItemStore + */ + constructor(host: UmbControllerHost) { + super(host, UMB_MEDIA_ITEM_STORE_CONTEXT.toString()); + } +} + +export const UMB_MEDIA_ITEM_STORE_CONTEXT = new UmbContextToken('UmbMediaItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts new file mode 100644 index 0000000000..1b27dafb08 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts @@ -0,0 +1,18 @@ +import type { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbMediaItemModel { + unique: string; + isTrashed: boolean; + mediaType: { + unique: string; + icon: string; + hasListView: boolean; + }; + variants: Array; +} + +export interface UmbMediaItemVariantModel { + name: string; + culture: string | null; + state: ContentStateModel | null; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts index eaf907ef47..bb35952020 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/manifests.ts @@ -1,32 +1,4 @@ -import { UmbMediaItemStore } from './media-item.store.js'; -import { UmbMediaRepository } from './media.repository.js'; -import { UmbMediaStore } from './media.store.js'; -import type { ManifestStore, ManifestRepository, ManifestItemStore } from '@umbraco-cms/backoffice/extension-registry'; +import { manifests as detailManifests } from './detail/manifests.js'; +import { manifests as itemManifests } from './item/manifests.js'; -export const UMB_MEDIA_REPOSITORY_ALIAS = 'Umb.Repository.Media'; - -const repository: ManifestRepository = { - type: 'repository', - alias: UMB_MEDIA_REPOSITORY_ALIAS, - name: 'Media Repository', - api: UmbMediaRepository, -}; - -export const UMB_MEDIA_STORE_ALIAS = 'Umb.Store.Media'; -export const UMB_MEDIA_ITEM_STORE_ALIAS = 'Umb.Store.MediaItem'; - -const store: ManifestStore = { - type: 'store', - alias: UMB_MEDIA_STORE_ALIAS, - name: 'Media Store', - api: UmbMediaStore, -}; - -const itemStore: ManifestItemStore = { - type: 'itemStore', - alias: UMB_MEDIA_ITEM_STORE_ALIAS, - name: 'Media Item Store', - api: UmbMediaItemStore, -}; - -export const manifests = [store, itemStore, repository]; +export const manifests = [...detailManifests, ...itemManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts deleted file mode 100644 index 5f1d36dc0e..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; -import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; - -/** - * @export - * @class UmbMediaItemStore - * @extends {UmbEntityItemStore} - * @description - Data Store for Media items - */ - -export class UmbMediaItemStore extends UmbEntityItemStore { - /** - * Creates an instance of UmbMediaItemStore. - * @param {UmbControllerHostElement} host - * @memberof UmbMediaItemStore - */ - constructor(host: UmbControllerHostElement) { - super(host, UMB_MEDIA_ITEM_STORE_CONTEXT.toString()); - } -} - -export const UMB_MEDIA_ITEM_STORE_CONTEXT = new UmbContextToken('UmbMediaItemStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts deleted file mode 100644 index 76862033c2..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.repository.ts +++ /dev/null @@ -1,196 +0,0 @@ -import { UMB_MEDIA_TREE_STORE_CONTEXT, type UmbMediaTreeStore } from '../tree/index.js'; -import type { UmbMediaStore } from './media.store.js'; -import { UMB_MEDIA_STORE_CONTEXT } from './media.store.js'; -import { UmbMediaDetailServerDataSource } from './sources/media-detail.server.data-source.js'; -import { UmbMediaItemServerDataSource } from './sources/media-item.server.data-source.js'; -import type { UmbMediaItemStore } from './media-item.store.js'; -import { UMB_MEDIA_ITEM_STORE_CONTEXT } from './media-item.store.js'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; -import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; - -export class UmbMediaRepository extends UmbBaseController implements UmbApi { - #init; - - #treeStore?: UmbMediaTreeStore; - - #detailDataSource: UmbMediaDetailServerDataSource; - #store?: UmbMediaStore; - - #itemSource: UmbMediaItemServerDataSource; - #itemStore?: UmbMediaItemStore; - - #notificationContext?: UmbNotificationContext; - - constructor(host: UmbControllerHost) { - super(host); - - // TODO: figure out how spin up get the correct data source - this.#detailDataSource = new UmbMediaDetailServerDataSource(this); - this.#itemSource = new UmbMediaItemServerDataSource(this); - - this.#init = Promise.all([ - this.consumeContext(UMB_MEDIA_TREE_STORE_CONTEXT, (instance) => { - this.#treeStore = instance; - }).asPromise(), - - this.consumeContext(UMB_MEDIA_STORE_CONTEXT, (instance) => { - this.#store = instance; - }).asPromise(), - - this.consumeContext(UMB_MEDIA_ITEM_STORE_CONTEXT, (instance) => { - this.#itemStore = instance; - }).asPromise(), - - this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { - this.#notificationContext = instance; - }).asPromise(), - ]); - } - - // ITEMS: - async requestItems(ids: Array) { - if (!ids) throw new Error('Keys are missing'); - await this.#init; - - const { data, error } = await this.#itemSource.getItems(ids); - - if (data) { - this.#itemStore?.appendItems(data); - } - - return { data, error, asObservable: () => this.#itemStore!.items(ids) }; - } - - async items(ids: Array) { - await this.#init; - return this.#itemStore!.items(ids); - } - - // DETAILS: - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - async createScaffold(parentId: string | null) { - if (parentId === undefined) throw new Error('Parent id is missing'); - await this.#init; - return this.#detailDataSource.createScaffold(parentId); - } - - async requestById(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - - const { data, error } = await this.#detailDataSource.read(id); - - if (data) { - this.#store?.append(data); - } - - return { data, error }; - } - - async byId(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - return this.#store!.byId(id); - } - - // Could potentially be general methods: - - async create(media: CreateMediaRequestModel) { - if (!media) throw new Error('Media is missing'); - - await this.#init; - - const { error } = await this.#detailDataSource.create(media); - - if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server - // TODO: Update tree store with the new item? or ask tree to request the new item? - //this.#store?.append(media); - - const notification = { data: { message: `Media created` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; - } - - async save(id: string, updatedItem: UpdateMediaRequestModel) { - if (!id) throw new Error('Id is missing'); - if (!updatedItem) throw new Error('Updated media item is missing'); - - await this.#init; - - const { error } = await this.#detailDataSource.update(id, updatedItem); - - if (!error) { - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server - // Consider notify a workspace if a template is updated in the store while someone is editing it. - // this.#store?.append(updatedMediaItem); - // this.#treeStore?.updateItem(id, updatedItem); - - const notification = { data: { message: `Media saved` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; - } - - // General: - async delete(id: string) { - await this.#init; - - if (!id) { - throw new Error('Document id is missing'); - } - - const { error } = await this.#detailDataSource.delete(id); - - if (!error) { - const notification = { data: { message: `Document deleted` } }; - this.#notificationContext?.peek('positive', notification); - } - - // TODO: we currently don't use the detail store for anything. - // Consider to look up the data before fetching from the server. - // Consider notify a workspace if a template is deleted from the store while someone is editing it. - this.#store?.removeItem(id); - this.#treeStore?.removeItem(id); - - return { error }; - } - - async trash(ids: Array) { - console.log('media trash: ' + ids); - alert('implement trash'); - } - - async move(ids: Array, destination: string | null) { - // TODO: use backend cli when available. - const res = await fetch('/umbraco/management/api/v1/media/move', { - method: 'POST', - body: JSON.stringify({ ids, destination }), - headers: { - 'Content-Type': 'application/json', - }, - }); - const data = await res.json(); - this.#treeStore?.appendItems(data); - } - - async copy(uniques: Array, destination: string) { - console.log(`copy: ${uniques} to ${destination}`); - alert('copy'); - } - - async sortChildrenOf() { - alert('sort'); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts deleted file mode 100644 index 87f634ed49..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { UmbMediaDetailModel } from '../index.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; -import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; - -/** - * @export - * @class UmbMediaStore - * @extends {UmbStoreBase} - * @description - Data Store for Template Details - */ -export class UmbMediaStore extends UmbStoreBase { - /** - * Creates an instance of UmbMediaStore. - * @param {UmbControllerHostElement} host - * @memberof UmbMediaStore - */ - constructor(host: UmbControllerHostElement) { - super(host, UMB_MEDIA_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); - } - - /** - * Retrieve a media from the store - * @param {string} id - * @memberof UmbMediaStore - */ - byId(id: UmbMediaDetailModel['id']) { - return this._data.asObservablePart((x) => x.find((y) => y.id === id)); - } -} - -export const UMB_MEDIA_STORE_CONTEXT = new UmbContextToken('UmbMediaStore'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts deleted file mode 100644 index 7f4fd828c6..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-detail.server.data-source.ts +++ /dev/null @@ -1,168 +0,0 @@ -import type { UmbMediaDetailModel } from '../../index.js'; -import type { UmbDataSource } from '@umbraco-cms/backoffice/repository'; -import type { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for the Template detail that fetches data from the server - * @export - * @class UmbTemplateDetailServerDataSource - * @implements {TemplateDetailDataSource} - */ -export class UmbMediaDetailServerDataSource - implements UmbDataSource -{ - #host: UmbControllerHost; - - /** - * Creates an instance of UmbMediaDetailServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbMediaDetailServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches a Media with the given id from the server - * @param {string} id - * @return {*} - * @memberof UmbMediaDetailServerDataSource - */ - async read(id: string) { - if (!id) { - throw new Error('Id is missing'); - } - - return tryExecuteAndNotify( - this.#host, - // TODO: use backend cli when available. - fetch(`/umbraco/management/api/v1/media/details/${id}`) - .then((res) => res.json()) - .then((res) => res[0] || undefined), - ); - } - - /** - * Creates a new Media scaffold - * @param {(string | null)} parentId - * @return {*} - * @memberof UmbMediaDetailServerDataSource - */ - async createScaffold(parentId: string | null) { - const data = { - id: '', - name: '', - icon: '', - parentId, - contentTypeId: '', - properties: [], - data: [], - variants: [], - }; - - return { data }; - } - - /** - * Inserts a new Media on the server - * @param {Media} media - * @return {*} - * @memberof UmbMediaDetailServerDataSource - */ - async create(media: CreateMediaRequestModel) { - if (!media) throw new Error('Media is missing'); - - let body: string; - - try { - body = JSON.stringify(media); - } catch (error) { - console.error(error); - return Promise.reject(); - } - //return tryExecuteAndNotify(this.#host, MediaResource.postMedia(payload)); - return tryExecuteAndNotify( - this.#host, - fetch('/umbraco/management/api/v1/media/save', { - method: 'POST', - body: body, - headers: { - 'Content-Type': 'application/json', - }, - }).then((res) => res.json()), - ); - } - - /** - * Updates a Media on the server - * @param {Media} Media - * @return {*} - * @memberof UmbMediaDetailServerDataSource - */ - // TODO: Error mistake in this: - async update(id: string, media: UpdateMediaRequestModel) { - if (!id) throw new Error('Key is missing'); - if (!media) throw new Error('Media is missing'); - - const body = JSON.stringify(media); - - return tryExecuteAndNotify( - this.#host, - fetch('/umbraco/management/api/v1/media/save', { - method: 'POST', - body: body, - headers: { - 'Content-Type': 'application/json', - }, - }).then((res) => res.json()), - ); - } - - /** - * Trash a Media on the server - * @param {Media} Media - * @return {*} - * @memberof UmbMediaDetailServerDataSource - */ - async trash(id: string) { - if (!id) { - throw new Error('Id is missing'); - } - - return tryExecuteAndNotify( - this.#host, - fetch('/umbraco/management/api/v1/media/trash', { - method: 'POST', - body: JSON.stringify([id]), - headers: { - 'Content-Type': 'application/json', - }, - }).then((res) => res.json()), - ); - } - - /** - * Deletes a Template on the server - * @param {string} id - * @return {*} - * @memberof UmbTemplateDetailServerDataSource - */ - async delete(id: string) { - if (!id) { - throw new Error('Key is missing'); - } - - return tryExecuteAndNotify( - this.#host, - fetch('/umbraco/management/api/v1/media/delete', { - method: 'POST', - body: JSON.stringify([id]), - headers: { - 'Content-Type': 'application/json', - }, - }).then((res) => res.json()), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts deleted file mode 100644 index f635ef0033..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/sources/media-item.server.data-source.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { UmbItemDataSource } from '@umbraco-cms/backoffice/repository'; -import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { MediaResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for Media items that fetches data from the server - * @export - * @class UmbMediaItemServerDataSource - * @implements {MediaItemDataSource} - */ -export class UmbMediaItemServerDataSource implements UmbItemDataSource { - #host: UmbControllerHost; - - /** - * Creates an instance of UmbMediaItemServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbMediaItemServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Fetches the items for the given ids from the server - * @param {Array} ids - * @memberof UmbMediaItemServerDataSource - */ - async getItems(ids: Array) { - if (!ids) throw new Error('Ids are missing'); - return tryExecuteAndNotify( - this.#host, - MediaResource.getMediaItem({ - id: ids, - }), - ); - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts new file mode 100644 index 0000000000..8c83669ef1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts @@ -0,0 +1,13 @@ +import type { UmbMediaEntityType } from './entity.js'; +import type { UmbVariantModel } from '@umbraco-cms/backoffice/variant'; +import type { ContentUrlInfoModel, MediaValueModel } from '@umbraco-cms/backoffice/backend-api'; + +export interface UmbMediaDetailModel { + mediaType: { unique: string }; + entityType: UmbMediaEntityType; + isTrashed: boolean; + unique: string; + urls: Array; + values: Array; + variants: Array; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index 92663a2ff7..cc4d86449e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -1,10 +1,7 @@ -import { UmbMediaRepository } from '../repository/media.repository.js'; +import { UmbMediaDetailRepository } from '../repository/detail/index.js'; import type { UmbMediaDetailModel } from '../index.js'; -import type { - UmbSaveableWorkspaceContextInterface} from '@umbraco-cms/backoffice/workspace'; -import { - UmbEditableWorkspaceContextBase, -} from '@umbraco-cms/backoffice/workspace'; +import type { UmbSaveableWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; +import { UmbEditableWorkspaceContextBase } from '@umbraco-cms/backoffice/workspace'; import { appendToFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; @@ -16,7 +13,7 @@ export class UmbMediaWorkspaceContext implements UmbSaveableWorkspaceContextInterface, UmbApi { // - public readonly repository: UmbMediaRepository = new UmbMediaRepository(this); + public readonly repository = new UmbMediaDetailRepository(this); #data = new UmbObjectState(undefined); data = this.#data.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts index fc97241312..0baeeb6770 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/section.manifests.ts @@ -1,4 +1,4 @@ -import { UMB_MEDIA_REPOSITORY_ALIAS } from './media/repository/manifests.js'; +import { UMB_MEDIA_DETAIL_REPOSITORY_ALIAS } from './media/repository/index.js'; import type { ManifestDashboardCollection, ManifestSection, @@ -28,7 +28,7 @@ const dashboards: Array = [ meta: { label: 'Media', pathname: 'media-management', - repositoryAlias: UMB_MEDIA_REPOSITORY_ALIAS, + repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, }, conditions: { sections: [sectionAlias], From 5cd4080434ffadae17e26d2574a91c6dfa70a212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 10:09:24 +0100 Subject: [PATCH 667/786] Update input-tiny-mce.element.ts Use super for the getter as well, just to ensure right separation of concerns. --- .../core/components/input-tiny-mce/input-tiny-mce.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 457b945401..64cb646524 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -53,7 +53,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { } get value(): FormDataEntryValue | FormData { - return this._value; + return super.value; } @query('#editor', true) From 04804b98c4368cb89176af5e18047b98b6f52406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 10:33:39 +0100 Subject: [PATCH 668/786] turn of inline --- .../src/mocks/data/data-type/data-type.data.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index e8623bad5e..b039574eae 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -575,7 +575,7 @@ export const data: Array = [ }, { alias: 'useInlineEditingAsDefault', - value: true, + value: false, }, { alias: 'useLiveEditing', From e9a37523e46b84d53471975bd7227cf494386c2d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 11:24:57 +0100 Subject: [PATCH 669/786] mapping --- .../src/mocks/browser-handlers.ts | 2 +- .../src/mocks/data/{ => media}/media.data.ts | 36 ------ .../src/mocks/data/media/media.db.ts | 105 ++++++++++++++++++ .../src/mocks/handlers/media.handlers.ts | 59 ---------- .../mocks/handlers/media/detail.handlers.ts | 45 ++++++++ .../src/mocks/handlers/media/index.ts | 6 + .../src/mocks/handlers/media/item.handlers.ts | 13 +++ .../handlers/media/recycle-bin.handlers.ts | 25 +++++ .../src/mocks/handlers/media/slug.ts | 1 + .../src/mocks/handlers/media/tree.handlers.ts | 18 +++ .../src/mocks/handlers/tree-media.handlers.ts | 26 ----- .../variant-selector.element.ts | 9 +- .../document-property-dataset-context.ts | 13 +-- .../src/packages/documents/documents/types.ts | 4 +- .../media-type-detail.server.data-source.ts | 14 ++- .../media/media/entity-actions/manifests.ts | 4 +- .../entity-bulk-actions/copy/copy.action.ts | 6 +- .../media/entity-bulk-actions/manifests.ts | 8 +- .../entity-bulk-actions/move/move.action.ts | 14 +-- .../entity-bulk-actions/trash/trash.action.ts | 9 +- .../src/packages/media/media/types.ts | 1 + .../media/media/workspace/manifests.ts | 4 +- .../media-workspace-editor.element.ts | 12 +- .../workspace/media-workspace.context.ts | 17 ++- .../workspace/media-workspace.stories.ts | 2 +- .../user-document-start-node.element.ts | 8 +- .../user-media-start-node.element.ts | 18 +-- .../user-workspace-access-settings.element.ts | 6 +- 28 files changed, 290 insertions(+), 195 deletions(-) rename src/Umbraco.Web.UI.Client/src/mocks/data/{ => media}/media.data.ts (74%) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media/detail.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media/item.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media/slug.ts create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/tree-media.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index e23b274607..cde1bb1640 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -16,7 +16,7 @@ import { handlers as objectTypeHandlers } from './handlers/object-type/index.js' import { handlers as healthCheckHandlers } from './handlers/health-check.handlers.js'; import { handlers as profilingHandlers } from './handlers/performance-profiling.handlers.js'; import { handlers as documentHandlers } from './handlers/document/index.js'; -import { handlers as mediaHandlers } from './handlers/media.handlers.js'; +import { handlers as mediaHandlers } from './handlers/media/index.js'; import { handlers as dictionaryHandlers } from './handlers/dictionary.handlers.js'; import { handlers as mediaTypeHandlers } from './handlers/media-type/index.js'; import { handlers as memberGroupHandlers } from './handlers/member-group.handlers.js'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts similarity index 74% rename from src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts rename to src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts index 8d5c6b881f..d699a1c279 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts @@ -1,11 +1,7 @@ -import { UmbEntityData } from './entity.data.js'; -import { createMediaTreeItem } from './utils.js'; import type { - ContentTreeItemResponseModel, MediaItemResponseModel, MediaResponseModel, MediaTreeItemResponseModel, - PagedMediaTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; export type UmbMockMediaModelHack = MediaResponseModel & MediaTreeItemResponseModel & MediaItemResponseModel; @@ -173,35 +169,3 @@ const createMediaItem = (item: UmbMockMediaModel): MediaItemResponseModel => { variants: item.variants, }; }; - -class UmbMediaData extends UmbEntityData { - constructor() { - super(data); - } - - getItems(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id)); - return items.map((item) => createMediaItem(item)); - } - - getTreeRoot(): PagedMediaTreeItemResponseModel { - const items = this.data.filter((item) => item.parent === null); - const treeItems = items.map((item) => createMediaTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItemChildren(id: string): PagedMediaTreeItemResponseModel { - const items = this.data.filter((item) => item.parent?.id === id); - const treeItems = items.map((item) => createMediaTreeItem(item)); - const total = items.length; - return { items: treeItems, total }; - } - - getTreeItem(ids: Array): Array { - const items = this.data.filter((item) => ids.includes(item.id)); - return items.map((item) => createMediaTreeItem(item)); - } -} - -export const umbMediaData = new UmbMediaData(); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts new file mode 100644 index 0000000000..6042aa4c38 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.db.ts @@ -0,0 +1,105 @@ +import { UmbMockEntityTreeManager } from '../entity/entity-tree.manager.js'; +import { UmbMockEntityItemManager } from '../entity/entity-item.manager.js'; +import { UmbMockEntityDetailManager } from '../entity/entity-detail.manager.js'; +import { umbMediaTypeMockDb } from '../media-type/media-type.db.js'; +import { UmbEntityMockDbBase } from '../entity/entity-base.js'; +import { UmbEntityRecycleBin } from '../entity/entity-recycle-bin.js'; +import type { UmbMockMediaModel } from './media.data.js'; +import { data } from './media.data.js'; +import { + ContentStateModel, + type CreateMediaRequestModel, + type MediaItemResponseModel, + type MediaResponseModel, + type MediaTreeItemResponseModel, +} from '@umbraco-cms/backoffice/backend-api'; +import { UmbId } from '@umbraco-cms/backoffice/id'; + +export class UmbMediaMockDB extends UmbEntityMockDbBase { + tree = new UmbMockEntityTreeManager(this, treeItemMapper); + item = new UmbMockEntityItemManager(this, itemMapper); + detail = new UmbMockEntityDetailManager(this, createMockMediaMapper, detailResponseMapper); + recycleBin = new UmbEntityRecycleBin(this.data, treeItemMapper); + + constructor(data: Array) { + super(data); + } +} + +const treeItemMapper = (model: UmbMockMediaModel): Omit => { + const mediaType = umbMediaTypeMockDb.read(model.mediaType.id); + if (!mediaType) throw new Error(`Media type with id ${model.mediaType.id} not found`); + + return { + mediaType: { + hasListView: model.mediaType.hasListView, + icon: model.mediaType.icon, + id: model.mediaType.id, + }, + hasChildren: model.hasChildren, + id: model.id, + isTrashed: model.isTrashed, + noAccess: model.noAccess, + parent: model.parent, + variants: model.variants, + }; +}; + +const createMockMediaMapper = (request: CreateMediaRequestModel): UmbMockMediaModel => { + const mediaType = umbMediaTypeMockDb.read(request.mediaType.id); + if (!mediaType) throw new Error(`Media type with id ${request.mediaType.id} not found`); + + const now = new Date().toString(); + + return { + mediaType: { + id: mediaType.id, + icon: mediaType.icon, + hasListView: false, // TODO: get list from doc type when ready + }, + hasChildren: false, + id: request.id ? request.id : UmbId.new(), + isTrashed: false, + noAccess: false, + parent: request.parent, + values: request.values, + variants: request.variants.map((variantRequest) => { + return { + culture: variantRequest.culture, + segment: variantRequest.segment, + name: variantRequest.name, + createDate: now, + updateDate: now, + state: ContentStateModel.DRAFT, + publishDate: null, + }; + }), + urls: [], + }; +}; + +const detailResponseMapper = (model: UmbMockMediaModel): MediaResponseModel => { + return { + mediaType: model.mediaType, + id: model.id, + isTrashed: model.isTrashed, + urls: model.urls, + values: model.values, + variants: model.variants, + }; +}; + +const itemMapper = (model: UmbMockMediaModel): MediaItemResponseModel => { + return { + mediaType: { + hasListView: model.mediaType.hasListView, + icon: model.mediaType.icon, + id: model.mediaType.id, + }, + id: model.id, + isTrashed: model.isTrashed, + variants: model.variants, + }; +}; + +export const umbMediaMockDb = new UmbMediaMockDB(data); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts deleted file mode 100644 index f8f8624a67..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media.handlers.ts +++ /dev/null @@ -1,59 +0,0 @@ -const { rest } = window.MockServiceWorker; -import { umbMediaData } from '../data/media.data.js'; -import { umbracoPath } from '@umbraco-cms/backoffice/utils'; - -// TODO: add schema -export const handlers = [ - rest.get(umbracoPath('/media/item'), (req, res, ctx) => { - const ids = req.url.searchParams.getAll('id'); - if (!ids) return; - const items = umbMediaData.getItems(ids); - return res(ctx.status(200), ctx.json(items)); - }), - - rest.get('/umbraco/management/api/v1/media/details/:id', (req, res, ctx) => { - console.warn('Please move to schema'); - const id = req.params.id as string; - if (!id) return; - - const media = umbMediaData.getById(id); - - return res(ctx.status(200), ctx.json([media])); - }), - - rest.post('/umbraco/management/api/v1/media/save', async (req, res, ctx) => { - const data = await req.json(); - if (!data) return; - - umbMediaData.save(data.id, data); - - return res(ctx.status(200)); - }), - - rest.post('/umbraco/management/api/v1/media/trash', async (req, res, ctx) => { - const ids = await req.json(); - const trashed = umbMediaData.trash(ids); - return res(ctx.status(200), ctx.json(trashed)); - }), - - rest.get('/umbraco/management/api/v1/tree/media/root', (req, res, ctx) => { - const response = umbMediaData.getTreeRoot(); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get('/umbraco/management/api/v1/tree/media/children', (req, res, ctx) => { - const parentId = req.url.searchParams.get('parentId'); - if (!parentId) return; - const response = umbMediaData.getTreeItemChildren(parentId); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get('/umbraco/management/api/v1/tree/media/item', (req, res, ctx) => { - const ids = req.url.searchParams.getAll('id'); - if (!ids) return; - - const items = umbMediaData.getTreeItem(ids); - - return res(ctx.status(200), ctx.json(items)); - }), -]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/detail.handlers.ts new file mode 100644 index 0000000000..83acb4e569 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/detail.handlers.ts @@ -0,0 +1,45 @@ +const { rest } = window.MockServiceWorker; +import { umbMediaMockDb } from '../../data/media/media.db.js'; +import { UMB_SLUG } from './slug.js'; +import type { CreateMediaRequestModel, UpdateMediaRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const detailHandlers = [ + rest.post(umbracoPath(`${UMB_SLUG}`), async (req, res, ctx) => { + const requestBody = (await req.json()) as CreateMediaRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + + const id = umbMediaMockDb.detail.create(requestBody); + + return res( + ctx.status(201), + ctx.set({ + Location: req.url.href + '/' + id, + 'Umb-Generated-Resource': id, + }), + ); + }), + + rest.get(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const response = umbMediaMockDb.detail.read(id); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.put(umbracoPath(`${UMB_SLUG}/:id`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + const requestBody = (await req.json()) as UpdateMediaRequestModel; + if (!requestBody) return res(ctx.status(400, 'no body found')); + umbMediaMockDb.detail.update(id, requestBody); + return res(ctx.status(200)); + }), + + rest.delete(umbracoPath(`${UMB_SLUG}/:id`), (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + umbMediaMockDb.detail.delete(id); + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/index.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/index.ts new file mode 100644 index 0000000000..963a027993 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/index.ts @@ -0,0 +1,6 @@ +import { recycleBinHandlers } from './recycle-bin.handlers.js'; +import { treeHandlers } from './tree.handlers.js'; +import { itemHandlers } from './item.handlers.js'; +import { detailHandlers } from './detail.handlers.js'; + +export const handlers = [...recycleBinHandlers, ...treeHandlers, ...itemHandlers, ...detailHandlers]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/item.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/item.handlers.ts new file mode 100644 index 0000000000..8050fbeeb3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/item.handlers.ts @@ -0,0 +1,13 @@ +const { rest } = window.MockServiceWorker; +import { umbMediaMockDb } from '../../data/media/media.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const itemHandlers = [ + rest.get(umbracoPath(`${UMB_SLUG}/item`), (req, res, ctx) => { + const ids = req.url.searchParams.getAll('id'); + if (!ids) return; + const items = umbMediaMockDb.item.getItems(ids); + return res(ctx.status(200), ctx.json(items)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts new file mode 100644 index 0000000000..edc15eff9d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/recycle-bin.handlers.ts @@ -0,0 +1,25 @@ +const { rest } = window.MockServiceWorker; +import { umbMediaMockDb } from '../../data/media/media.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const recycleBinHandlers = [ + rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/root`), (req, res, ctx) => { + const response = umbMediaMockDb.recycleBin.tree.getRoot(); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`/recycle-bin${UMB_SLUG}/children`), (req, res, ctx) => { + const parentId = req.url.searchParams.get('parentId'); + if (!parentId) return; + const response = umbMediaMockDb.recycleBin.tree.getChildrenOf(parentId); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.put(umbracoPath(`${UMB_SLUG}/:id/move-to-recycle-bin`), async (req, res, ctx) => { + const id = req.params.id as string; + if (!id) return res(ctx.status(400)); + umbMediaMockDb.recycleBin.trash([id]); + return res(ctx.status(200)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/slug.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/slug.ts new file mode 100644 index 0000000000..4e0336d30b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/slug.ts @@ -0,0 +1 @@ +export const UMB_SLUG = '/media'; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts new file mode 100644 index 0000000000..b57b17e3a1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/media/tree.handlers.ts @@ -0,0 +1,18 @@ +const { rest } = window.MockServiceWorker; +import { umbMediaMockDb } from '../../data/media/media.db.js'; +import { UMB_SLUG } from './slug.js'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +export const treeHandlers = [ + rest.get(umbracoPath(`/tree${UMB_SLUG}/root`), (req, res, ctx) => { + const response = umbMediaMockDb.tree.getRoot(); + return res(ctx.status(200), ctx.json(response)); + }), + + rest.get(umbracoPath(`/tree${UMB_SLUG}/children`), (req, res, ctx) => { + const parentId = req.url.searchParams.get('parentId'); + if (!parentId) return; + const response = umbMediaMockDb.tree.getChildrenOf(parentId); + return res(ctx.status(200), ctx.json(response)); + }), +]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/tree-media.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/tree-media.handlers.ts deleted file mode 100644 index afb81d1196..0000000000 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/tree-media.handlers.ts +++ /dev/null @@ -1,26 +0,0 @@ -const { rest } = window.MockServiceWorker; -import { umbMediaData } from '../data/media.data.js'; - -// TODO: add schema -export const handlers = [ - rest.get('/umbraco/management/api/v1/tree/media/root', (req, res, ctx) => { - const response = umbMediaData.getTreeRoot(); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get('/umbraco/management/api/v1/tree/media/children', (req, res, ctx) => { - const parentId = req.url.searchParams.get('parentId'); - if (!parentId) return; - const response = umbMediaData.getTreeItemChildren(parentId); - return res(ctx.status(200), ctx.json(response)); - }), - - rest.get('/umbraco/management/api/v1/tree/media/item', (req, res, ctx) => { - const ids = req.url.searchParams.getAll('id'); - if (!ids) return; - - const items = umbMediaData.getTreeItem(ids); - - return res(ctx.status(200), ctx.json(items)); - }), -]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.element.ts index 7e608a8c58..f2fb43d63b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/variant-selector/variant-selector.element.ts @@ -17,7 +17,8 @@ import { } from '@umbraco-cms/backoffice/external/lit'; import { UMB_WORKSPACE_SPLIT_VIEW_CONTEXT, type ActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { type DocumentVariantResponseModel, ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; +import { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbVariantModel } from '@umbraco-cms/backoffice/variant'; @customElement('umb-variant-selector') export class UmbVariantSelectorElement extends UmbLitElement { @@ -25,7 +26,7 @@ export class UmbVariantSelectorElement extends UmbLitElement { private _popoverElement?: UUIPopoverContainerElement; @state() - _variants: Array = []; + _variants: Array = []; // TODO: Stop using document context specific ActiveVariant type. @state() @@ -146,11 +147,11 @@ export class UmbVariantSelectorElement extends UmbLitElement { } } - private _switchVariant(variant: DocumentVariantResponseModel) { + private _switchVariant(variant: UmbVariantModel) { this.#splitViewContext?.switchVariant(UmbVariantId.Create(variant)); } - private _openSplitView(variant: DocumentVariantResponseModel) { + private _openSplitView(variant: UmbVariantModel) { this.#splitViewContext?.openSplitView(UmbVariantId.Create(variant)); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts index 7fdadb021a..fb8829e16d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts @@ -1,15 +1,12 @@ import type { UmbDocumentWorkspaceContext } from '../workspace/index.js'; -import type { - UmbNameablePropertyDatasetContext, - UmbPropertyDatasetContext} from '@umbraco-cms/backoffice/property'; -import { - UMB_PROPERTY_DATASET_CONTEXT -} from '@umbraco-cms/backoffice/property'; -import type { DocumentVariantResponseModel, PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbNameablePropertyDatasetContext, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; +import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; +import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; +import type { UmbVariantModel } from '@umbraco-cms/backoffice/variant'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; // TODO: This code can be split into a UmbContentTypePropertyDatasetContext, leaving just the publishing state and methods to this class. @@ -23,7 +20,7 @@ export class UmbDocumentPropertyDataContext return this.#variantId; } - #currentVariant = new UmbObjectState(undefined); + #currentVariant = new UmbObjectState(undefined); currentVariant = this.#currentVariant.asObservable(); name = this.#currentVariant.asObservablePart((x) => x?.name); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts index d0a528bf5f..f54ebaf61d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/types.ts @@ -1,5 +1,6 @@ import type { UmbDocumentEntityType } from './entity.js'; -import type { ContentStateModel, ContentUrlInfoModel, DocumentValueModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbVariantModel } from '@umbraco-cms/backoffice/variant'; +import type { ContentUrlInfoModel, DocumentValueModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDocumentDetailModel { documentType: { unique: string }; @@ -7,6 +8,7 @@ export interface UmbDocumentDetailModel { isTrashed: boolean; template: { id: string } | null; // TODO: change to unique when template is updated unique: string; + parentUnique: string | null; urls: Array; values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index 04f04289ee..48f439a116 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -83,8 +83,18 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { + return { + contentType: { unique: allowedMediaType.mediaType.id }, + sortOrder: allowedMediaType.sortOrder, + }; + }), + compositions: data.compositions.map((composition) => { + return { + contentType: { unique: composition.mediaType.id }, + compositionType: composition.compositionType, + }; + }), }; return { data: mediaType }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts index 931c1d206a..606ae83fb3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_MEDIA_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UMB_MEDIA_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; import { UmbTrashEntityAction } from '@umbraco-cms/backoffice/entity-action'; @@ -11,7 +11,7 @@ const entityActions: Array = [ meta: { icon: 'icon-trash', label: 'Trash', - repositoryAlias: UMB_MEDIA_REPOSITORY_ALIAS, + repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, entityTypes: ['media'], }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts index f7cd5f5ec7..e008dc2002 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/copy/copy.action.ts @@ -1,14 +1,14 @@ -import type { UmbMediaRepository } from '../../repository/media.repository.js'; +import type { UmbMediaDetailRepository } from '../../repository/index.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbMediaCopyEntityBulkAction extends UmbEntityBulkActionBase { +export class UmbMediaCopyEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { super(host, repositoryAlias, selection); } async execute() { console.log(`execute copy for: ${this.selection}`); - await this.repository?.copy([], ''); + //await this.repository?.copy([], ''); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts index 460005a0e4..5f6ac813a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_MEDIA_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UMB_MEDIA_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_MEDIA_COLLECTION_ALIAS } from '../collection/index.js'; import { UmbMediaMoveEntityBulkAction } from './move/move.action.js'; import { UmbMediaCopyEntityBulkAction } from './copy/copy.action.js'; @@ -15,7 +15,7 @@ const entityActions: Array = [ api: UmbMediaMoveEntityBulkAction, meta: { label: 'Move', - repositoryAlias: UMB_MEDIA_REPOSITORY_ALIAS, + repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, }, conditions: [ { @@ -33,7 +33,7 @@ const entityActions: Array = [ api: UmbMediaCopyEntityBulkAction, meta: { label: 'Copy', - repositoryAlias: UMB_MEDIA_REPOSITORY_ALIAS, + repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, }, conditions: [ { @@ -51,7 +51,7 @@ const entityActions: Array = [ api: UmbMediaTrashEntityBulkAction, meta: { label: 'Trash', - repositoryAlias: UMB_MEDIA_REPOSITORY_ALIAS, + repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, }, conditions: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts index b3493213e1..c8c021fdba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-bulk-actions/move/move.action.ts @@ -1,15 +1,11 @@ -import type { UmbMediaRepository } from '../../repository/media.repository.js'; +import type { UmbMediaDetailRepository } from '../../repository/index.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import type { - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_MODAL_MANAGER_CONTEXT, - UMB_MEDIA_TREE_PICKER_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_MEDIA_TREE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase { +export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { @@ -33,7 +29,7 @@ export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase { +export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase { #modalContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts index 8c83669ef1..bbe3569beb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/types.ts @@ -7,6 +7,7 @@ export interface UmbMediaDetailModel { entityType: UmbMediaEntityType; isTrashed: boolean; unique: string; + parentUnique: string | null; urls: Array; values: Array; variants: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts index 522437690c..7c50664107 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_MEDIA_REPOSITORY_ALIAS } from '../repository/manifests.js'; +import { UMB_MEDIA_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { UmbSaveWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; import type { ManifestWorkspace, @@ -68,7 +68,7 @@ const workspaceViewCollections: Array = [ pathname: 'collection', icon: 'icon-grid', entityType: 'media', - repositoryAlias: UMB_MEDIA_REPOSITORY_ALIAS, + repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS, }, conditions: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts index 8fa512cfde..5dba697b66 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts @@ -5,7 +5,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-media-workspace-editor') export class UmbMediaWorkspaceEditorElement extends UmbLitElement { @state() - _id?: string; + _unique?: string; #umbWorkspaceContext?: typeof UMB_MEDIA_WORKSPACE_CONTEXT.TYPE; @@ -14,23 +14,23 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { this.consumeContext(UMB_MEDIA_WORKSPACE_CONTEXT, (instance) => { this.#umbWorkspaceContext = instance; - this.#observeId(); + this.#observeUnique(); }); } - #observeId() { + #observeUnique() { if (!this.#umbWorkspaceContext) return; - this.observe(this.#umbWorkspaceContext.data, (data) => (this._id = data?.id)); + this.observe(this.#umbWorkspaceContext.data, (data) => (this._unique = data?.unique)); } render() { - if (!this._id) return nothing; + if (!this._unique) return nothing; return html` + unique="${this._unique}"> `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index cc4d86449e..51aa189e57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -17,7 +17,8 @@ export class UmbMediaWorkspaceContext #data = new UmbObjectState(undefined); data = this.#data.asObservable(); - name = this.#data.asObservablePart((data) => data?.name); + // TODO: get correct variant name + name = this.#data.asObservablePart((data) => data?.variants[0].name); constructor(host: UmbControllerHost) { super(host, 'Umb.Workspace.Media'); @@ -29,17 +30,13 @@ export class UmbMediaWorkspaceContext // TODO: this should be async because it can only return the id if the data is loaded. getEntityId() { - return this.getData()?.id || ''; + return this.getData()?.unique; } getEntityType() { return 'media'; } - setName(name: string) { - this.#data.update({ name }); - } - setPropertyValue(alias: string, value: unknown) { const entry = { alias: alias, value: value }; @@ -51,16 +48,16 @@ export class UmbMediaWorkspaceContext } } - async load(entityId: string) { - const { data } = await this.repository.requestById(entityId); + async load(unique: string) { + const { data } = await this.repository.requestByUnique(unique); if (data) { this.setIsNew(false); this.#data.setValue(data); } } - async create(parentId: string | null) { - const { data } = await this.repository.createScaffold(parentId); + async create(parentUnique: string | null) { + const { data } = await this.repository.createScaffold(parentUnique); if (!data) return; this.setIsNew(true); // TODO: This is a hack to get around the fact that the data is not typed correctly. diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts index ab3e2d7050..277e9fd974 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.stories.ts @@ -1,6 +1,6 @@ import './media-workspace.element.js'; import type { Meta, Story } from '@storybook/web-components'; -import { data as mediaNodes } from '../../../../mocks/data/media.data.js'; +import { data as mediaNodes } from '../../../../mocks/data/media/media.data.js'; import type { UmbMediaWorkspaceElement } from './media-workspace.element.js'; import { html, ifDefined } from '@umbraco-cms/backoffice/external/lit'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts index 4c04fa1378..08b223bfbe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts @@ -7,7 +7,7 @@ import { UmbDocumentItemRepository } from '@umbraco-cms/backoffice/document'; @customElement('umb-user-document-start-node') export class UmbUserDocumentStartNodeElement extends UmbLitElement { @property({ type: Array, attribute: false }) - ids: Array = []; + uniques: Array = []; @state() _displayValue: Array = []; @@ -15,13 +15,13 @@ export class UmbUserDocumentStartNodeElement extends UmbLitElement { #itemRepository = new UmbDocumentItemRepository(this); protected async firstUpdated(): Promise { - if (this.ids.length === 0) return; - const { data } = await this.#itemRepository.requestItems(this.ids); + if (this.uniques.length === 0) return; + const { data } = await this.#itemRepository.requestItems(this.uniques); this._displayValue = data || []; } render() { - if (this.ids.length < 1) { + if (this.uniques.length < 1) { return html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts index ecd5582496..c774965dcd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts @@ -1,27 +1,27 @@ import { css, html, customElement, property, repeat, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbMediaRepository } from '@umbraco-cms/backoffice/media'; +import type { UmbMediaItemModel } from '@umbraco-cms/backoffice/media'; +import { UmbMediaItemRepository } from '@umbraco-cms/backoffice/media'; @customElement('umb-user-media-start-node') export class UmbUserMediaStartNodeElement extends UmbLitElement { @property({ type: Array, attribute: false }) - ids: Array = []; + uniques: Array = []; @state() - _displayValue: Array = []; + _displayValue: Array = []; - #itemRepository = new UmbMediaRepository(this); + #itemRepository = new UmbMediaItemRepository(this); protected async firstUpdated(): Promise { - if (this.ids.length === 0) return; - const { data } = await this.#itemRepository.requestItems(this.ids); + if (this.uniques.length === 0) return; + const { data } = await this.#itemRepository.requestItems(this.uniques); this._displayValue = data || []; } render() { - if (this.ids.length < 1) { + if (this.uniques.length < 1) { return html` @@ -31,7 +31,7 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { return repeat( this._displayValue, - (item) => item.id, + (item) => item.unique, (item) => { return html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts index 5860dca7d7..6de90ad2e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/components/user-workspace-access-settings/user-workspace-access-settings.element.ts @@ -1,5 +1,5 @@ import { UMB_USER_WORKSPACE_CONTEXT } from '../../user-workspace.context.js'; -import { html, customElement, state, css, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UserResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -85,12 +85,12 @@ export class UmbUserWorkspaceAccessSettingsElement extends UmbLitElement { #renderDocumentStartNodes() { return html` Content - `; + `; } #renderMediaStartNodes() { return html` Media - `; + `; } static styles = [ From 699aa83295aaf15653a83468615920a360deabb6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 11:37:49 +0100 Subject: [PATCH 670/786] mapping --- .../document-detail.server.data-source.ts | 16 +++++++++++-- .../detail/media-detail.server.data-source.ts | 23 ++++++++++++++----- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts index a287d1f9fc..9dbcec6d84 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts @@ -35,6 +35,7 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource { + return { + state: variant.state, + culture: variant.culture || null, + segment: variant.segment || null, + name: variant.name, + publishDate: variant.publishDate || null, + createDate: variant.createDate, + updateDate: variant.updateDate, + }; + }), urls: data.urls, template: data.template ? { id: data.template.id } : null, documentType: { unique: data.documentType.id }, @@ -101,7 +113,7 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource { + return { + state: null, + culture: variant.culture || null, + segment: variant.segment || null, + name: variant.name, + publishDate: null, + createDate: variant.createDate, + updateDate: variant.updateDate, + }; + }), urls: data.urls, mediaType: { unique: data.mediaType.id }, isTrashed: data.isTrashed, }; - return { data: document }; + return { data: media }; } /** @@ -99,9 +111,8 @@ export class UmbMediaServerDataSource implements UmbDetailDataSource Date: Mon, 29 Jan 2024 11:44:27 +0100 Subject: [PATCH 671/786] add client models --- .../src/packages/media/media/tree/types.ts | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts index f7fc95694a..2d882ba906 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts @@ -1,8 +1,26 @@ -import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbMediaEntityType, UmbMediaRootEntityType } from '../entity.js'; +import type { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbMediaTreeItemModel extends Omit { +export interface UmbMediaTreeItemModel extends UmbUniqueTreeItemModel { + entityType: UmbMediaEntityType; noAccess: boolean; isTrashed: boolean; + isProtected: boolean; + mediaType: { + id: string; + icon: string; + hasListView: boolean; + }; + variants: Array; } -export interface UmbMediaTreeRootModel extends UmbEntityTreeRootModel {} +export interface UmbMediaTreeRootModel extends UmbUniqueTreeRootModel { + entityType: UmbMediaRootEntityType; +} + +export interface UmbMediaTreeItemVariantModel { + name: string; + culture: string | null; + state: ContentStateModel; // TODO: make our own enum for this. We might have states for "unsaved changes" etc. +} From 4d50a3a3c5c16209bd5bc18abed38668f74a55f1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 12:47:28 +0100 Subject: [PATCH 672/786] mapping --- .../file-system/file-system-item.manager.ts | 8 ++++- .../src/mocks/data/utils.ts | 33 ------------------- ...ent-recycle-bin-tree.server.data-source.ts | 1 + .../documents/recycle-bin/tree/types.ts | 2 +- .../item/document-item.server.data-source.ts | 1 + .../tree/document-tree.server.data-source.ts | 1 + .../document-workspace-view-info.element.ts | 3 +- .../media-type-detail.server.data-source.ts | 30 ++++++++++++++--- .../input-media/input-media.context.ts | 4 +-- .../input-media/input-media.element.ts | 24 +++++++------- .../item/media-item.server.data-source.ts | 1 + .../media/media/repository/item/types.ts | 1 + .../media/media/tree/media-tree.repository.ts | 7 ++-- .../tree/media-tree.server.data-source.ts | 16 +++++++-- .../src/packages/media/media/tree/types.ts | 1 - .../workspace/media-workspace.context.ts | 4 +-- .../user-create-success-modal.element.ts | 20 ++++------- 17 files changed, 78 insertions(+), 79 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts index e7e99ef144..d3d42517f8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/file-system/file-system-item.manager.ts @@ -1,5 +1,4 @@ import type { UmbData } from '../data.js'; -import { createFileItemResponseModelBaseModel } from '../utils.js'; import type { FileSystemItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMockFileSystemItemManager { @@ -14,3 +13,10 @@ export class UmbMockFileSystemItemManager createFileItemResponseModelBaseModel(item)); } } + +const createFileItemResponseModelBaseModel = (item: any): FileSystemItemResponseModelBaseModel => ({ + path: item.path, + name: item.name, + parent: item.parent, + isFolder: item.isFolder, +}); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 1c71906162..3e46447f94 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -1,12 +1,8 @@ import type { - ContentTreeItemResponseModel, FolderTreeItemResponseModel, FileSystemTreeItemPresentationModel, - FileSystemItemResponseModelBaseModel, - MediaTreeItemResponseModel, NamedEntityTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbMediaDetailModel } from '@umbraco-cms/backoffice/media'; export const createEntityTreeItem = (item: any): NamedEntityTreeItemResponseModel => { return { @@ -25,28 +21,6 @@ export const folderTreeItemMapper = (item: any): FolderTreeItemResponseModel => }; }; -export const createContentTreeItem = (item: any): ContentTreeItemResponseModel => { - // TODO: There we have to adapt to variants as part of the tree model: - return { - ...createEntityTreeItem(item), - noAccess: item.noAccess, - isTrashed: item.isTrashed, - }; -}; - -export const createMediaTreeItem = (item: UmbMediaDetailModel): MediaTreeItemResponseModel => { - return { - ...createContentTreeItem(item), - type: 'media', - mediaType: { - // TODO: get this from media type - id: '', - icon: '', - hasListView: false, - }, - }; -}; - export const createFileSystemTreeItem = (item: any): Omit => { return { path: item.path, @@ -57,13 +31,6 @@ export const createFileSystemTreeItem = (item: any): Omit ({ - path: item.path, - name: item.name, - parent: item.parent, - isFolder: item.isFolder, -}); - export const arrayFilter = (filterBy: Array, value?: Array): boolean => { // if a filter is not set, return all items if (!filterBy) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts index 52ec8040fe..ef9a6b492b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/document-recycle-bin-tree.server.data-source.ts @@ -49,5 +49,6 @@ const mapper = (item: DocumentRecycleBinItemResponseModel): UmbDocumentRecycleBi entityType: 'document-recycle-bin', hasChildren: item.hasChildren, isFolder: false, + name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts index 82bfe4a673..030dc87f93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/types.ts @@ -1,5 +1,5 @@ import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbDocumentRecycleBinTreeItemModel extends Omit {} +export interface UmbDocumentRecycleBinTreeItemModel extends UmbEntityTreeItemModel {} export interface UmbDocumentRecycleBinTreeRootModel extends UmbEntityTreeRootModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data-source.ts index 4de7d169a6..3daf71e07b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.server.data-source.ts @@ -47,5 +47,6 @@ const mapper = (item: DocumentItemResponseModel): UmbDocumentItemModel => { state: variant.state, }; }), + name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index fd6a8cc643..ea18bbd9e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -60,6 +60,7 @@ const mapper = (item: DocumentTreeItemResponseModel): UmbDocumentTreeItemModel = state: variant.state, }; }), + name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts index 50a19c8f65..531b270ecb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.ts @@ -8,7 +8,6 @@ import './document-workspace-view-info-history.element.js'; import './document-workspace-view-info-reference.element.js'; import type { UmbDocumentWorkspaceContext } from '@umbraco-cms/backoffice/document'; import type { ContentUrlInfoModel } from '@umbraco-cms/backoffice/backend-api'; -import { UmbCurrentUserContext } from '@umbraco-cms/backoffice/current-user'; @customElement('umb-document-workspace-view-info') export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement { @@ -67,7 +66,7 @@ export class UmbDocumentWorkspaceViewInfoElement extends UmbLitElement { /** TODO: Doubt this is the right way to get the create date... */ this.observe((this._workspaceContext as UmbDocumentWorkspaceContext).variants, (variants) => { - this._createDate = Array.isArray(variants) ? variants[0].createDate : 'Unknown'; + this._createDate = Array.isArray(variants) ? variants[0].createDate || 'Unknown' : 'Unknown'; }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index 48f439a116..7fc8e01b32 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -122,10 +122,20 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { + return { + mediaType: { id: allowedContentType.contentType.unique }, + sortOrder: allowedContentType.sortOrder, + }; + }), + compositions: model.compositions.map((composition) => { + return { + mediaType: { id: composition.contentType.unique }, + compositionType: composition.compositionType, + }; + }), id: model.unique, - containerId: model.parentUnique, + folder: model.parentUnique ? { id: model.parentUnique } : null, }; const { data, error } = await tryExecuteAndNotify( @@ -163,8 +173,18 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { + return { + mediaType: { id: allowedContentType.contentType.unique }, + sortOrder: allowedContentType.sortOrder, + }; + }), + compositions: model.compositions.map((composition) => { + return { + mediaType: { id: composition.contentType.unique }, + compositionType: composition.compositionType, + }; + }), }; const { data, error } = await tryExecuteAndNotify( diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts index 6099956b5a..7bd3ced3b4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts @@ -1,9 +1,9 @@ +import type { UmbMediaItemModel } from '../../repository/item/types.js'; import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_MEDIA_TREE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; -import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export class UmbMediaPickerContext extends UmbPickerInputContext { +export class UmbMediaPickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 5de762fce7..068a5c42fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -1,8 +1,8 @@ +import type { UmbMediaItemModel } from '../../repository/index.js'; import { UmbMediaPickerContext } from './input-media.context.js'; import { css, html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; @@ -99,7 +99,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { private _editMediaPath = ''; @state() - private _items?: Array; + private _items?: Array; #pickerContext = new UmbMediaPickerContext(this); @@ -135,7 +135,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { return undefined; } - #pickableFilter: (item: MediaItemResponseModel) => boolean = (item) => { + #pickableFilter: (item: UmbMediaItemModel) => boolean = (item) => { /* TODO: Media item doesn't have the content/media-type ID available to query. Commenting out until the Management API model is updated. [LK] */ @@ -154,7 +154,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { }); } - #openItem(item: MediaItemResponseModel) { + #openItem(item: UmbMediaItemModel) { // TODO: Implement the Media editing infinity editor. [LK] console.log('TODO: _openItem', item); } @@ -167,7 +167,7 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { if (!this._items) return; return html`${repeat( this._items, - (item) => item.id, + (item) => item.unique, (item) => this.#renderItem(item), )}`; } @@ -186,12 +186,12 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { `; } - #renderItem(item: MediaItemResponseModel) { + #renderItem(item: UmbMediaItemModel) { // TODO: `file-ext` value has been hardcoded here. Find out if API model has value for it. [LK] return html` ${this.#renderIsTrashed(item)} @@ -199,7 +199,9 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { - this.#pickerContext.requestRemoveItem(item.id!)} label="Remove media ${item.name}"> + this.#pickerContext.requestRemoveItem(item.unique)} + label="Remove media ${item.name}"> @@ -207,17 +209,17 @@ export class UmbInputMediaElement extends FormControlMixin(UmbLitElement) { `; } - #renderIsTrashed(item: MediaItemResponseModel) { + #renderIsTrashed(item: UmbMediaItemModel) { if (!item.isTrashed) return; return html`Trashed`; } - #renderOpenButton(item: MediaItemResponseModel) { + #renderOpenButton(item: UmbMediaItemModel) { if (!this.showOpenButton) return; return html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts index 7453cda3ff..95d11dab64 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts @@ -46,5 +46,6 @@ const mapper = (item: MediaItemResponseModel): UmbMediaItemModel => { state: variant.state, }; }), + name: item.variants[0].name, // TODO: get correct variant name }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts index 1b27dafb08..e521e58d2b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts @@ -9,6 +9,7 @@ export interface UmbMediaItemModel { hasListView: boolean; }; variants: Array; + name: string; // TODO: get correct variant name } export interface UmbMediaItemVariantModel { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts index 29d534bf1a..fc94aeb058 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts @@ -15,13 +15,12 @@ export class UmbMediaTreeRepository } async requestTreeRoot() { - const data = { - id: null, + const data: UmbMediaTreeRootModel = { + unique: null, entityType: UMB_MEDIA_ROOT_ENTITY_TYPE, - name: 'Medias', + name: 'Media', icon: 'icon-folder', hasChildren: true, - isContainer: false, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index 1bde4f6771..611c039b92 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -1,3 +1,4 @@ +import { UMB_MEDIA_ENTITY_TYPE } from '../entity.js'; import type { UmbMediaTreeItemModel } from './types.js'; import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; import { MediaResource, type MediaTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -43,12 +44,21 @@ const getChildrenOf = (parentUnique: string | null) => { const mapper = (item: MediaTreeItemResponseModel): UmbMediaTreeItemModel => { return { - id: item.id, - parentId: item.parent ? item.parent.id : null, - entityType: 'media', + unique: item.id, + parentUnique: item.parent ? item.parent.id : null, + entityType: UMB_MEDIA_ENTITY_TYPE, hasChildren: item.hasChildren, noAccess: item.noAccess, isTrashed: item.isTrashed, isFolder: false, + mediaType: item.mediaType, + name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. + variants: item.variants.map((variant) => { + return { + name: variant.name, + culture: variant.culture || null, + state: variant.state, + }; + }), }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts index 2d882ba906..266033c141 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts @@ -6,7 +6,6 @@ export interface UmbMediaTreeItemModel extends UmbUniqueTreeItemModel { entityType: UmbMediaEntityType; noAccess: boolean; isTrashed: boolean; - isProtected: boolean; mediaType: { id: string; icon: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index 51aa189e57..93d54fe875 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -42,9 +42,9 @@ export class UmbMediaWorkspaceContext const currentData = this.#data.value; if (currentData) { - const newDataSet = appendToFrozenArray(currentData.data, entry, (x) => x.alias); + const newDataSet = appendToFrozenArray(currentData.values, entry, (x) => x.alias); - this.#data.update({ data: newDataSet }); + this.#data.update({ values: newDataSet }); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts index 6e0a626157..4c3ee3f279 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/create/user-create-success-modal.element.ts @@ -1,20 +1,12 @@ import { UmbUserItemRepository } from '../../repository/item/user-item.repository.js'; +import type { UmbUserItemModel } from '../../repository/item/types.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIInputPasswordElement } from '@umbraco-cms/backoffice/external/uui'; -import type { - UmbNotificationDefaultData, - UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; -import { - UMB_NOTIFICATION_CONTEXT, -} from '@umbraco-cms/backoffice/notification'; -import type { - UmbCreateUserSuccessModalData, - UmbCreateUserSuccessModalValue} from '@umbraco-cms/backoffice/modal'; -import { - UmbModalBaseElement, -} from '@umbraco-cms/backoffice/modal'; -import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbNotificationDefaultData, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbCreateUserSuccessModalData, UmbCreateUserSuccessModalValue } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @customElement('umb-user-create-success-modal') export class UmbUserCreateSuccessModalElement extends UmbModalBaseElement< @@ -22,7 +14,7 @@ export class UmbUserCreateSuccessModalElement extends UmbModalBaseElement< UmbCreateUserSuccessModalValue > { @state() - _userItem?: UserItemResponseModel; + _userItem?: UmbUserItemModel; #userItemRepository = new UmbUserItemRepository(this); #notificationContext?: UmbNotificationContext; From 865ebc47835bd0564cc6ba71e7ece4fa0df3c2b0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 12:47:40 +0100 Subject: [PATCH 673/786] temp add name --- .../src/packages/documents/documents/repository/item/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts index 951687a15e..61e2fddbee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/types.ts @@ -1,6 +1,7 @@ import type { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; export interface UmbDocumentItemModel { + name: string; // TODO: this is not correct. We need to get it from the variants. This is a temp solution. unique: string; isTrashed: boolean; isProtected: boolean; From 33465ffff25ce444319b56240a88c2d3636f9a55 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 12:54:28 +0100 Subject: [PATCH 674/786] mapping --- .../components/input-document/input-document.element.ts | 8 +++++--- .../documents/tree/document-tree.server.data-source.ts | 6 +++++- .../src/packages/documents/documents/tree/types.ts | 2 +- .../media/media/tree/media-tree.server.data-source.ts | 6 +++++- .../src/packages/media/media/tree/types.ts | 2 +- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 9b8321d11f..0528920832 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -1,8 +1,8 @@ +import type { UmbDocumentTreeItemModel } from '../../tree/types.js'; import { UmbDocumentPickerContext } from './input-document.context.js'; import { css, html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; @@ -139,9 +139,9 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { return undefined; } - #pickableFilter: (item: DocumentTreeItemResponseModel) => boolean = (item) => { + #pickableFilter: (item: UmbDocumentTreeItemModel) => boolean = (item) => { if (this.allowedContentTypeIds && this.allowedContentTypeIds.length > 0) { - return this.allowedContentTypeIds.includes(item.documentType.id); + return this.allowedContentTypeIds.includes(item.documentType.unique); } return true; }; @@ -151,6 +151,8 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { console.log('_openPicker', [this.startNodeId, this.ignoreUserStartNodes]); this.#pickerContext.openPicker({ hideTreeRoot: true, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore pickableFilter: this.#pickableFilter, }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index ea18bbd9e8..736482f3f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -52,7 +52,11 @@ const mapper = (item: DocumentTreeItemResponseModel): UmbDocumentTreeItemModel = isTrashed: item.isTrashed, hasChildren: item.hasChildren, isProtected: item.isProtected, - documentType: item.documentType, + documentType: { + unique: item.documentType.id, + icon: item.documentType.icon, + hasListView: item.documentType.hasListView, + }, variants: item.variants.map((variant) => { return { name: variant.name, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts index 23a8847c97..9f6e5a90ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/types.ts @@ -8,7 +8,7 @@ export interface UmbDocumentTreeItemModel extends UmbUniqueTreeItemModel { isTrashed: boolean; isProtected: boolean; documentType: { - id: string; + unique: string; icon: string; hasListView: boolean; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index 611c039b92..23c6d5cdd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -51,7 +51,11 @@ const mapper = (item: MediaTreeItemResponseModel): UmbMediaTreeItemModel => { noAccess: item.noAccess, isTrashed: item.isTrashed, isFolder: false, - mediaType: item.mediaType, + mediaType: { + unique: item.mediaType.id, + icon: item.mediaType.icon, + hasListView: item.mediaType.hasListView, + }, name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. variants: item.variants.map((variant) => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts index 266033c141..56579a5c70 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts @@ -7,7 +7,7 @@ export interface UmbMediaTreeItemModel extends UmbUniqueTreeItemModel { noAccess: boolean; isTrashed: boolean; mediaType: { - id: string; + unique: string; icon: string; hasListView: boolean; }; From 751c0a2c188af155a1bb22caba420ec01dede21f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 13:11:24 +0100 Subject: [PATCH 675/786] use parent in mock data --- .../mocks/data/data-type/data-type.data.ts | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index bd3f24d347..06c64feefb 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -14,7 +14,7 @@ export const data: Array = [ { name: 'Folder 1', id: 'dt-folder1', - parentId: null, + parent: null, isFolder: true, hasChildren: false, editorAlias: '', @@ -23,7 +23,7 @@ export const data: Array = [ { name: 'Folder 2', id: 'dt-folder2', - parentId: null, + parent: null, isFolder: true, hasChildren: true, editorAlias: '', @@ -31,7 +31,7 @@ export const data: Array = [ }, { id: '0cc0eba1-9960-42c9-bf9b-60e150b429ae', - parentId: null, + parent: null, name: 'Textstring', editorAlias: 'Umbraco.TextBox', editorUiAlias: 'Umb.PropertyEditorUi.TextBox', @@ -42,7 +42,7 @@ export const data: Array = [ { name: 'Text', id: 'dt-textBox', - parentId: null, + parent: null, editorAlias: 'Umbraco.TextBox', editorUiAlias: 'Umb.PropertyEditorUi.TextBox', hasChildren: false, @@ -57,7 +57,7 @@ export const data: Array = [ { name: 'Text Area', id: 'dt-textArea', - parentId: null, + parent: null, editorAlias: 'Umbraco.TextArea', editorUiAlias: 'Umb.PropertyEditorUi.TextArea', hasChildren: false, @@ -67,7 +67,7 @@ export const data: Array = [ { name: 'My JS Property Editor', id: 'dt-custom', - parentId: null, + parent: null, editorAlias: 'Umbraco.Label', editorUiAlias: 'My.PropertyEditorUI.Custom', hasChildren: false, @@ -77,7 +77,7 @@ export const data: Array = [ { name: 'Color Picker', id: 'dt-colorPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.ColorPicker', editorUiAlias: 'Umb.PropertyEditorUi.ColorPicker', hasChildren: false, @@ -133,7 +133,7 @@ export const data: Array = [ { name: 'Content Picker', id: 'dt-contentPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.ContentPicker', editorUiAlias: 'Umb.PropertyEditorUi.DocumentPicker', hasChildren: false, @@ -148,7 +148,7 @@ export const data: Array = [ { name: 'Eye Dropper', id: 'dt-eyeDropper', - parentId: null, + parent: null, editorAlias: 'Umbraco.ColorPicker.EyeDropper', editorUiAlias: 'Umb.PropertyEditorUi.EyeDropper', hasChildren: false, @@ -185,7 +185,7 @@ export const data: Array = [ { name: 'Multi URL Picker', id: 'dt-multiUrlPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.MultiUrlPicker', editorUiAlias: 'Umb.PropertyEditorUi.MultiUrlPicker', hasChildren: false, @@ -216,7 +216,7 @@ export const data: Array = [ { name: 'Multi Node Tree Picker', id: 'dt-multiNodeTreePicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.MultiNodeTreePicker', editorUiAlias: 'Umb.PropertyEditorUi.TreePicker', hasChildren: false, @@ -254,7 +254,7 @@ export const data: Array = [ { name: 'Date Picker', id: 'dt-datePicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.DateTime', editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', hasChildren: false, @@ -277,7 +277,7 @@ export const data: Array = [ { name: 'Date Picker With Time', id: 'dt-datePicker-time', - parentId: null, + parent: null, editorAlias: 'Umbraco.DateTime', hasChildren: false, isFolder: false, @@ -295,7 +295,7 @@ export const data: Array = [ { name: 'Time', id: 'dt-time', - parentId: null, + parent: null, editorAlias: 'Umbraco.DateTime', editorUiAlias: 'Umb.PropertyEditorUi.DatePicker', hasChildren: false, @@ -314,7 +314,7 @@ export const data: Array = [ { name: 'Email', id: 'dt-email', - parentId: null, + parent: null, editorAlias: 'Umbraco.EmailAddress', editorUiAlias: 'Umb.PropertyEditorUi.Email', hasChildren: false, @@ -329,7 +329,7 @@ export const data: Array = [ { name: 'Multiple Text String', id: 'dt-multipleTextString', - parentId: null, + parent: null, editorAlias: 'Umbraco.MultipleTextString', editorUiAlias: 'Umb.PropertyEditorUi.MultipleTextString', hasChildren: false, @@ -348,7 +348,7 @@ export const data: Array = [ { name: 'Dropdown', id: 'dt-dropdown', - parentId: null, + parent: null, editorAlias: 'Umbraco.DropDown.Flexible', editorUiAlias: 'Umb.PropertyEditorUi.Dropdown', hasChildren: false, @@ -371,7 +371,7 @@ export const data: Array = [ { name: 'Slider', id: 'dt-slider', - parentId: null, + parent: null, editorAlias: 'Umbraco.Slider', editorUiAlias: 'Umb.PropertyEditorUi.Slider', hasChildren: false, @@ -406,7 +406,7 @@ export const data: Array = [ { name: 'Toggle', id: 'dt-toggle', - parentId: null, + parent: null, editorAlias: 'Umbraco.TrueFalse', editorUiAlias: 'Umb.PropertyEditorUi.Toggle', hasChildren: false, @@ -433,7 +433,7 @@ export const data: Array = [ { name: 'Tags', id: 'dt-tags', - parentId: null, + parent: null, editorAlias: 'Umbraco.Tags', editorUiAlias: 'Umb.PropertyEditorUi.Tags', hasChildren: false, @@ -452,7 +452,7 @@ export const data: Array = [ { name: 'Markdown Editor', id: 'dt-markdownEditor', - parentId: null, + parent: null, editorAlias: 'Umbraco.MarkdownEditor', editorUiAlias: 'Umb.PropertyEditorUi.MarkdownEditor', hasChildren: false, @@ -462,7 +462,7 @@ export const data: Array = [ { name: 'Radio Button List', id: 'dt-radioButtonList', - parentId: null, + parent: null, editorAlias: 'Umbraco.RadioButtonList', editorUiAlias: 'Umb.PropertyEditorUi.RadioButtonList', hasChildren: false, @@ -481,7 +481,7 @@ export const data: Array = [ { name: 'Checkbox List', id: 'dt-checkboxList', - parentId: null, + parent: null, editorAlias: 'Umbraco.CheckboxList', editorUiAlias: 'Umb.PropertyEditorUi.CheckboxList', hasChildren: false, @@ -500,7 +500,7 @@ export const data: Array = [ { name: 'Block List', id: 'dt-blockList', - parentId: null, + parent: null, editorAlias: 'Umbraco.BlockList', editorUiAlias: 'Umb.PropertyEditorUi.BlockList', hasChildren: false, @@ -562,7 +562,7 @@ export const data: Array = [ { name: 'Media Picker', id: 'dt-mediaPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.MediaPicker3', editorUiAlias: 'Umb.PropertyEditorUi.MediaPicker', hasChildren: false, @@ -572,7 +572,7 @@ export const data: Array = [ { name: 'Image Cropper', id: 'dt-imageCropper', - parentId: null, + parent: null, editorAlias: 'Umbraco.ImageCropper', editorUiAlias: 'Umb.PropertyEditorUi.ImageCropper', hasChildren: false, @@ -603,7 +603,7 @@ export const data: Array = [ { name: 'Upload Field', id: 'dt-uploadField', - parentId: null, + parent: null, editorAlias: 'Umbraco.UploadField', editorUiAlias: 'Umb.PropertyEditorUi.UploadField', hasChildren: false, @@ -622,7 +622,7 @@ export const data: Array = [ { name: 'Block Grid', id: 'dt-blockGrid', - parentId: null, + parent: null, editorAlias: 'Umbraco.BlockGrid', editorUiAlias: 'Umb.PropertyEditorUi.BlockGrid', hasChildren: false, @@ -692,7 +692,7 @@ export const data: Array = [ { name: 'Collection View', id: 'dt-collectionView', - parentId: null, + parent: null, editorAlias: 'Umbraco.ListView', editorUiAlias: 'Umb.PropertyEditorUi.CollectionView', hasChildren: false, @@ -702,7 +702,7 @@ export const data: Array = [ { name: 'Icon Picker', id: 'dt-iconPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.IconPicker', editorUiAlias: 'Umb.PropertyEditorUi.IconPicker', hasChildren: false, @@ -712,7 +712,7 @@ export const data: Array = [ { name: 'Rich Text Editor', id: 'dt-richTextEditor', - parentId: null, + parent: null, editorAlias: 'Umbraco.RichText', editorUiAlias: 'Umb.PropertyEditorUi.TinyMCE', hasChildren: false, @@ -791,7 +791,7 @@ export const data: Array = [ { name: 'Label', id: 'dt-label', - parentId: null, + parent: null, editorAlias: 'Umbraco.Label', editorUiAlias: 'Umb.PropertyEditorUi.Label', hasChildren: false, @@ -801,7 +801,7 @@ export const data: Array = [ { name: 'Integer', id: 'dt-integer', - parentId: null, + parent: null, editorAlias: 'Umbraco.Integer', editorUiAlias: 'Umb.PropertyEditorUi.Integer', hasChildren: false, @@ -811,7 +811,7 @@ export const data: Array = [ { name: 'Decimal', id: 'dt-decimal', - parentId: null, + parent: null, editorAlias: 'Umbraco.Decimal', editorUiAlias: 'Umb.PropertyEditorUi.Decimal', hasChildren: false, @@ -826,7 +826,7 @@ export const data: Array = [ { name: 'User Picker', id: 'dt-userPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.UserPicker', editorUiAlias: 'Umb.PropertyEditorUi.UserPicker', hasChildren: false, @@ -836,7 +836,7 @@ export const data: Array = [ { name: 'Member Picker', id: 'dt-memberPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.MemberPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberPicker', hasChildren: false, @@ -846,7 +846,7 @@ export const data: Array = [ { name: 'Member Group Picker', id: 'dt-memberGroupPicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.MemberGroupPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', hasChildren: false, @@ -856,7 +856,7 @@ export const data: Array = [ { name: 'Data Type in folder', id: 'dt-data-type-in-folder', - parentId: 'dt-folder2', + parent: { id: 'dt-folder2' }, editorAlias: 'Umbraco.MemberGroupPicker', editorUiAlias: 'Umb.PropertyEditorUi.MemberGroupPicker', hasChildren: false, @@ -866,7 +866,7 @@ export const data: Array = [ { name: 'Static File Picker', id: 'dt-staticFilePicker', - parentId: null, + parent: null, editorAlias: 'Umbraco.Label', editorUiAlias: 'Umb.PropertyEditorUi.StaticFilePicker', hasChildren: false, From 7f6b89579e4535223d580551b98db9f81d797c41 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 13:22:06 +0100 Subject: [PATCH 676/786] pass doctype correctly to scaffold --- .../detail/document-detail.server.data-source.ts | 5 +++-- .../workspace/document-workspace.context.ts | 6 ++++-- .../workspace/document-workspace.element.ts | 14 +++++++------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts index 9dbcec6d84..edf2ea5843 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts @@ -31,7 +31,7 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource = {}) { const data: UmbDocumentDetailModel = { entityType: UMB_DOCUMENT_ENTITY_TYPE, unique: UmbId.new(), @@ -39,7 +39,7 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource { // TODO: Remember the perspective of permissions here, we need to check if the user has access to create a document of this type under this parent? - const parentId = info.match.params.parentId === 'null' ? null : info.match.params.parentId; - const documentTypeKey = info.match.params.documentTypeKey; - this.#workspaceContext!.create(documentTypeKey, parentId); + const parentUnique = info.match.params.parentId === 'null' ? null : info.match.params.parentUnique; + const documentTypeUnique = info.match.params.documentTypeUnique; + this.#workspaceContext!.create(parentUnique, documentTypeUnique); new UmbWorkspaceIsNewRedirectController( this, @@ -48,11 +48,11 @@ export class UmbDocumentWorkspaceElement extends UmbLitElement { }, }, { - path: 'edit/:id', + path: 'edit/:unique', component: this.#editorElement, setup: (_component, info) => { - const id = info.match.params.id; - this.#workspaceContext!.load(id); + const unique = info.match.params.unique; + this.#workspaceContext!.load(unique); }, }, ]; From 7004b063d284e2dd3a6d632ea9bff956195376df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 14:36:05 +0100 Subject: [PATCH 677/786] ManifestBlockEditorCustomView model --- .../models/block-editor-custom-view.model.ts | 6 ++++++ .../src/packages/core/extension-registry/models/index.ts | 3 +++ 2 files changed, 9 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/block-editor-custom-view.model.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/block-editor-custom-view.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/block-editor-custom-view.model.ts new file mode 100644 index 0000000000..da338c1c27 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/block-editor-custom-view.model.ts @@ -0,0 +1,6 @@ +import type { UmbPropertyEditorUiElement } from '../interfaces/index.js'; +import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; + +export interface ManifestBlockEditorCustomView extends ManifestElement { + type: 'bockEditorCustomView'; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts index c5378f48cd..768e0f6b88 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts @@ -1,3 +1,4 @@ +import type { ManifestBlockEditorCustomView } from './block-editor-custom-view.model.js'; import type { ManifestCollection } from './collection.models.js'; import type { ManifestCollectionView } from './collection-view.model.js'; import type { ManifestDashboard } from './dashboard.model.js'; @@ -40,6 +41,7 @@ import type { ManifestEntryPoint, } from '@umbraco-cms/backoffice/extension-api'; +export type * from './block-editor-custom-view.model.js'; export type * from './collection.models.js'; export type * from './collection-action.model.js'; export type * from './collection-view.model.js'; @@ -79,6 +81,7 @@ export type * from './workspace.model.js'; export type ManifestTypes = | ManifestBundle | ManifestCondition + | ManifestBlockEditorCustomView | ManifestCollection | ManifestCollectionView | ManifestCollectionAction From 825d1be308dd74e7877891cb67a506fb9b50b47f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 15:02:03 +0100 Subject: [PATCH 678/786] parent is null when there is no parent --- .../content-type-structure-manager.class.ts | 10 ++++++---- .../views/edit/document-workspace-view-edit.element.ts | 9 ++------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 073cc5e17f..de9effc284 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -454,17 +454,17 @@ export class UmbContentTypePropertyStructureManager { - return data.filter((x) => x.parent?.id === null && x.type === containerType); + return data.filter((x) => x.parent === null && x.type === containerType); }); } getRootContainers(containerType: PropertyContainerTypes) { - return this.#containers.getValue().filter((x) => x.parent?.id === null && x.type === containerType); + return this.#containers.getValue().filter((x) => x.parent === null && x.type === containerType); } hasRootContainers(containerType: PropertyContainerTypes) { return this.#containers.asObservablePart((data) => { - return data.filter((x) => x.parent?.id === null && x.type === containerType).length > 0; + return data.filter((x) => x.parent === null && x.type === containerType).length > 0; }); } @@ -473,7 +473,9 @@ export class UmbContentTypePropertyStructureManager x.parent?.id === parentId && x.type === containerType); + return this.getOwnerContentType()?.containers?.filter((x) => + parentId ? x.parent?.id === parentId : x.parent === null && x.type === containerType, + ); } isOwnerContainer(containerId: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts index dfa77db940..5ea21b444f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts @@ -3,13 +3,8 @@ import type { UmbDocumentWorkspaceViewEditTabElement } from './document-workspac import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; -import type { - UmbRoute, - UmbRouterSlotChangeEvent, - UmbRouterSlotInitEvent} from '@umbraco-cms/backoffice/router'; -import { - encodeFolderName -} from '@umbraco-cms/backoffice/router'; +import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; From 133ead2e3dea593c65a15e9b1db6eeb4e760aa83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 15:04:03 +0100 Subject: [PATCH 679/786] parent object is null when no parent. --- .../content-type-container-structure-helper.class.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index e21f47d328..d639e77d31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -195,7 +195,10 @@ export class UmbContentTypeContainerStructureHelper x.id === containerId && x.parent?.id === this._ownerId) !== undefined + this.#containers + .getValue() + .find((x) => (x.id === containerId && this._ownerId ? x.parent?.id === this._ownerId : x.parent === null)) !== + undefined ); } From f5a17334cf8e33359f0e1e881a4da52146138fd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 15:08:22 +0100 Subject: [PATCH 680/786] adding comment --- .../content-type-container-structure-helper.class.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index d639e77d31..ba6211ed73 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -17,6 +17,7 @@ export class UmbContentTypeContainerStructureHelper Date: Mon, 29 Jan 2024 15:08:39 +0100 Subject: [PATCH 681/786] remove the --- .../content-type-container-structure-helper.class.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index ba6211ed73..12a7815908 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -17,7 +17,7 @@ export class UmbContentTypeContainerStructureHelper Date: Mon, 29 Jan 2024 15:10:25 +0100 Subject: [PATCH 682/786] further note to comment --- .../content-type-container-structure-helper.class.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index 12a7815908..9dbda290e9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -17,7 +17,10 @@ export class UmbContentTypeContainerStructureHelper Date: Mon, 29 Jan 2024 15:26:43 +0100 Subject: [PATCH 683/786] make _defaultElement # js private --- .../controller/extensions-element-initializer.controller.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts index d12714c73b..a40f574a34 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts @@ -27,7 +27,7 @@ export class UmbExtensionsElementInitializer< > { // #extensionRegistry; - private _defaultElement?: string; + #defaultElement?: string; #props?: Record; public get properties() { @@ -50,7 +50,7 @@ export class UmbExtensionsElementInitializer< ) { super(host, extensionRegistry, type, filter, onChange); this.#extensionRegistry = extensionRegistry; - this._defaultElement = defaultElement; + this.#defaultElement = defaultElement; this._init(); } @@ -60,7 +60,7 @@ export class UmbExtensionsElementInitializer< this.#extensionRegistry, manifest.alias, this._extensionChanged, - this._defaultElement, + this.#defaultElement, ) as ControllerType; extController.properties = this.#props; From ba0819df762b8611ab90f4adf061eeae07ee55b0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 15:30:34 +0100 Subject: [PATCH 684/786] local model of property type to reference data type correctly --- .../src/mocks/data/media/media.data.ts | 21 ++++++-- ...-workspace-view-edit-properties.element.ts | 10 ++-- .../property-type-based-property.element.ts | 12 ++--- ...nt-type-property-structure-helper.class.ts | 12 ++--- .../content-type-structure-manager.class.ts | 18 +++---- .../src/packages/core/content-type/types.ts | 8 +++- .../property-settings-modal.element.ts | 6 +-- .../token/property-settings-modal.token.ts | 4 +- ...document-type-detail.server.data-source.ts | 48 +++++++++++++++++-- ...-workspace-view-edit-properties.element.ts | 16 +++---- ...pe-workspace-view-edit-property.element.ts | 16 +++---- .../document-property-dataset-context.ts | 4 +- ...-workspace-view-edit-properties.element.ts | 6 +-- .../media-type-detail.server.data-source.ts | 48 +++++++++++++++++-- ...-workspace-view-edit-properties.element.ts | 16 +++---- ...pe-workspace-view-edit-property.element.ts | 16 +++---- 16 files changed, 171 insertions(+), 90 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts index d699a1c279..6a106fa15f 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts @@ -1,7 +1,8 @@ -import type { - MediaItemResponseModel, - MediaResponseModel, - MediaTreeItemResponseModel, +import { + ContentStateModel, + type MediaItemResponseModel, + type MediaResponseModel, + type MediaTreeItemResponseModel, } from '@umbraco-cms/backoffice/backend-api'; export type UmbMockMediaModelHack = MediaResponseModel & MediaTreeItemResponseModel & MediaItemResponseModel; @@ -26,7 +27,17 @@ export const data: Array = [ value: 'The daily life at Umbraco HQ', }, ], - variants: [], + variants: [ + { + state: ContentStateModel.PUBLISHED, + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'Article in english', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index 8eec2efdeb..fb85953276 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -3,13 +3,11 @@ import { css, html, customElement, property, state, repeat } from '@umbraco-cms/ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { PropertyContainerTypes, - // UmbPropertyTypeBasedPropertyElement, - UmbContentTypeModel} from '@umbraco-cms/backoffice/content-type'; -import { - UmbContentTypePropertyStructureHelper + UmbContentTypeModel, + UmbPropertyTypeModel, } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-block-workspace-view-edit-properties') export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { @@ -32,7 +30,7 @@ export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() - _propertyStructure: Array = []; + _propertyStructure: Array = []; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts index 7e27d2c244..5d3581bad8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/components/property-type-based-property/property-type-based-property.element.ts @@ -1,26 +1,26 @@ import type { UmbPropertyEditorConfig } from '../../../property-editor/index.js'; +import type { UmbPropertyTypeModel } from '../../types.js'; import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, ifDefined, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-property-type-based-property') export class UmbPropertyTypeBasedPropertyElement extends UmbLitElement { @property({ type: Object, attribute: false }) - public get property(): PropertyTypeModelBaseModel | undefined { + public get property(): UmbPropertyTypeModel | undefined { return this._property; } - public set property(value: PropertyTypeModelBaseModel | undefined) { + public set property(value: UmbPropertyTypeModel | undefined) { const oldProperty = this._property; this._property = value; - if (this._property?.dataType.id !== oldProperty?.dataType.id) { - this._observeDataType(this._property?.dataType.id); + if (this._property?.dataType.unique !== oldProperty?.dataType.unique) { + this._observeDataType(this._property?.dataType.unique); } } - private _property?: PropertyTypeModelBaseModel; + private _property?: UmbPropertyTypeModel; @state() private _propertyEditorUiAlias?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index d673f1ed92..3de23a6e24 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -2,11 +2,7 @@ import type { PropertyContainerTypes, UmbContentTypePropertyStructureManager, } from './content-type-structure-manager.class.js'; -import type { UmbContentTypeModel } from './types.js'; -import type { - DocumentTypePropertyTypeResponseModel, - PropertyTypeModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { UmbContentTypeModel, UmbPropertyTypeModel } from './types.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -21,7 +17,7 @@ export class UmbContentTypePropertyStructureHelper([], (x) => x.id); + #propertyStructure = new UmbArrayState([], (x) => x.id); readonly propertyStructure = this.#propertyStructure.asObservable(); constructor(host: UmbControllerHostElement) { @@ -128,7 +124,7 @@ export class UmbContentTypePropertyStructureHelper) { + async partialUpdateProperty(propertyKey?: string, partialUpdate?: Partial) { await this.#init; if (!this.#structure || !propertyKey || !partialUpdate) return; return await this.#structure.updateProperty(null, propertyKey, partialUpdate); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index de9effc284..62a1eaf4e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -1,11 +1,7 @@ -import type { UmbContentTypeModel } from './types.js'; +import type { UmbContentTypeModel, UmbPropertyTypeModel } from './types.js'; import type { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbId } from '@umbraco-cms/backoffice/id'; -import type { - DocumentTypePropertyTypeResponseModel, - PropertyTypeContainerModelBaseModel, - PropertyTypeModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost, UmbController } from '@umbraco-cms/backoffice/controller-api'; import type { MappingFunction } from '@umbraco-cms/backoffice/observable-api'; import { @@ -277,7 +273,7 @@ export class UmbContentTypePropertyStructureManager x.unique === contentTypeUnique)?.properties ?? []), @@ -320,7 +316,7 @@ export class UmbContentTypePropertyStructureManager, + partialUpdate: Partial, ) { await this.#init; contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique!; @@ -440,7 +436,7 @@ export class UmbContentTypePropertyStructureManager { - const props: DocumentTypePropertyTypeResponseModel[] = []; + const props: UmbPropertyTypeModel[] = []; docTypes.forEach((docType) => { docType.properties?.forEach((property) => { if (property.container?.id === containerId) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index 7fdcf78471..a52488720e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -1,7 +1,7 @@ import type { PropertyTypeContainerModelBaseModel, - PropertyTypeModelBaseModel, CompositionTypeModel, + PropertyTypeModelBaseModel, } from '@umbraco-cms/backoffice/backend-api'; export interface UmbContentTypeModel { @@ -16,12 +16,16 @@ export interface UmbContentTypeModel { variesBySegment: boolean; isElement: boolean; // TODO: investigate if we need our own model for these - properties: Array; + properties: Array; containers: Array; allowedContentTypes: Array; compositions: Array; } +export interface UmbPropertyTypeModel extends Omit { + dataType: { unique: string }; +} + export interface UmbContentTypeSortModel { contentType: { unique: string }; sortOrder: number; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index d436488651..3677994fe1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -133,8 +133,8 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< } #onDataTypeIdChange(event: UUIInputEvent) { - const dataTypeId = event.target.value.toString(); - this.updateValue({ dataType: { id: dataTypeId } }); + const dataTypeUnique = event.target.value.toString(); + this.updateValue({ dataType: { unique: dataTypeUnique } }); } #onMandatoryChange(event: UUIBooleanInputEvent) { @@ -259,7 +259,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< .value=${this.value.description}>

diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts index 0c2f6dfaa5..9a4d50d9c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts @@ -1,10 +1,10 @@ -import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbPropertySettingsModalData = { documentTypeId: string; }; -export type UmbPropertySettingsModalValue = PropertyTypeModelBaseModel; +export type UmbPropertySettingsModalValue = UmbPropertyTypeModel; export const UMB_PROPERTY_SETTINGS_MODAL = new UmbModalToken< UmbPropertySettingsModalData, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 544a7c2e78..47fbbe5a62 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -94,7 +94,21 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc variesByCulture: data.variesByCulture, variesBySegment: data.variesBySegment, isElement: data.isElement, - properties: data.properties, + properties: data.properties.map((property) => { + return { + id: property.id, + container: property.container, + sortOrder: property.sortOrder, + alias: property.alias, + name: property.name, + description: property.description, + dataType: { unique: property.dataType.id }, + variesByCulture: property.variesByCulture, + variesBySegment: property.variesBySegment, + validation: property.validation, + appearance: property.appearance, + }; + }), containers: data.containers, allowedContentTypes: data.allowedDocumentTypes.map((allowedDocumentType) => { return { @@ -136,7 +150,21 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc variesByCulture: model.variesByCulture, variesBySegment: model.variesBySegment, isElement: model.isElement, - properties: model.properties, + properties: model.properties.map((property) => { + return { + id: property.id, + container: property.container, + sortOrder: property.sortOrder, + alias: property.alias, + name: property.name, + description: property.description, + dataType: { id: property.dataType.unique }, + variesByCulture: property.variesByCulture, + variesBySegment: property.variesBySegment, + validation: property.validation, + appearance: property.appearance, + }; + }), containers: model.containers, allowedDocumentTypes: model.allowedContentTypes.map((allowedContentType) => { return { @@ -189,7 +217,21 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc variesByCulture: model.variesByCulture, variesBySegment: model.variesBySegment, isElement: model.isElement, - properties: model.properties, + properties: model.properties.map((property) => { + return { + id: property.id, + container: property.container, + sortOrder: property.sortOrder, + alias: property.alias, + name: property.name, + description: property.description, + dataType: { id: property.dataType.unique }, + variesByCulture: property.variesByCulture, + variesBySegment: property.variesBySegment, + validation: property.validation, + appearance: property.appearance, + }; + }), containers: model.containers, allowedDocumentTypes: model.allowedContentTypes.map((allowedContentType) => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index e15d12ddbb..dec6391e3c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -3,23 +3,19 @@ import './document-type-workspace-view-edit-property.element.js'; import type { UmbDocumentTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import type { PropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { - DocumentTypePropertyTypeResponseModel, - PropertyTypeModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: DocumentTypePropertyTypeResponseModel) => { +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element: HTMLElement, model: UmbPropertyTypeModel) => { return element.getAttribute('data-umb-property-id') === model.id; }, - querySelectModelToElement: (container: HTMLElement, modelEntry: DocumentTypePropertyTypeResponseModel) => { + querySelectModelToElement: (container: HTMLElement, modelEntry: UmbPropertyTypeModel) => { return container.querySelector('[data-umb-property-id=' + modelEntry.id + ']'); }, identifier: 'content-type-property-sorter', @@ -94,7 +90,7 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() - _propertyStructure: Array = []; + _propertyStructure: Array = []; @state() _ownerDocumentTypes?: UmbDocumentTypeDetailModel[]; @@ -167,7 +163,7 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle ); } - async #addProperty(propertyData: PropertyTypeModelBaseModel) { + async #addProperty(propertyData: UmbPropertyTypeModel) { const propertyPlaceholder = await this._propertyStructureHelper.addProperty(this._containerId); if (!propertyPlaceholder) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index 5ce98fd39b..115a439c8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -2,7 +2,6 @@ import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; -import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; import { UMB_CONFIRM_MODAL, @@ -14,6 +13,7 @@ import { import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; /** * @element umb-document-type-workspace-view-edit-property @@ -22,22 +22,22 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; */ @customElement('umb-document-type-workspace-view-edit-property') export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { - private _property?: PropertyTypeModelBaseModel | undefined; + private _property?: UmbPropertyTypeModel | undefined; /** * Property, the data object for the property. - * @type {PropertyTypeModelBaseModel} + * @type {UmbPropertyTypeModel} * @attr * @default undefined */ @property({ type: Object }) - public get property(): PropertyTypeModelBaseModel | undefined { + public get property(): UmbPropertyTypeModel | undefined { return this._property; } - public set property(value: PropertyTypeModelBaseModel | undefined) { + public set property(value: UmbPropertyTypeModel | undefined) { const oldValue = this._property; this._property = value; this.#modalRegistration.setUniquePathValue('propertyId', value?.id?.toString()); - this.setDataType(this._property?.dataType.id); + this.setDataType(this._property?.dataType.unique); this.requestUpdate('property', oldValue); } @@ -116,7 +116,7 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { }); } - _partialUpdate(partialObject: PropertyTypeModelBaseModel) { + _partialUpdate(partialObject: UmbPropertyTypeModel) { this.dispatchEvent(new CustomEvent('partial-property-update', { detail: partialObject })); } @@ -295,7 +295,7 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { renderPropertyTags() { return this.property ? html`
- ${this.property.dataType.id ? html`${this._dataTypeName}` : nothing} + ${this.property.dataType.unique ? html`${this._dataTypeName}` : nothing} ${this.property.variesByCulture ? html` ${this.localize.term('contentTypeEditor_cultureVariantLabel')} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts index fb8829e16d..94113d83a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/property-dataset-context/document-property-dataset-context.ts @@ -1,13 +1,13 @@ import type { UmbDocumentWorkspaceContext } from '../workspace/index.js'; import type { UmbNameablePropertyDatasetContext, UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { map } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { UmbVariantModel } from '@umbraco-cms/backoffice/variant'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; +import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; // TODO: This code can be split into a UmbContentTypePropertyDatasetContext, leaving just the publishing state and methods to this class. export class UmbDocumentPropertyDataContext @@ -64,7 +64,7 @@ export class UmbDocumentPropertyDataContext ); } - #createPropertyVariantId(property: PropertyTypeModelBaseModel) { + #createPropertyVariantId(property: UmbPropertyTypeModel) { return UmbVariantId.Create({ culture: property.variesByCulture ? this.#variantId.culture : null, segment: property.variesBySegment ? this.#variantId.segment : null, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts index 4740295f88..a4dd018e79 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts @@ -1,10 +1,10 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from '../../document-workspace.context-token.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import type { PropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; + @customElement('umb-document-workspace-view-edit-properties') export class UmbDocumentWorkspaceViewEditPropertiesElement extends UmbLitElement { @property({ type: String, attribute: 'container-name', reflect: false }) @@ -26,7 +26,7 @@ export class UmbDocumentWorkspaceViewEditPropertiesElement extends UmbLitElement _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() - _propertyStructure: Array = []; + _propertyStructure: Array = []; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index 7fc8e01b32..70336a6464 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -81,7 +81,21 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { + return { + id: property.id, + container: property.container, + sortOrder: property.sortOrder, + alias: property.alias, + name: property.name, + description: property.description, + dataType: { unique: property.dataType.id }, + variesByCulture: property.variesByCulture, + variesBySegment: property.variesBySegment, + validation: property.validation, + appearance: property.appearance, + }; + }), containers: data.containers, allowedContentTypes: data.allowedMediaTypes.map((allowedMediaType) => { return { @@ -120,7 +134,21 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { + return { + id: property.id, + container: property.container, + sortOrder: property.sortOrder, + alias: property.alias, + name: property.name, + description: property.description, + dataType: { id: property.dataType.unique }, + variesByCulture: property.variesByCulture, + variesBySegment: property.variesBySegment, + validation: property.validation, + appearance: property.appearance, + }; + }), containers: model.containers, allowedMediaTypes: model.allowedContentTypes.map((allowedContentType) => { return { @@ -171,7 +199,21 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { + return { + id: property.id, + container: property.container, + sortOrder: property.sortOrder, + alias: property.alias, + name: property.name, + description: property.description, + dataType: { id: property.dataType.unique }, + variesByCulture: property.variesByCulture, + variesBySegment: property.variesBySegment, + validation: property.validation, + appearance: property.appearance, + }; + }), containers: model.containers, allowedMediaTypes: model.allowedContentTypes.map((allowedContentType) => { return { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index 0329421cf5..9213ec0e76 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -3,23 +3,19 @@ import './media-type-workspace-view-edit-property.element.js'; import type { UmbMediaTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { PropertyContainerTypes } from '@umbraco-cms/backoffice/content-type'; +import type { PropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { - MediaTypePropertyTypeResponseModel, - PropertyTypeModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: MediaTypePropertyTypeResponseModel) => { +const SORTER_CONFIG: UmbSorterConfig = { + compareElementToModel: (element: HTMLElement, model: UmbPropertyTypeModel) => { return element.getAttribute('data-umb-property-id') === model.id; }, - querySelectModelToElement: (container: HTMLElement, modelEntry: MediaTypePropertyTypeResponseModel) => { + querySelectModelToElement: (container: HTMLElement, modelEntry: UmbPropertyTypeModel) => { return container.querySelector('[data-umb-property-id=' + modelEntry.id + ']'); }, identifier: 'content-type-property-sorter', @@ -94,7 +90,7 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); @state() - _propertyStructure: Array = []; + _propertyStructure: Array = []; @state() _ownerMediaTypes?: UmbMediaTypeDetailModel[]; @@ -164,7 +160,7 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen ); } - async #addProperty(propertyData: PropertyTypeModelBaseModel) { + async #addProperty(propertyData: UmbPropertyTypeModel) { const propertyPlaceholder = await this._propertyStructureHelper.addProperty(this._containerId); if (!propertyPlaceholder) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index 0d446ce259..7091901fb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -2,7 +2,6 @@ import { UmbDataTypeDetailRepository } from '@umbraco-cms/backoffice/data-type'; import type { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; import { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui'; import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; -import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; import { UMB_CONFIRM_MODAL, @@ -14,6 +13,7 @@ import { import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { generateAlias } from '@umbraco-cms/backoffice/utils'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; /** * @element umb-media-type-workspace-view-edit-property @@ -22,22 +22,22 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; */ @customElement('umb-media-type-workspace-view-edit-property') export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { - private _property?: PropertyTypeModelBaseModel | undefined; + private _property?: UmbPropertyTypeModel | undefined; /** * Property, the data object for the property. - * @type {PropertyTypeModelBaseModel} + * @type {UmbPropertyTypeModel} * @attr * @default undefined */ @property({ type: Object }) - public get property(): PropertyTypeModelBaseModel | undefined { + public get property(): UmbPropertyTypeModel | undefined { return this._property; } - public set property(value: PropertyTypeModelBaseModel | undefined) { + public set property(value: UmbPropertyTypeModel | undefined) { const oldValue = this._property; this._property = value; this.#modalRegistration.setUniquePathValue('propertyId', value?.id?.toString()); - this.setDataType(this._property?.dataType.id); + this.setDataType(this._property?.dataType.unique); this.requestUpdate('property', oldValue); } @@ -116,7 +116,7 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { }); } - _partialUpdate(partialObject: PropertyTypeModelBaseModel) { + _partialUpdate(partialObject: UmbPropertyTypeModel) { this.dispatchEvent(new CustomEvent('partial-property-update', { detail: partialObject })); } @@ -295,7 +295,7 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { renderPropertyTags() { return this.property ? html`
- ${this.property.dataType.id ? html`${this._dataTypeName}` : nothing} + ${this.property.dataType.unique ? html`${this._dataTypeName}` : nothing} ${this.property.variesByCulture ? html` ${this.localize.term('contentTypeEditor_cultureVariantLabel')} From b4713b8dbc719b4277df0ed9225888b9cd453543 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 15:48:31 +0100 Subject: [PATCH 685/786] add null check for variants --- .../src/mocks/data/media/media.data.ts | 83 +++++++++++++++---- .../input-document-picker-root.element.ts | 2 +- .../input-document/input-document.element.ts | 4 +- ...ent-recycle-bin-tree.server.data-source.ts | 2 +- .../item/document-item.server.data-source.ts | 2 +- .../tree/document-tree.server.data-source.ts | 2 +- .../item/media-item.server.data-source.ts | 2 +- .../packages/media/media/tree/manifests.ts | 2 +- .../tree/media-tree.server.data-source.ts | 2 +- .../media/media/tree/media-tree.store.ts | 6 +- .../user-document-start-node.element.ts | 2 +- .../user-media-start-node.element.ts | 2 +- 12 files changed, 81 insertions(+), 30 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts index 6a106fa15f..5606b99e7e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/media/media.data.ts @@ -33,7 +33,7 @@ export const data: Array = [ publishDate: '2023-02-06T15:31:51.354764', culture: 'en-us', segment: null, - name: 'Article in english', + name: 'Flipped Car', createDate: '2023-02-06T15:31:46.876902', updateDate: '2023-02-06T15:31:51.354764', }, @@ -57,7 +57,17 @@ export const data: Array = [ value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], - variants: [], + variants: [ + { + state: ContentStateModel.PUBLISHED, + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'Umbracoffee', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, { @@ -72,7 +82,17 @@ export const data: Array = [ hasListView: false, }, values: [], - variants: [], + variants: [ + { + state: ContentStateModel.PUBLISHED, + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'People', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, { @@ -87,7 +107,17 @@ export const data: Array = [ hasListView: false, }, values: [], - variants: [], + variants: [ + { + state: ContentStateModel.PUBLISHED, + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'John Smith', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, { @@ -107,7 +137,17 @@ export const data: Array = [ value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], - variants: [], + variants: [ + { + state: ContentStateModel.PUBLISHED, + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'Jane Doe', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, { @@ -147,7 +187,17 @@ export const data: Array = [ value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], - variants: [], + variants: [ + { + state: ContentStateModel.PUBLISHED, + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'A very nice hat', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, { @@ -167,16 +217,17 @@ export const data: Array = [ value: 'Every day, a rabbit in a military costume greets me at the front door', }, ], - variants: [], + variants: [ + { + state: ContentStateModel.PUBLISHED, + publishDate: '2023-02-06T15:31:51.354764', + culture: 'en-us', + segment: null, + name: 'Fancy old chair', + createDate: '2023-02-06T15:31:46.876902', + updateDate: '2023-02-06T15:31:51.354764', + }, + ], urls: [], }, ]; - -const createMediaItem = (item: UmbMockMediaModel): MediaItemResponseModel => { - return { - id: item.id, - mediaType: item.mediaType, - isTrashed: false, - variants: item.variants, - }; -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index f3bad68655..cb07baf61e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -79,7 +79,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl private _renderItem(item: UmbDocumentItemModel) { if (!item.unique) return; // TODO: get correct variant name - const name = item.variants[0].name; + const name = item.variants[0]?.name; return html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 0528920832..922b76e266 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -184,7 +184,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { #renderItem(item: UmbDocumentItemModel) { if (!item.unique) return; // TODO: get correct variant name - const name = item.variants[0].name; + const name = item.variants[0]?.name; return html` @@ -213,7 +213,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { if (!this.showOpenButton) return; // TODO: get correct variant name - const name = item.variants[0].name; + const name = item.variants[0]?.name; return html` { state: variant.state, }; }), - name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. + name: item.variants[0]?.name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts index 736482f3f0..62fd42aa30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.server.data-source.ts @@ -64,7 +64,7 @@ const mapper = (item: DocumentTreeItemResponseModel): UmbDocumentTreeItemModel = state: variant.state, }; }), - name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. + name: item.variants[0]?.name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. isFolder: false, }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts index 95d11dab64..f1ff1c77c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts @@ -46,6 +46,6 @@ const mapper = (item: MediaItemResponseModel): UmbMediaItemModel => { state: variant.state, }; }), - name: item.variants[0].name, // TODO: get correct variant name + name: item.variants[0]?.name, // TODO: get correct variant name }; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts index b6334b0d88..ab1a2aabee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/manifests.ts @@ -38,7 +38,7 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'entity', + kind: 'unique', alias: 'Umb.TreeItem.Media', name: 'Media Tree Item', meta: { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index 23c6d5cdd7..0b144f5d9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -56,7 +56,7 @@ const mapper = (item: MediaTreeItemResponseModel): UmbMediaTreeItemModel => { icon: item.mediaType.icon, hasListView: item.mediaType.hasListView, }, - name: item.variants[0].name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. + name: item.variants[0]?.name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution. variants: item.variants.map((variant) => { return { name: variant.name, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts index adb3d58556..47170ec9d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.store.ts @@ -1,14 +1,14 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/tree'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; /** * @export * @class UmbMediaTreeStore - * @extends {UmbStoreBase} + * @extends {UmbUniqueTreeStore} * @description - Tree Data Store for Media Items */ -export class UmbMediaTreeStore extends UmbEntityTreeStore { +export class UmbMediaTreeStore extends UmbUniqueTreeStore { /** * Creates an instance of UmbMediaTreeStore. * @param {UmbControllerHostElement} host diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts index 08b223bfbe..9916243141 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-document-start-node/user-document-start-node.element.ts @@ -35,7 +35,7 @@ export class UmbUserDocumentStartNodeElement extends UmbLitElement { (item) => { return html` - + `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts index c774965dcd..bf74902080 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts @@ -35,7 +35,7 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { (item) => { return html` - + `; From 8e141a3aa40da53bd7d2bffc7929994b7e00b91f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 15:55:43 +0100 Subject: [PATCH 686/786] fix lint errors --- .../src/mocks/handlers/document/detail.handlers.ts | 2 +- .../src/mocks/handlers/document/publishing.handlers.ts | 2 +- .../document-type-workspace-view-structure.element.ts | 2 +- .../documents/repository/detail/document-detail.store.ts | 4 ++-- .../structure/media-type-workspace-view-structure.element.ts | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts index 7ab120dad1..6bfe569fe0 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/detail.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbDocumentMockDb } from '../../data/document/document.db.js'; import { UMB_SLUG } from './slug.js'; -import { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { CreateDocumentRequestModel, UpdateDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const detailHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts index 9f512c740e..52c498fc44 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/document/publishing.handlers.ts @@ -1,7 +1,7 @@ const { rest } = window.MockServiceWorker; import { umbDocumentMockDb } from '../../data/document/document.db.js'; import { UMB_SLUG } from './slug.js'; -import { PublishDocumentRequestModel, UnpublishDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import type { PublishDocumentRequestModel, UnpublishDocumentRequestModel } from '@umbraco-cms/backoffice/backend-api'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const publishingHandlers = [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts index 8df3a2cc27..1e0726a200 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts @@ -6,7 +6,7 @@ import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; @customElement('umb-document-type-workspace-view-structure') export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts index 605364800c..828d0aa97c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.store.ts @@ -1,7 +1,7 @@ -import { UmbDocumentDetailModel } from '../../types.js'; +import type { UmbDocumentDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; /** * @export diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts index a18c4a86fc..64f8cbd709 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/structure/media-type-workspace-view-structure.element.ts @@ -6,7 +6,7 @@ import type { UUIToggleElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbContentTypeSortModel } from '@umbraco-cms/backoffice/content-type'; @customElement('umb-media-type-workspace-view-structure') export class UmbMediaTypeWorkspaceViewStructureElement extends UmbLitElement implements UmbWorkspaceViewElement { From c73dd9bd7d95e5f23ac38e6de3314d1a1a5dee30 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 16:04:28 +0100 Subject: [PATCH 687/786] remove unused --- .../entity-actions/create-blueprint.action.ts | 4 +- .../culture-and-hostnames.action.ts | 4 +- .../permissions/permissions.action.ts | 12 ++---- .../entity-actions/public-access.action.ts | 4 +- .../entity-actions/publish.action.ts | 4 +- .../entity-actions/rollback.action.ts | 4 +- .../entity-actions/unpublish.action.ts | 4 +- .../entity-bulk-actions/copy/copy.action.ts | 4 +- .../entity-bulk-actions/move/move.action.ts | 4 +- .../repository/document.repository.ts | 43 ------------------- .../repository/item/document-item.store.ts | 4 +- .../sources/document.server.data.ts | 33 -------------- 12 files changed, 22 insertions(+), 102 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts index c234a1cfc1..50f38d4f78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create-blueprint.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../repository/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbCreateDocumentBlueprintEntityAction extends UmbEntityActionBase { +export class UmbCreateDocumentBlueprintEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts index 536d4d9820..ba8c0c7be5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../repository/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { +export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts index eeb9bf8328..2c08ad502b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/permissions/permissions.action.ts @@ -1,14 +1,10 @@ -import type { UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../../repository/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { - UmbModalManagerContext} from '@umbraco-cms/backoffice/modal'; -import { - UMB_MODAL_MANAGER_CONTEXT, - UMB_PERMISSIONS_MODAL, -} from '@umbraco-cms/backoffice/modal'; +import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import { UMB_MODAL_MANAGER_CONTEXT, UMB_PERMISSIONS_MODAL } from '@umbraco-cms/backoffice/modal'; -export class UmbDocumentPermissionsEntityAction extends UmbEntityActionBase { +export class UmbDocumentPermissionsEntityAction extends UmbEntityActionBase { #modalManagerContext?: UmbModalManagerContext; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts index 5dc3f458a1..6aa5793d62 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../repository/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase { +export class UmbDocumentPublicAccessEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts index 40cf961cff..47b25c5c70 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/publish.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentPublishingRepository } from '../repository/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { +export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts index 6632eabccb..e0c0b97461 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/rollback.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../repository/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbRollbackDocumentEntityAction extends UmbEntityActionBase { +export class UmbRollbackDocumentEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts index 80f95ae09b..3ffdbec308 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/unpublish.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../repository/document.repository.js'; +import type { UmbDocumentPublishingRepository } from '../repository/index.js'; import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase { +export class UmbUnpublishDocumentEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts index c3518ca13f..5272eb2a1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/copy/copy.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../../repository/index.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbDocumentCopyEntityBulkAction extends UmbEntityBulkActionBase { +export class UmbDocumentCopyEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { super(host, repositoryAlias, selection); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts index 2ecb370186..56ed121d14 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-bulk-actions/move/move.action.ts @@ -1,8 +1,8 @@ -import type { UmbDocumentRepository } from '../../repository/document.repository.js'; +import type { UmbDocumentDetailRepository } from '../../repository/index.js'; import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -export class UmbDocumentMoveEntityBulkAction extends UmbEntityBulkActionBase { +export class UmbDocumentMoveEntityBulkAction extends UmbEntityBulkActionBase { constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array) { super(host, repositoryAlias, selection); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts deleted file mode 100644 index af67c5b349..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.repository.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { UmbDocumentServerDataSource } from './sources/document.server.data.js'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; -import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; -import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; - -export class UmbDocumentRepository extends UmbBaseController implements UmbApi { - #init!: Promise; - - #detailDataSource: UmbDocumentServerDataSource; - - #notificationContext?: UmbNotificationContext; - - constructor(host: UmbControllerHost) { - super(host); - - // TODO: figure out how spin up get the correct data source - this.#detailDataSource = new UmbDocumentServerDataSource(this); - - this.#init = Promise.all([ - this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { - this.#notificationContext = instance; - }).asPromise(), - ]); - } - - // General: - - async trash(id: string) { - if (!id) throw new Error('Id is missing'); - await this.#init; - - const { error } = await this.#detailDataSource.trash(id); - - if (!error) { - const notification = { data: { message: `Document moved to recycle bin` } }; - this.#notificationContext?.peek('positive', notification); - } - - return { error }; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts index 825dffeabe..5da9b4eccc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/item/document-item.store.ts @@ -1,6 +1,6 @@ -import { UmbDocumentDetailModel } from '../../types.js'; +import type { UmbDocumentDetailModel } from '../../types.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts deleted file mode 100644 index 58fbfb5c59..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/sources/document.server.data.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { DocumentResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; - -/** - * A data source for the Document that fetches data from the server - * @export - * @class UmbDocumentServerDataSource - * @implements {RepositoryDetailDataSource} - */ -export class UmbDocumentServerDataSource { - #host: UmbControllerHost; - - /** - * Creates an instance of UmbDocumentServerDataSource. - * @param {UmbControllerHost} host - * @memberof UmbDocumentServerDataSource - */ - constructor(host: UmbControllerHost) { - this.#host = host; - } - - /** - * Moves a Document to the recycle bin on the server - * @param {string} id - * @memberof UmbDocumentServerDataSource - */ - async trash(id: string) { - if (!id) throw new Error('Document ID is missing'); - // TODO: if we get a trash endpoint, we should use that instead. - return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdMoveToRecycleBin({ id })); - } -} From 6cfa84444ffeda5855430317bb68ff180641b24d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 16:11:10 +0100 Subject: [PATCH 688/786] remove hard-coded folder icon --- .../packages/core/data-type/tree/data-type-tree.repository.ts | 1 - .../dictionary/dictionary/tree/dictionary-tree.repository.ts | 1 - .../document-types/tree/document-type-tree.repository.ts | 1 - .../documents/documents/tree/document-tree.repository.ts | 1 - .../media/media-types/tree/media-type-tree.repository.ts | 1 - .../src/packages/media/media/tree/media-tree.repository.ts | 1 - .../members/member-groups/tree/member-group-tree.repository.ts | 1 - .../members/member-types/tree/member-type-tree.repository.ts | 1 - .../src/packages/members/members/tree/member-tree.repository.ts | 1 - .../relation-types/tree/relation-type-tree.repository.ts | 1 - .../partial-views/tree/partial-view-tree.repository.ts | 1 - .../packages/templating/scripts/tree/script-tree.repository.ts | 1 - .../templating/stylesheets/tree/stylesheet-tree.repository.ts | 1 - .../templating/templates/tree/template-tree.repository.ts | 1 - 14 files changed, 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts index dfaa6a389a..83645d8609 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/tree/data-type-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbDataTypeTreeRepository unique: null, entityType: UMB_DATA_TYPE_ROOT_ENTITY_TYPE, name: 'Data Types', - icon: 'icon-folder', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts index 9021ff9741..f73aa46ce7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dictionary/tree/dictionary-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbDictionaryTreeRepository id: null, entityType: UMB_DICTIONARY_ROOT_ENTITY_TYPE, name: 'Dictionary', - icon: 'icon-folder', hasChildren: true, isContainer: false, isFolder: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts index b2b3d9eb41..0f45c87dfa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/tree/document-type-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbDocumentTypeTreeRepository unique: null, entityType: UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, name: 'Document Types', - icon: 'icon-folder', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts index 18796a68df..2f151145e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/document-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbDocumentTreeRepository unique: null, entityType: UMB_DOCUMENT_ROOT_ENTITY_TYPE, name: 'Documents', - icon: 'icon-folder', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts index d3fb05c545..6c485145c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/tree/media-type-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbMediaTypeTreeRepository unique: null, entityType: UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, name: 'Media Types', - icon: 'icon-folder', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts index fc94aeb058..2d52d72430 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbMediaTreeRepository unique: null, entityType: UMB_MEDIA_ROOT_ENTITY_TYPE, name: 'Media', - icon: 'icon-folder', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts index 4308b6e75d..4b84824491 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/tree/member-group-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbMemberGroupTreeRepository id: null, entityType: UMB_MEMBER_GROUP_ROOT_ENTITY_TYPE, name: 'Member Groups', - icon: 'icon-folder', hasChildren: true, isContainer: false, isFolder: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts index a630ebdd9b..561a6e6367 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/tree/member-type-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbMemberTypeTreeRepository id: null, entityType: UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE, name: 'Member Types', - icon: 'icon-folder', hasChildren: true, isContainer: false, isFolder: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts index bd82e58686..ae2871e922 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/tree/member-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbMemberTreeRepository id: null, entityType: UMB_MEMBER_ROOT_ENTITY_TYPE, name: 'Members', - icon: 'icon-folder', hasChildren: true, isContainer: false, isFolder: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts index 166b8b8eda..b91d9590ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/tree/relation-type-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbRelationTypeTreeRepository id: null, entityType: UMB_RELATION_TYPE_ROOT_ENTITY_TYPE, name: 'Relation Types', - icon: 'icon-folder', hasChildren: true, isContainer: false, isFolder: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts index c0e89a370a..b29bc29b00 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/partial-view-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbPartialViewTreeRepository unique: null, entityType: UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, name: 'Partial Views', - icon: 'icon-folder', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts index dd54a47fc1..2ba5f051fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/tree/script-tree.repository.ts @@ -16,7 +16,6 @@ export class UmbScriptTreeRepository extends UmbTreeRepositoryBase Date: Mon, 29 Jan 2024 16:18:42 +0100 Subject: [PATCH 689/786] make icon optional --- .../src/packages/core/data-type/menu-item/manifests.ts | 1 - .../core/extension-registry/models/menu-item.model.ts | 4 ++-- .../packages/documents/document-types/menu-item/manifests.ts | 1 - .../src/packages/documents/documents/menu-item/manifests.ts | 1 - .../src/packages/media/media-types/menu-item/manifests.ts | 1 - .../src/packages/media/media/menu-item/manifests.ts | 1 - .../src/packages/members/member-groups/menu-item/manifests.ts | 1 - .../src/packages/members/member-types/menu-item/manifests.ts | 1 - .../src/packages/members/members/menu-item/manifests.ts | 1 - .../packages/relations/relation-types/menu-item/manifests.ts | 1 - .../packages/static-file/tree/static-file-tree.repository.ts | 1 - .../packages/templating/partial-views/menu-item/manifests.ts | 1 - .../src/packages/templating/scripts/menu-item/manifests.ts | 1 - .../packages/templating/stylesheets/menu-item/manifests.ts | 1 - .../src/packages/templating/templates/menu-item/manifests.ts | 1 - 15 files changed, 2 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/menu-item/manifests.ts index dab53b42ad..232e6e99d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/menu-item/manifests.ts @@ -8,7 +8,6 @@ const menuItem: ManifestTypes = { weight: 600, meta: { label: 'Data Types', - icon: 'icon-folder', entityType: 'data-type', treeAlias: 'Umb.Tree.DataTypes', menus: ['Umb.Menu.Settings'], diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu-item.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu-item.model.ts index a51b08cddc..3efd308a9a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu-item.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/menu-item.model.ts @@ -8,9 +8,9 @@ export interface ManifestMenuItem extends ManifestElement { export interface MetaMenuItem { label: string; - icon: string; - entityType?: string; menus: Array; + entityType?: string; + icon?: string; } export interface ManifestMenuItemTreeKind extends ManifestMenuItem { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts index eb0176fed3..c4a7939e7e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/menu-item/manifests.ts @@ -10,7 +10,6 @@ const menuItem: ManifestTypes = { meta: { treeAlias: UMB_DOCUMENT_TYPE_TREE_ALIAS, label: 'Document Types', - icon: 'icon-folder', menus: ['Umb.Menu.Settings'], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts index d7d01218ac..141a25c337 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/menu-item/manifests.ts @@ -10,7 +10,6 @@ const menuItem: ManifestTypes = { weight: 200, meta: { label: 'Documents', - icon: 'icon-folder', menus: [UMB_CONTENT_MENU_ALIAS], treeAlias: UMB_DOCUMENT_TREE_ALIAS, hideTreeRoot: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/menu-item/manifests.ts index 4e0f69b5f5..04f3b4d4df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/menu-item/manifests.ts @@ -9,7 +9,6 @@ const menuItem: ManifestTypes = { weight: 800, meta: { label: 'Media Types', - icon: 'icon-folder', treeAlias: UMB_MEDIA_TYPE_TREE_ALIAS, menus: ['Umb.Menu.Settings'], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts index c7036d64f5..b31d64c60e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/menu-item/manifests.ts @@ -8,7 +8,6 @@ const menuItem: ManifestTypes = { weight: 100, meta: { label: 'Media', - icon: 'icon-folder', menus: ['Umb.Menu.Media'], treeAlias: 'Umb.Tree.Media', hideTreeRoot: true, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/menu-item/manifests.ts index e8ab53dda4..08e280055b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/menu-item/manifests.ts @@ -10,7 +10,6 @@ const menuItem: ManifestTypes = { weight: 400, meta: { label: 'Member Groups', - icon: 'icon-folder', treeAlias: UMB_MEMBER_GROUP_TREE_ALIAS, menus: [UMB_MEMBER_MENU_ALIAS], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/menu-item/manifests.ts index 0dc324dc93..ddf86d8d68 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/menu-item/manifests.ts @@ -9,7 +9,6 @@ const menuItem: ManifestTypes = { weight: 700, meta: { label: 'Member Types', - icon: 'icon-folder', treeAlias: UMB_MEMBER_TYPE_TREE_ALIAS, menus: ['Umb.Menu.Settings'], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/menu-item/manifests.ts index 144b72ffdb..2a24e8be7f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/menu-item/manifests.ts @@ -10,7 +10,6 @@ const menuItem: ManifestTypes = { weight: 400, meta: { label: 'Members', - icon: 'icon-folder', treeAlias: UMB_MEMBER_TREE_ALIAS, menus: [UMB_MEMBER_MENU_ALIAS], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/menu-item/manifests.ts index 8a2e111758..ef111632a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/menu-item/manifests.ts @@ -10,7 +10,6 @@ const menuItem: ManifestTypes = { meta: { treeAlias: UMB_RELATION_TYPE_TREE_ALIAS, label: 'Relation Types', - icon: 'icon-folder', menus: ['Umb.Menu.Settings'], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts index 72124cfda6..f08a2287f5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/static-file/tree/static-file-tree.repository.ts @@ -19,7 +19,6 @@ export class UmbStaticFileTreeRepository unique: null, entityType: UMB_STATIC_FILE_ROOT_ENTITY_TYPE, name: 'Static Files', - icon: 'icon-folder', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts index c603d57548..00b7384a60 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/menu-item/manifests.ts @@ -9,7 +9,6 @@ const menuItem: ManifestTypes = { weight: 40, meta: { label: 'Partial Views', - icon: 'icon-folder', treeAlias: UMB_PARTIAL_VIEW_TREE_ALIAS, menus: ['Umb.Menu.Templating'], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/menu-item/manifests.ts index 50e0ac613e..bf12d94dc7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/menu-item/manifests.ts @@ -11,7 +11,6 @@ const menuItem: ManifestTypes = { weight: 10, meta: { label: 'Scripts', - icon: 'icon-folder', treeAlias: UMB_SCRIPT_TREE_ALIAS, menus: ['Umb.Menu.Templating'], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts index 4109f5071c..4c6e87b49b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/menu-item/manifests.ts @@ -9,7 +9,6 @@ const menuItem: ManifestTypes = { weight: 20, meta: { label: 'Stylesheets', - icon: 'icon-folder', treeAlias: UMB_STYLESHEET_TREE_ALIAS, menus: ['Umb.Menu.Templating'], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/menu-item/manifests.ts index ee63beec44..7cf603c07f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/menu-item/manifests.ts @@ -9,7 +9,6 @@ const menuItem: ManifestTypes = { weight: 40, meta: { label: 'Templates', - icon: 'icon-folder', entityType: 'template', treeAlias: UMB_TEMPLATE_TREE_ALIAS, menus: ['Umb.Menu.Templating'], From f865c257f7abdd13458a36b0463fd36bdcef5e28 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 16:22:33 +0100 Subject: [PATCH 690/786] render document tree icon --- .../documents/tree/tree-item/document-tree-item.element.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts index 3c38d4fbed..526a8c75a5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/tree/tree-item/document-tree-item.element.ts @@ -30,9 +30,10 @@ export class UmbDocumentTreeItemElement extends UmbLitElement implements UmbTree #renderIconWithStatusSymbol() { return html` - ${this.item?.icon + ${this.item?.documentType.icon ? html` - + + ` : nothing} From 68faccae3fe1416a41043403289de79b9ff0a70c Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 29 Jan 2024 15:26:05 +0000 Subject: [PATCH 691/786] Document Picker Root: refactorings --- .../input-document-picker-root.element.ts | 46 +++++++++---------- ...ynamic-root-origin-picker-modal.element.ts | 2 +- ...ic-root-query-step-picker-modal.element.ts | 2 +- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 9569dedff0..a41541b39b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -9,17 +9,7 @@ import type { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from import type { UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; - -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element, model) => { - return element.getAttribute('data-idx') === model; - }, - querySelectModelToElement: () => null, - identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot', - itemSelector: 'uui-ref-node', - containerSelector: '#query-steps', -}; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { @@ -30,7 +20,9 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl @property({ attribute: false }) data?: UmbTreePickerDynamicRoot | undefined; - private _modalContext?: UmbModalManagerContext; + #dynamicRootOrigin?: { label: string; icon: string; description?: string }; + + #modalContext?: UmbModalManagerContext; #openModal?: UmbModalContext; @@ -38,48 +30,56 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl super(); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this._modalContext = instance; + this.#modalContext = instance; }); } connectedCallback(): void { super.connectedCallback(); - this.#updateQuerySteps(this.data?.querySteps); + this.#updateDynamicRootQuerySteps(this.data?.querySteps); } #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, + compareElementToModel: (element: HTMLElement, model: string) => { + return element.getAttribute('data-idx') === model; + }, + querySelectModelToElement: () => null, + identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot', + itemSelector: 'uui-ref-node', + containerSelector: '#query-steps', onChange: ({ model }) => { if (this.data && this.data.querySteps) { const steps = [...this.data.querySteps]; const querySteps = model.map((index) => steps[parseInt(index)]); - this.#updateQuerySteps(querySteps); + this.#updateDynamicRootQuerySteps(querySteps); this.dispatchEvent(new UmbChangeEvent()); } }, }); #openDynamicRootOriginPicker() { - this.#openModal = this._modalContext?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); - this.#openModal?.onSubmit().then((data) => { - this.data = { ...this.data, ...data }; + this.#openModal = this.#modalContext?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); + this.#openModal?.onSubmit().then((data: UmbTreePickerDynamicRoot) => { + const existingData = { ...this.data }; + existingData.originKey = undefined; + this.data = { ...existingData, ...data }; this.dispatchEvent(new UmbChangeEvent()); }); } #openDynamicRootQueryStepPicker() { - this.#openModal = this._modalContext?.open(UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, {}); + this.#openModal = this.#modalContext?.open(UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, {}); this.#openModal?.onSubmit().then((step) => { if (this.data) { const querySteps = [...(this.data.querySteps ?? []), step]; - this.#updateQuerySteps(querySteps); + this.#updateDynamicRootQuerySteps(querySteps); this.dispatchEvent(new UmbChangeEvent()); } }); } - #updateQuerySteps(querySteps?: Array) { + #updateDynamicRootQuerySteps(querySteps?: Array) { if (!this.data) return; this.#sorter.setModel(querySteps?.map((_, index) => index.toString()) ?? []); this.data = { ...this.data, ...{ querySteps } }; @@ -141,7 +141,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl if (index !== -1) { const querySteps = [...this.data.querySteps]; querySteps.splice(index, 1); - this.#updateQuerySteps(querySteps); + this.#updateDynamicRootQuerySteps(querySteps); this.dispatchEvent(new UmbChangeEvent()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts index 283a5cc813..b8d6c90bec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts @@ -17,7 +17,7 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle this.#documentPickerContext.max = 1; this.observe( - umbExtensionsRegistry.extensionsOfType('dynamicRootOrigin'), + umbExtensionsRegistry.byType('dynamicRootOrigin'), (origins: Array) => { this._origins = origins; }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts index 75407f1cda..ba1058fbb2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -16,7 +16,7 @@ export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBase super(); this.observe( - umbExtensionsRegistry.extensionsOfType('dynamicRootQueryStep'), + umbExtensionsRegistry.byType('dynamicRootQueryStep'), (querySteps: Array) => { this._querySteps = querySteps; }, From 907c0c27cfb2683440cf891918c6984f7f294e56 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 16:26:38 +0100 Subject: [PATCH 692/786] get icon from doc type --- .../src/mocks/data/document/document.db.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts index 9b2f20fd41..c723893218 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts @@ -39,9 +39,9 @@ const treeItemMapper = (model: UmbMockDocumentModel): Omit Date: Mon, 29 Jan 2024 15:27:03 +0000 Subject: [PATCH 693/786] Document Picker Root: Wired up UI with manifests from the extensions registry. Removing hardcoded labels and icons. --- .../input-document-picker-root.element.ts | 111 ++++++++---------- 1 file changed, 51 insertions(+), 60 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index a41541b39b..f08ba534d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -2,7 +2,7 @@ import { UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, } from '@umbraco-cms/backoffice/dynamic-root'; -import { html, css, customElement, property, ifDefined, map } from '@umbraco-cms/backoffice/external/lit'; +import { html, css, customElement, property, ifDefined, map, state } from '@umbraco-cms/backoffice/external/lit'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; @@ -10,6 +10,11 @@ import type { UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backo import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import { + type ManifestDynamicRootOrigin, + type ManifestDynamicRootQueryStep, + umbExtensionsRegistry, +} from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { @@ -17,6 +22,12 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl return undefined; } + @state() + private _origins: Array = []; + + @state() + private _querySteps: Array = []; + @property({ attribute: false }) data?: UmbTreePickerDynamicRoot | undefined; @@ -32,11 +43,23 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { this.#modalContext = instance; }); + + this.observe(umbExtensionsRegistry.byType('dynamicRootOrigin'), (origins: Array) => { + this._origins = origins; + }); + + this.observe( + umbExtensionsRegistry.byType('dynamicRootQueryStep'), + (querySteps: Array) => { + this._querySteps = querySteps; + }, + ); } connectedCallback(): void { super.connectedCallback(); + this.#updateDynamicRootOrigin(this.data); this.#updateDynamicRootQuerySteps(this.data?.querySteps); } @@ -64,6 +87,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl const existingData = { ...this.data }; existingData.originKey = undefined; this.data = { ...existingData, ...data }; + this.#updateDynamicRootOrigin(this.data); this.dispatchEvent(new UmbChangeEvent()); }); } @@ -79,60 +103,32 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl }); } + #updateDynamicRootOrigin(data?: UmbTreePickerDynamicRoot) { + if (!data) return; + const origin = this._origins.find((item) => item.meta.originAlias === data.originAlias)?.meta; + this.#dynamicRootOrigin = { + label: origin?.label ?? data.originAlias, + icon: origin?.icon ?? 'icon-wand', + description: data.originKey, + }; + } + #updateDynamicRootQuerySteps(querySteps?: Array) { if (!this.data) return; this.#sorter.setModel(querySteps?.map((_, index) => index.toString()) ?? []); this.data = { ...this.data, ...{ querySteps } }; } - // NOTE: Taken from: https://github.com/umbraco/Umbraco-CMS/blob/release-13.0.0/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/treesource.controller.js#L128-L141 [LK] - #getIconForDynamicRootOrigin(alias?: string) { - switch (alias) { - case 'Parent': - return 'icon-page-up'; - case 'Current': - return 'icon-document'; - case 'ByKey': - return 'icon-wand'; - case 'Root': - case 'Site': - default: - return 'icon-home'; - } - } - - #getNameForDynamicRootOrigin(alias?: string) { - return this.localize.term(`dynamicRoot_origin${alias}Title`); - } - - #getIconForDynamicRootQueryStep(alias?: string) { - switch (alias) { - case 'NearestAncestorOrSelf': - case 'FurthestAncestorOrSelf': - return 'icon-arrow-up'; - case 'NearestDescendantOrSelf': - case 'FurthestDescendantOrSelf': - return 'icon-arrow-down'; - default: - return 'icon-lab'; - } - } - - #getNameForDynamicRootQueryStep(alias?: string) { - switch (alias) { - case 'NearestAncestorOrSelf': - case 'FurthestAncestorOrSelf': - case 'NearestDescendantOrSelf': - case 'FurthestDescendantOrSelf': - return this.localize.term(`dynamicRoot_queryStep${alias}Title`); - default: - return alias; - } - } - - #getDescriptionForDynamicRootQueryStep(item: UmbTreePickerDynamicRootQueryStep) { + #getQueryStepMeta(item: UmbTreePickerDynamicRootQueryStep): { label: string; icon: string; description?: string } { + const step = this._querySteps.find((step) => step.meta.queryStepAlias === item.alias)?.meta; const docTypes = item.anyOfDocTypeKeys?.join(', '); - return docTypes ? this.localize.term('dynamicRoot_queryStepTypes') + docTypes : undefined; + const description = docTypes ? this.localize.term('dynamicRoot_queryStepTypes') + docTypes : undefined; + + return { + label: step?.label ?? item.alias, + icon: step?.icon ?? 'icon-lab', + description, + }; } #removeDynamicRootQueryStep(item: UmbTreePickerDynamicRootQueryStep) { @@ -153,7 +149,6 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl } render() { - // TODO: If the old root node ID value is set, then pre-populate the "Specific Node" option. [LK] return html`${this.#renderButton()} ${this.#renderOrigin()}`; } @@ -169,15 +164,15 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl } #renderOrigin() { - if (!this.data) return; + if (!this.#dynamicRootOrigin) return; return html` - + name=${this.#dynamicRootOrigin.label} + detail=${ifDefined(this.#dynamicRootOrigin.description)}> + - + + this.#removeDynamicRootQueryStep(item)} From b78518098ce49029da7582e347257e0983320aba Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 17:44:48 +0100 Subject: [PATCH 694/786] new server models --- .../src/external/backend-api/src/index.ts | 9 +++++++++ .../src/models/DataTypeChangeModeModel.ts | 10 ++++++++++ .../models/DatatypeConfigurationResponseModel.ts | 11 +++++++++++ .../models/DocumentConfigurationResponseModel.ts | 12 ++++++++++++ .../src/models/DocumentItemResponseModel.ts | 4 ++-- .../models/DocumentRecycleBinItemResponseModel.ts | 4 ++-- .../src/models/DocumentTreeItemResponseModel.ts | 4 ++-- .../DocumentTypeConfigurationResponseModel.ts | 12 ++++++++++++ .../models/DocumentVariantItemResponseModel.ts | 12 ++++++++++++ .../src/models/MediaConfigurationResponseModel.ts | 11 +++++++++++ .../models/PackageConfigurationResponseModel.ts | 9 +++++++++ .../models/TemplateConfigurationResponseModel.ts | 9 +++++++++ .../src/models/VariantItemResponseModel.ts | 8 ++------ .../models/VariantItemResponseModelBaseModel.ts | 10 ++++++++++ .../backend-api/src/services/DataTypeResource.ts | 15 +++++++++++++++ .../backend-api/src/services/DocumentResource.ts | 15 +++++++++++++++ .../src/services/DocumentTypeResource.ts | 15 +++++++++++++++ .../backend-api/src/services/MediaResource.ts | 15 +++++++++++++++ .../backend-api/src/services/PackageResource.ts | 15 +++++++++++++++ .../backend-api/src/services/TemplateResource.ts | 15 +++++++++++++++ .../item/media-item.server.data-source.ts | 1 - .../packages/media/media/repository/item/types.ts | 3 --- .../media/tree/media-tree.server.data-source.ts | 1 - .../src/packages/media/media/tree/types.ts | 1 - 24 files changed, 203 insertions(+), 18 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts index fe145c3fc7..161690f058 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/index.ts @@ -69,6 +69,8 @@ export type { CurrentUserResponseModel } from './models/CurrentUserResponseModel export type { CurrenUserConfigurationResponseModel } from './models/CurrenUserConfigurationResponseModel'; export type { DatabaseInstallResponseModel } from './models/DatabaseInstallResponseModel'; export type { DatabaseSettingsPresentationModel } from './models/DatabaseSettingsPresentationModel'; +export { DataTypeChangeModeModel } from './models/DataTypeChangeModeModel'; +export type { DatatypeConfigurationResponseModel } from './models/DatatypeConfigurationResponseModel'; export type { DataTypeItemResponseModel } from './models/DataTypeItemResponseModel'; export type { DataTypeModelBaseModel } from './models/DataTypeModelBaseModel'; export type { DataTypePropertyPresentationModel } from './models/DataTypePropertyPresentationModel'; @@ -87,6 +89,7 @@ export { DirectionModel } from './models/DirectionModel'; export type { DisableUserRequestModel } from './models/DisableUserRequestModel'; export type { DocumentBlueprintResponseModel } from './models/DocumentBlueprintResponseModel'; export type { DocumentBlueprintTreeItemResponseModel } from './models/DocumentBlueprintTreeItemResponseModel'; +export type { DocumentConfigurationResponseModel } from './models/DocumentConfigurationResponseModel'; export type { DocumentItemResponseModel } from './models/DocumentItemResponseModel'; export type { DocumentNotificationResponseModel } from './models/DocumentNotificationResponseModel'; export type { DocumentRecycleBinItemResponseModel } from './models/DocumentRecycleBinItemResponseModel'; @@ -95,6 +98,7 @@ export type { DocumentTreeItemResponseModel } from './models/DocumentTreeItemRes export type { DocumentTypeCompositionModel } from './models/DocumentTypeCompositionModel'; export type { DocumentTypeCompositionRequestModel } from './models/DocumentTypeCompositionRequestModel'; export type { DocumentTypeCompositionResponseModel } from './models/DocumentTypeCompositionResponseModel'; +export type { DocumentTypeConfigurationResponseModel } from './models/DocumentTypeConfigurationResponseModel'; export type { DocumentTypeItemResponseModel } from './models/DocumentTypeItemResponseModel'; export type { DocumentTypePropertyTypeContainerResponseModel } from './models/DocumentTypePropertyTypeContainerResponseModel'; export type { DocumentTypePropertyTypeResponseModel } from './models/DocumentTypePropertyTypeResponseModel'; @@ -103,6 +107,7 @@ export type { DocumentTypeResponseModel } from './models/DocumentTypeResponseMod export type { DocumentTypeSortModel } from './models/DocumentTypeSortModel'; export type { DocumentTypeTreeItemResponseModel } from './models/DocumentTypeTreeItemResponseModel'; export type { DocumentValueModel } from './models/DocumentValueModel'; +export type { DocumentVariantItemResponseModel } from './models/DocumentVariantItemResponseModel'; export type { DocumentVariantRequestModel } from './models/DocumentVariantRequestModel'; export type { DocumentVariantResponseModel } from './models/DocumentVariantResponseModel'; export type { DomainPresentationModel } from './models/DomainPresentationModel'; @@ -161,6 +166,7 @@ export { LogLevelModel } from './models/LogLevelModel'; export type { LogMessagePropertyPresentationModel } from './models/LogMessagePropertyPresentationModel'; export type { LogMessageResponseModel } from './models/LogMessageResponseModel'; export type { LogTemplateResponseModel } from './models/LogTemplateResponseModel'; +export type { MediaConfigurationResponseModel } from './models/MediaConfigurationResponseModel'; export type { MediaItemResponseModel } from './models/MediaItemResponseModel'; export type { MediaRecycleBinItemResponseModel } from './models/MediaRecycleBinItemResponseModel'; export type { MediaResponseModel } from './models/MediaResponseModel'; @@ -197,6 +203,7 @@ export type { OkResult } from './models/OkResult'; export { OperatorModel } from './models/OperatorModel'; export type { OutOfDateStatusResponseModel } from './models/OutOfDateStatusResponseModel'; export { OutOfDateTypeModel } from './models/OutOfDateTypeModel'; +export type { PackageConfigurationResponseModel } from './models/PackageConfigurationResponseModel'; export type { PackageDefinitionResponseModel } from './models/PackageDefinitionResponseModel'; export type { PackageManifestResponseModel } from './models/PackageManifestResponseModel'; export type { PackageMigrationStatusResponseModel } from './models/PackageMigrationStatusResponseModel'; @@ -304,6 +311,7 @@ export { TelemetryLevelModel } from './models/TelemetryLevelModel'; export type { TelemetryRepresentationBaseModel } from './models/TelemetryRepresentationBaseModel'; export type { TelemetryRequestModel } from './models/TelemetryRequestModel'; export type { TelemetryResponseModel } from './models/TelemetryResponseModel'; +export type { TemplateConfigurationResponseModel } from './models/TemplateConfigurationResponseModel'; export type { TemplateItemResponseModel } from './models/TemplateItemResponseModel'; export type { TemplateModelBaseModel } from './models/TemplateModelBaseModel'; export type { TemplateQueryExecuteFilterPresentationModel } from './models/TemplateQueryExecuteFilterPresentationModel'; @@ -367,6 +375,7 @@ export type { UserTourStatusesResponseModel } from './models/UserTourStatusesRes export type { UserTwoFactorProviderModel } from './models/UserTwoFactorProviderModel'; export type { ValueModelBaseModel } from './models/ValueModelBaseModel'; export type { VariantItemResponseModel } from './models/VariantItemResponseModel'; +export type { VariantItemResponseModelBaseModel } from './models/VariantItemResponseModelBaseModel'; export type { VariantModelBaseModel } from './models/VariantModelBaseModel'; export type { VariantResponseModelBaseModel } from './models/VariantResponseModelBaseModel'; export type { VerifyInviteUserRequestModel } from './models/VerifyInviteUserRequestModel'; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts new file mode 100644 index 0000000000..fe470165fb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DataTypeChangeModeModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export enum DataTypeChangeModeModel { + TRUE = 'True', + FALSE = 'False', + FALSE_WITH_HELP_TEXT = 'FalseWithHelpText', +} diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts new file mode 100644 index 0000000000..86aa086f3f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DatatypeConfigurationResponseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DataTypeChangeModeModel } from './DataTypeChangeModeModel'; + +export type DatatypeConfigurationResponseModel = { + canBeChanged: DataTypeChangeModeModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts new file mode 100644 index 0000000000..78fb81d996 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentConfigurationResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DocumentConfigurationResponseModel = { + sanitizeTinyMce: boolean; + disableDeleteWhenReferenced: boolean; + disableUnpublishWhenReferenced: boolean; + allowEditInvariantFromNonDefault: boolean; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts index 3c9b6e07e2..80630f509d 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentItemResponseModel.ts @@ -4,13 +4,13 @@ /* eslint-disable */ import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; +import type { DocumentVariantItemResponseModel } from './DocumentVariantItemResponseModel'; import type { ItemResponseModelBaseModel } from './ItemResponseModelBaseModel'; -import type { VariantItemResponseModel } from './VariantItemResponseModel'; export type DocumentItemResponseModel = (ItemResponseModelBaseModel & { isTrashed: boolean; isProtected: boolean; documentType: DocumentTypeReferenceResponseModel; - variants: Array; + variants: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts index 92fa12db8b..c594d375b0 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentRecycleBinItemResponseModel.ts @@ -4,11 +4,11 @@ /* eslint-disable */ import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; +import type { DocumentVariantItemResponseModel } from './DocumentVariantItemResponseModel'; import type { RecycleBinItemResponseModelBaseModel } from './RecycleBinItemResponseModelBaseModel'; -import type { VariantItemResponseModel } from './VariantItemResponseModel'; export type DocumentRecycleBinItemResponseModel = (RecycleBinItemResponseModelBaseModel & { documentType: DocumentTypeReferenceResponseModel; - variants: Array; + variants: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts index 743b7af5ab..3f202d48c6 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTreeItemResponseModel.ts @@ -5,11 +5,11 @@ import type { ContentTreeItemResponseModel } from './ContentTreeItemResponseModel'; import type { DocumentTypeReferenceResponseModel } from './DocumentTypeReferenceResponseModel'; -import type { VariantItemResponseModel } from './VariantItemResponseModel'; +import type { DocumentVariantItemResponseModel } from './DocumentVariantItemResponseModel'; export type DocumentTreeItemResponseModel = (ContentTreeItemResponseModel & { isProtected: boolean; documentType: DocumentTypeReferenceResponseModel; - variants: Array; + variants: Array; }); diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts new file mode 100644 index 0000000000..b728fd3a12 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentTypeConfigurationResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { DataTypeChangeModeModel } from './DataTypeChangeModeModel'; + +export type DocumentTypeConfigurationResponseModel = { + dataTypesCanBeChanged: DataTypeChangeModeModel; + disableTemplates: boolean; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts new file mode 100644 index 0000000000..e5dc852c8c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/DocumentVariantItemResponseModel.ts @@ -0,0 +1,12 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { ContentStateModel } from './ContentStateModel'; +import type { VariantItemResponseModelBaseModel } from './VariantItemResponseModelBaseModel'; + +export type DocumentVariantItemResponseModel = (VariantItemResponseModelBaseModel & { + state: ContentStateModel; +}); + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts new file mode 100644 index 0000000000..fbe7b748eb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/MediaConfigurationResponseModel.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type MediaConfigurationResponseModel = { + disableDeleteWhenReferenced: boolean; + disableUnpublishWhenReferenced: boolean; + sanitizeTinyMce: boolean; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts new file mode 100644 index 0000000000..73634e2f42 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageConfigurationResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type PackageConfigurationResponseModel = { + marketplaceUrl: string; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts new file mode 100644 index 0000000000..1236e86306 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/TemplateConfigurationResponseModel.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type TemplateConfigurationResponseModel = { + disabled: boolean; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts index 69cedc9460..803621a39c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModel.ts @@ -3,11 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -import type { ContentStateModel } from './ContentStateModel'; +import type { VariantItemResponseModelBaseModel } from './VariantItemResponseModelBaseModel'; -export type VariantItemResponseModel = { - name: string; - culture?: string | null; - state: ContentStateModel; -}; +export type VariantItemResponseModel = VariantItemResponseModelBaseModel; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts new file mode 100644 index 0000000000..955c49c60c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VariantItemResponseModelBaseModel.ts @@ -0,0 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type VariantItemResponseModelBaseModel = { + name: string; + culture?: string | null; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts index f7ebd3ff5e..f4fb9f85a5 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DataTypeResource.ts @@ -5,6 +5,7 @@ import type { CopyDataTypeRequestModel } from '../models/CopyDataTypeRequestModel'; import type { CreateDataTypeRequestModel } from '../models/CreateDataTypeRequestModel'; import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; +import type { DatatypeConfigurationResponseModel } from '../models/DatatypeConfigurationResponseModel'; import type { DataTypeItemResponseModel } from '../models/DataTypeItemResponseModel'; import type { DataTypeReferenceResponseModel } from '../models/DataTypeReferenceResponseModel'; import type { DataTypeResponseModel } from '../models/DataTypeResponseModel'; @@ -212,6 +213,20 @@ export class DataTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getDataTypeConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/data-type/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns string Created * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts index d02131fc23..02787a6afd 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentResource.ts @@ -4,6 +4,7 @@ /* eslint-disable */ import type { CopyDocumentRequestModel } from '../models/CopyDocumentRequestModel'; import type { CreateDocumentRequestModel } from '../models/CreateDocumentRequestModel'; +import type { DocumentConfigurationResponseModel } from '../models/DocumentConfigurationResponseModel'; import type { DocumentItemResponseModel } from '../models/DocumentItemResponseModel'; import type { DocumentNotificationResponseModel } from '../models/DocumentNotificationResponseModel'; import type { DocumentResponseModel } from '../models/DocumentResponseModel'; @@ -483,6 +484,20 @@ export class DocumentResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getDocumentConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/document/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts index 62a5466b99..2c82079ef4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/DocumentTypeResource.ts @@ -8,6 +8,7 @@ import type { CreateDocumentTypeRequestModel } from '../models/CreateDocumentTyp import type { CreateFolderRequestModel } from '../models/CreateFolderRequestModel'; import type { DocumentTypeCompositionRequestModel } from '../models/DocumentTypeCompositionRequestModel'; import type { DocumentTypeCompositionResponseModel } from '../models/DocumentTypeCompositionResponseModel'; +import type { DocumentTypeConfigurationResponseModel } from '../models/DocumentTypeConfigurationResponseModel'; import type { DocumentTypeItemResponseModel } from '../models/DocumentTypeItemResponseModel'; import type { DocumentTypeResponseModel } from '../models/DocumentTypeResponseModel'; import type { FolderResponseModel } from '../models/FolderResponseModel'; @@ -269,6 +270,20 @@ export class DocumentTypeResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getDocumentTypeConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/document-type/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns string Created * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts index e6413995a6..2fe94bcc8c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/MediaResource.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ import type { CreateMediaRequestModel } from '../models/CreateMediaRequestModel'; +import type { MediaConfigurationResponseModel } from '../models/MediaConfigurationResponseModel'; import type { MediaItemResponseModel } from '../models/MediaItemResponseModel'; import type { MediaResponseModel } from '../models/MediaResponseModel'; import type { MoveMediaRequestModel } from '../models/MoveMediaRequestModel'; @@ -141,6 +142,20 @@ export class MediaResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getMediaConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/media/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts index b952a0f2a7..fc72c5b016 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/PackageResource.ts @@ -3,6 +3,7 @@ /* tslint:disable */ /* eslint-disable */ import type { CreatePackageRequestModel } from '../models/CreatePackageRequestModel'; +import type { PackageConfigurationResponseModel } from '../models/PackageConfigurationResponseModel'; import type { PackageDefinitionResponseModel } from '../models/PackageDefinitionResponseModel'; import type { PackageManifestResponseModel } from '../models/PackageManifestResponseModel'; import type { PagedPackageDefinitionResponseModel } from '../models/PagedPackageDefinitionResponseModel'; @@ -38,6 +39,20 @@ export class PackageResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getPackageConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/package/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns PagedPackageDefinitionResponseModel Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts index ca156f2753..b2e7170953 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/TemplateResource.ts @@ -4,6 +4,7 @@ /* eslint-disable */ import type { CreateTemplateRequestModel } from '../models/CreateTemplateRequestModel'; import type { PagedNamedEntityTreeItemResponseModel } from '../models/PagedNamedEntityTreeItemResponseModel'; +import type { TemplateConfigurationResponseModel } from '../models/TemplateConfigurationResponseModel'; import type { TemplateItemResponseModel } from '../models/TemplateItemResponseModel'; import type { TemplateQueryExecuteModel } from '../models/TemplateQueryExecuteModel'; import type { TemplateQueryResultResponseModel } from '../models/TemplateQueryResultResponseModel'; @@ -113,6 +114,20 @@ export class TemplateResource { }); } + /** + * @returns any Success + * @throws ApiError + */ + public static getTemplateConfiguration(): CancelablePromise { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/template/configuration', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + /** * @returns any Success * @throws ApiError diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts index f1ff1c77c4..c168a0c9e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/media-item.server.data-source.ts @@ -43,7 +43,6 @@ const mapper = (item: MediaItemResponseModel): UmbMediaItemModel => { return { culture: variant.culture || null, name: variant.name, - state: variant.state, }; }), name: item.variants[0]?.name, // TODO: get correct variant name diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts index e521e58d2b..5fdb7f35ba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/item/types.ts @@ -1,5 +1,3 @@ -import type { ContentStateModel } from '@umbraco-cms/backoffice/backend-api'; - export interface UmbMediaItemModel { unique: string; isTrashed: boolean; @@ -15,5 +13,4 @@ export interface UmbMediaItemModel { export interface UmbMediaItemVariantModel { name: string; culture: string | null; - state: ContentStateModel | null; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts index 0b144f5d9b..6ea46cd90b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/media-tree.server.data-source.ts @@ -61,7 +61,6 @@ const mapper = (item: MediaTreeItemResponseModel): UmbMediaTreeItemModel => { return { name: variant.name, culture: variant.culture || null, - state: variant.state, }; }), }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts index 56579a5c70..b4d3707aa3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/tree/types.ts @@ -21,5 +21,4 @@ export interface UmbMediaTreeRootModel extends UmbUniqueTreeRootModel { export interface UmbMediaTreeItemVariantModel { name: string; culture: string | null; - state: ContentStateModel; // TODO: make our own enum for this. We might have states for "unsaved changes" etc. } From cd9dbe54360a7451ed4cdaadd31e75776009c04f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 29 Jan 2024 19:31:26 +0100 Subject: [PATCH 695/786] align naming --- ...ment-type-workspace-view-structure.element.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts index 1e0726a200..f09d83e334 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts @@ -13,10 +13,10 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement #workspaceContext?: UmbDocumentTypeWorkspaceContext; @state() - private _allowedAsRoot?: boolean; + private _allowedAtRoot?: boolean; @state() - private _allowedContentTypeIDs?: Array; + private _allowedContentTypeUniques?: Array; constructor() { super(); @@ -30,13 +30,13 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement private _observeDocumentType() { if (!this.#workspaceContext) return; - this.observe(this.#workspaceContext.allowedAsRoot, (allowedAsRoot) => (this._allowedAsRoot = allowedAsRoot)); + this.observe(this.#workspaceContext.allowedAsRoot, (allowedAsRoot) => (this._allowedAtRoot = allowedAsRoot)); this.observe(this.#workspaceContext.allowedContentTypes, (allowedContentTypes) => { - const oldValue = this._allowedContentTypeIDs; - this._allowedContentTypeIDs = allowedContentTypes + const oldValue = this._allowedContentTypeUniques; + this._allowedContentTypeUniques = allowedContentTypes ?.map((x) => x.contentType.unique) .filter((x) => x !== undefined) as Array; - this.requestUpdate('_allowedContentTypeIDs', oldValue); + this.requestUpdate('_allowedContentTypeUniques', oldValue); }); } @@ -48,7 +48,7 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement
{ this.#workspaceContext?.setAllowedAsRoot((e.target as UUIToggleElement).checked); }}> @@ -62,7 +62,7 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement - ${this._label} + ${this.label} ${this._isOpen === true ? html`` @@ -82,6 +79,7 @@ export class UmbInlineListBlockElement extends UmbLitElement { } static styles = [ + UmbTextStyles, css` #accordion-button { display: flex; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts index 7dc6d20276..ab200528de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts @@ -10,7 +10,7 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; export class UmbRefListBlockElement extends UmbLitElement { // @property({ type: String }) - name?: string; + label?: string; @state() _workspaceEditPath?: string; @@ -31,7 +31,7 @@ export class UmbRefListBlockElement extends UmbLitElement { render() { // href=${this._workspaceEditPath ?? '#'} - return html``; + return html``; } static styles = [ From bbb05103c2061357f02e4af91b461627e3f94fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 20:27:41 +0100 Subject: [PATCH 698/786] fix block height --- .../components/ref-list-block/ref-list-block.element.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts index ab200528de..dce78e9855 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/ref-list-block/ref-list-block.element.ts @@ -1,6 +1,5 @@ import { UMB_BLOCK_LIST_CONTEXT } from '../../context/block-list.context-token.js'; import { css, customElement, html, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UUIRefNodeElement } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; /** @@ -35,9 +34,8 @@ export class UmbRefListBlockElement extends UmbLitElement { } static styles = [ - ...UUIRefNodeElement.styles, css` - :host { + uui-ref-node { min-height: var(--uui-size-16); } `, From 23255b2a5f5200d3e69b89b3a134bde714441694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 20:28:10 +0100 Subject: [PATCH 699/786] enable default slot content of extension slot --- .../block-list-block.element.ts | 18 +++++++++++++++--- .../extension-slot/extension-slot.element.ts | 14 ++++++++------ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 6af4a4da1f..4c6bb6d6a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -37,6 +37,12 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl @state() _inlineEditingMode?: boolean; + // TODO: Move type for the Block Properties, and use it on the Element Interface for the Manifest. + @state() + _blockViewProps: { + label?: string; + } = {}; + constructor() { super(); @@ -47,6 +53,7 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl this._contentUdi = contentUdi; }); this.observe(this.#context.label, (label) => { + this._blockViewProps.label = label; this._label = label; }); this.observe(this.#context.inlineEditingMode, (inlineEditingMode) => { @@ -70,16 +77,21 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl } #renderRefBlock() { - return html``; + return html``; } #renderInlineBlock() { - return html``; + return html``; } #renderBlock() { return html` - ${this._inlineEditingMode ? this.#renderInlineBlock() : this.#renderRefBlock()} + ${this._inlineEditingMode ? this.#renderInlineBlock() : this.#renderRefBlock()} ${this._workspaceEditPath ? html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts index 645ff5d263..155ab0333d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/extension-slot/extension-slot.element.ts @@ -1,6 +1,6 @@ import { type ManifestTypes, umbExtensionsRegistry } from '../../extension-registry/index.js'; import type { TemplateResult } from '@umbraco-cms/backoffice/external/lit'; -import { css, repeat, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, repeat, customElement, property, state, html } from '@umbraco-cms/backoffice/external/lit'; import { type UmbExtensionElementInitializer, UmbExtensionsElementInitializer, @@ -122,11 +122,13 @@ export class UmbExtensionSlotElement extends UmbLitElement { } render() { - return repeat( - this._permittedExts, - (ext) => ext.alias, - (ext) => (this.renderMethod ? this.renderMethod(ext) : ext.component), - ); + return this._permittedExts.length > 0 + ? repeat( + this._permittedExts, + (ext) => ext.alias, + (ext) => (this.renderMethod ? this.renderMethod(ext) : ext.component), + ) + : html``; } static styles = css` From a45b97ef6ef0471b0f4206c037a74a807c49edf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 22:30:40 +0100 Subject: [PATCH 700/786] block settings editor --- .../workspace/block-workspace.context.ts | 1 + ...k-workspace-view-edit-no-router.element.ts | 1 - ...-workspace-view-edit-properties.element.ts | 46 +++++++++---- .../block-workspace-view-edit-tab.element.ts | 57 +++++++++++---- .../edit/block-workspace-view-edit.element.ts | 69 +++++++++++-------- 5 files changed, 117 insertions(+), 57 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index 7fe74f0be1..327498248a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -10,6 +10,7 @@ import { UMB_BLOCK_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/block'; import { buildUdi } from '@umbraco-cms/backoffice/utils'; import { UMB_MODAL_CONTEXT } from '@umbraco-cms/backoffice/modal'; +export type UmbBlockWorkspaceElementManagerNames = 'content' | 'settings'; export class UmbBlockWorkspaceContext< LayoutDataType extends UmbBlockLayoutBaseModel = UmbBlockLayoutBaseModel, > extends UmbEditableWorkspaceContextBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts index 3a216eb3c9..e6c7aa0e48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts @@ -39,7 +39,6 @@ export class UmbBlockWorkspaceViewEditNoRouterElement extends UmbLitElement impl this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { this._workspaceContext = workspaceContext; - console.log('workspaceContext.content.structure', workspaceContext.content.structure); this._tabsStructureHelper.setStructureManager(workspaceContext.content.structure); this._observeRootGroups(); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index 8eec2efdeb..65dc3eaf34 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -1,36 +1,46 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token.js'; +import type { UmbBlockWorkspaceElementManagerNames } from '../../block-workspace.context.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { PropertyContainerTypes, // UmbPropertyTypeBasedPropertyElement, - UmbContentTypeModel} from '@umbraco-cms/backoffice/content-type'; -import { - UmbContentTypePropertyStructureHelper + UmbContentTypeModel, } from '@umbraco-cms/backoffice/content-type'; +import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { PropertyTypeModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-block-workspace-view-edit-properties') export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { + @property({ attribute: false }) + public get managerName(): UmbBlockWorkspaceElementManagerNames | undefined { + return this.#managerName; + } + public set managerName(value: UmbBlockWorkspaceElementManagerNames | undefined) { + this.#managerName = value; + this.#setStructureManager(); + } + #managerName?: UmbBlockWorkspaceElementManagerNames; + #blockWorkspace?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; + #propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); + @property({ type: String, attribute: 'container-name', reflect: false }) public get containerName(): string | undefined { - return this._propertyStructureHelper.getContainerName(); + return this.#propertyStructureHelper.getContainerName(); } public set containerName(value: string | undefined) { - this._propertyStructureHelper.setContainerName(value); + this.#propertyStructureHelper.setContainerName(value); } @property({ type: String, attribute: 'container-type', reflect: false }) public get containerType(): PropertyContainerTypes | undefined { - return this._propertyStructureHelper.getContainerType(); + return this.#propertyStructureHelper.getContainerType(); } public set containerType(value: PropertyContainerTypes | undefined) { - this._propertyStructureHelper.setContainerType(value); + this.#propertyStructureHelper.setContainerType(value); } - _propertyStructureHelper = new UmbContentTypePropertyStructureHelper(this); - @state() _propertyStructure: Array = []; @@ -38,13 +48,23 @@ export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { super(); this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { - this._propertyStructureHelper.setStructureManager(workspaceContext.content.structure); - }); - this.observe(this._propertyStructureHelper.propertyStructure, (propertyStructure) => { - this._propertyStructure = propertyStructure; + this.#blockWorkspace = workspaceContext; + this.#setStructureManager(); }); } + #setStructureManager() { + if (!this.#blockWorkspace || !this.#managerName) return; + this.#propertyStructureHelper.setStructureManager(this.#blockWorkspace[this.#managerName].structure); + this.observe( + this.#propertyStructureHelper.propertyStructure, + (propertyStructure) => { + this._propertyStructure = propertyStructure; + }, + 'observePropertyStructure', + ); + } + render() { return repeat( this._propertyStructure, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts index 3cac991532..03a27f78bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts @@ -7,29 +7,42 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import './block-workspace-view-edit-properties.element.js'; +// eslint-disable-next-line import/order +import type { UmbBlockWorkspaceElementManagerNames } from '../../block-workspace.context.js'; @customElement('umb-block-workspace-view-edit-tab') export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { - private _tabName?: string | undefined; + @property({ attribute: false }) + public get managerName(): UmbBlockWorkspaceElementManagerNames | undefined { + return this.#managerName; + } + public set managerName(value: UmbBlockWorkspaceElementManagerNames | undefined) { + this.#managerName = value; + this.#setStructureManager(); + } + #managerName?: UmbBlockWorkspaceElementManagerNames; + #blockWorkspace?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; + #groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); @property({ type: String }) public get tabName(): string | undefined { - return this._groupStructureHelper.getName(); + return this.#groupStructureHelper.getName(); } public set tabName(value: string | undefined) { if (value === this._tabName) return; const oldValue = this._tabName; this._tabName = value; - this._groupStructureHelper.setName(value); + this.#groupStructureHelper.setName(value); this.requestUpdate('tabName', oldValue); } + private _tabName?: string | undefined; @property({ type: Boolean }) public get noTabName(): boolean { - return this._groupStructureHelper.getIsRoot(); + return this.#groupStructureHelper.getIsRoot(); } public set noTabName(value: boolean) { - this._groupStructureHelper.setIsRoot(value); + this.#groupStructureHelper.setIsRoot(value); } private _ownerTabId?: string | null; @@ -40,7 +53,7 @@ export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { public set ownerTabId(value: string | null | undefined) { if (value === this._ownerTabId) return; this._ownerTabId = value; - this._groupStructureHelper.setOwnerId(value); + this.#groupStructureHelper.setOwnerId(value); } /** @@ -50,8 +63,6 @@ export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { @property({ type: Boolean, reflect: false }) hideSingleGroup = false; - _groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); - @state() _groups: Array = []; @@ -62,16 +73,30 @@ export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { super(); this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { - this._groupStructureHelper.setStructureManager(workspaceContext.content.structure); - }); - this.observe(this._groupStructureHelper.containers, (groups) => { - this._groups = groups; - }); - this.observe(this._groupStructureHelper.hasProperties, (hasProperties) => { - this._hasProperties = hasProperties; + this.#blockWorkspace = workspaceContext; + this.#setStructureManager(); }); } + #setStructureManager() { + if (!this.#blockWorkspace || !this.#managerName) return; + this.#groupStructureHelper.setStructureManager(this.#blockWorkspace[this.#managerName].structure); + this.observe( + this.#groupStructureHelper.containers, + (groups) => { + this._groups = groups; + }, + 'observeGroups', + ); + this.observe( + this.#groupStructureHelper.hasProperties, + (hasProperties) => { + this._hasProperties = hasProperties; + }, + 'observeHasProperties', + ); + } + render() { return html` ${this._hasProperties ? this.#renderPart(this._tabName) : ''} @@ -86,11 +111,13 @@ export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { #renderPart(groupName: string | null | undefined, boxName?: string | null | undefined) { return this.hideSingleGroup && this._groups.length === 1 ? html` ` : html` (this); + + //@state() //private _hasRootProperties = false; + + @state() private _hasRootGroups = false; @state() @@ -32,44 +43,44 @@ export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements U @state() private _activePath = ''; - private _workspaceContext?: typeof UMB_BLOCK_WORKSPACE_CONTEXT.TYPE; - - private _tabsStructureHelper = new UmbContentTypeContainerStructureHelper(this); - constructor() { super(); - this._tabsStructureHelper.setIsRoot(true); - this._tabsStructureHelper.setContainerChildType('Tab'); - this.observe(this._tabsStructureHelper.containers, (tabs) => { - this._tabs = tabs; - this._createRoutes(); - }); + this.#tabsStructureHelper.setIsRoot(true); + this.#tabsStructureHelper.setContainerChildType('Tab'); // _hasRootProperties can be gotten via _tabsStructureHelper.hasProperties. But we do not support root properties currently. this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (workspaceContext) => { - this._workspaceContext = workspaceContext; - this._tabsStructureHelper.setStructureManager(workspaceContext.content.structure); - this._observeRootGroups(); + this.#blockWorkspace = workspaceContext; + this.#setStructureManager(); }); } - private _observeRootGroups() { - if (!this._workspaceContext) return; + #setStructureManager() { + if (!this.#blockWorkspace || !this.#managerName) return; + this.#tabsStructureHelper.setStructureManager(this.#blockWorkspace[this.#managerName].structure); this.observe( - this._workspaceContext.content.structure.hasRootContainers('Group'), + this.#blockWorkspace![this.#managerName!].structure.hasRootContainers('Group'), (hasRootGroups) => { this._hasRootGroups = hasRootGroups; this._createRoutes(); }, - '_observeGroups', + 'observeGroups', + ); + this.observe( + this.#tabsStructureHelper.containers, + (tabs) => { + this._tabs = tabs; + this._createRoutes(); + }, + 'observeTabs', ); } private _createRoutes() { - if (!this._tabs || !this._workspaceContext) return; + if (!this._tabs || !this.#blockWorkspace) return; const routes: UmbRoute[] = []; if (this._tabs.length > 0) { @@ -79,10 +90,11 @@ export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements U path: `tab/${encodeFolderName(tabName).toString()}`, component: () => import('./block-workspace-view-edit-tab.element.js'), setup: (component) => { + (component as UmbBlockWorkspaceViewEditTabElement).managerName = this.#managerName; (component as UmbBlockWorkspaceViewEditTabElement).tabName = tabName; // TODO: Consider if we can link these more simple, and not parse this on. // Instead have the structure manager looking at wether one of the OwnerALikecontainers is in the owner document. - (component as UmbBlockWorkspaceViewEditTabElement).ownerTabId = this._tabsStructureHelper.isOwnerContainer( + (component as UmbBlockWorkspaceViewEditTabElement).ownerTabId = this.#tabsStructureHelper.isOwnerContainer( tab.id!, ) ? tab.id @@ -97,6 +109,7 @@ export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements U path: '', component: () => import('./block-workspace-view-edit-tab.element.js'), setup: (component) => { + (component as UmbBlockWorkspaceViewEditTabElement).managerName = this.#managerName; (component as UmbBlockWorkspaceViewEditTabElement).noTabName = true; (component as UmbBlockWorkspaceViewEditTabElement).ownerTabId = null; }, From 38ca799b71ffe8737f3505495bf79bda7ccf6d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 29 Jan 2024 22:30:49 +0100 Subject: [PATCH 701/786] block settings element mock data --- .../mocks/data/data-type/data-type.data.ts | 1 + .../src/mocks/data/document.data.ts | 15 ++++++++----- .../block/block/workspace/manifests.ts | 22 ++++++++++++++++++- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index b039574eae..fbc3568f8e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -536,6 +536,7 @@ export const data: Array = [ { label: 'Mocked Block Type for Block List', contentElementTypeKey: '4f68ba66-6fb2-4778-83b8-6ab4ca3a7c5c', + settingsElementTypeKey: 'all-property-editors-document-type-id', icon: 'icon-server-alt', }, { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index ad24090e2a..5b55cb6732 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -11,11 +11,9 @@ import type { PagedDocumentTreeItemResponseModel, PagedDocumentTypeResponseModel, PagedRecycleBinItemResponseModel, - PublishDocumentRequestModel} from '@umbraco-cms/backoffice/backend-api'; -import { - ContentStateModel, - PublishedStateModel, + PublishDocumentRequestModel, } from '@umbraco-cms/backoffice/backend-api'; +import { ContentStateModel, PublishedStateModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_DOCUMENT_ENTITY_TYPE } from '@umbraco-cms/backoffice/document'; export const data: Array = [ @@ -177,6 +175,7 @@ export const data: Array = [ 'Umbraco.BlockList': [ { contentUdi: '1234', + settingsUdi: '5678', }, ], }, @@ -187,7 +186,13 @@ export const data: Array = [ elementProperty: 'Hello world', }, ], - settingsData: [], + settingsData: [ + { + udi: '5678', + contentTypeKey: 'all-property-editors-document-type-id', + elementProperty: 'Hello world', + }, + ], }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index 3afce80e47..e39a7cd4bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -41,6 +41,7 @@ export const manifests: Array = [ label: 'Content', pathname: 'content', icon: 'icon-document', + blockElementManagerName: 'content', }, conditions: [ { @@ -48,5 +49,24 @@ export const manifests: Array = [ match: UMB_BLOCK_WORKSPACE_ALIAS, }, ], - }, + } as any, + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.Block.Settings', + name: 'Block Workspace Settings View', + js: () => import('./views/edit/block-workspace-view-edit.element.js'), + weight: 1000, + meta: { + label: 'Settings', + pathname: 'settings', + icon: 'icon-settings', + blockElementManagerName: 'settings', + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_BLOCK_WORKSPACE_ALIAS, + }, + ], + } as any, ]; From 5b1139d9e87ec3bde6d06ff9b01ba578944929c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 10:24:54 +0100 Subject: [PATCH 702/786] has settings --- .../block-list-block/block-list-block.element.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 4c6bb6d6a7..33c277a649 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -28,6 +28,9 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl @state() _contentUdi?: string; + @state() + _hasSettings = false; + @state() _label = ''; @@ -52,6 +55,10 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl this.observe(this.#context.contentUdi, (contentUdi) => { this._contentUdi = contentUdi; }); + this.observe(this.#context.blockTypeSettingsElementTypeKey, (blockTypeSettingsElementTypeKey) => { + console.log(blockTypeSettingsElementTypeKey, !!blockTypeSettingsElementTypeKey); + this._hasSettings = blockTypeSettingsElementTypeKey !== undefined; + }); this.observe(this.#context.label, (label) => { this._blockViewProps.label = label; this._label = label; @@ -98,6 +105,11 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl ` : ''} + ${this._workspaceEditPath && this._hasSettings + ? html` + + ` + : ''} From 72ce67288ccb9f924dbd5069e839c452120b88f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 10:25:12 +0100 Subject: [PATCH 703/786] document workspace minor correction --- .../edit/document-workspace-view-edit.element.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts index dfa77db940..c05bcd338f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts @@ -3,20 +3,18 @@ import type { UmbDocumentWorkspaceViewEditTabElement } from './document-workspac import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; -import type { - UmbRoute, - UmbRouterSlotChangeEvent, - UmbRouterSlotInitEvent} from '@umbraco-cms/backoffice/router'; -import { - encodeFolderName -} from '@umbraco-cms/backoffice/router'; +import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; +import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-document-workspace-view-edit') export class UmbDocumentWorkspaceViewEditElement extends UmbLitElement implements UmbWorkspaceViewElement { + //@state() //private _hasRootProperties = false; + + @state() private _hasRootGroups = false; @state() From 97e53069bf99eb9e922c9eaae7d03507bc87ae8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 10:25:46 +0100 Subject: [PATCH 704/786] private declarator --- .../views/edit/document-workspace-view-edit.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts index c05bcd338f..68a60a2bc6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.ts @@ -21,7 +21,7 @@ export class UmbDocumentWorkspaceViewEditElement extends UmbLitElement implement private _routes: UmbRoute[] = []; @state() - _tabs?: Array; + private _tabs?: Array; @state() private _routerPath?: string; From e7e30aba6e7a897b4a533ea537043f0363598cec Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 30 Jan 2024 10:27:02 +0100 Subject: [PATCH 705/786] remove unused method in structure repo/data-source --- ...nt-type-structure-data-source.interface.ts | 1 - .../content-type-structure-repository-base.ts | 9 -------- ...ent-type-structure-repository.interface.ts | 1 - ...-type-structure-server-data-source-base.ts | 23 ++----------------- ...ument-type-structure.server.data-source.ts | 5 +--- 5 files changed, 3 insertions(+), 36 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts index 31e0534ce3..9a631ef06b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-data-source.interface.ts @@ -6,6 +6,5 @@ export interface UmbContentTypeStructureDataSourceConstructor { } export interface UmbContentTypeStructureDataSource { - getAllowedAtRoot(): Promise>>; getAllowedChildrenOf(unique: string | null): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts index e0b18eb5c5..bfc2841202 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository-base.ts @@ -17,15 +17,6 @@ export abstract class UmbContentTypeStructureRepositoryBase this.#structureSource = new structureSource(host); } - /** - * Returns a promise with the allowed content types at root - * @return {*} - * @memberof UmbContentTypeStructureRepositoryBase - */ - requestAllowedAtRoot() { - return this.#structureSource.getAllowedAtRoot(); - } - /** * Returns a promise with the allowed children of a content type * @param {string} unique diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts index d949c9b583..1da863e86c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-repository.interface.ts @@ -1,6 +1,5 @@ import type { DataSourceResponse, UmbPagedModel } from '@umbraco-cms/backoffice/repository'; export interface UmbContentTypeStructureRepository { - requestAllowedAtRoot(): Promise>>; requestAllowedChildrenOf(unique: string): Promise>>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts index 2404249e94..8fe1c98834 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/structure/content-type-structure-server-data-source-base.ts @@ -8,8 +8,7 @@ export interface UmbContentTypeStructureServerDataSourceBaseArgs< ServerItemType extends ItemResponseModelBaseModel, ClientItemType extends { unique: string }, > { - getAllowedAtRoot: () => Promise>; - getAllowedChildrenOf: (unique: string) => Promise>; + getAllowedChildrenOf: (unique: string | null) => Promise>; mapper: (item: ServerItemType) => ClientItemType; } @@ -19,7 +18,6 @@ export abstract class UmbContentTypeStructureServerDataSourceBase< > implements UmbContentTypeStructureDataSource { #host; - #getAllowedAtRoot; #getAllowedChildrenOf; #mapper; @@ -33,34 +31,17 @@ export abstract class UmbContentTypeStructureServerDataSourceBase< args: UmbContentTypeStructureServerDataSourceBaseArgs, ) { this.#host = host; - this.#getAllowedAtRoot = args.getAllowedAtRoot; this.#getAllowedChildrenOf = args.getAllowedChildrenOf; this.#mapper = args.mapper; } - /** - * Returns a promise with the allowed content types at root - * @return {*} - * @memberof UmbContentTypeStructureServerDataSourceBase - */ - async getAllowedAtRoot() { - const { data, error } = await tryExecuteAndNotify(this.#host, this.#getAllowedAtRoot()); - - if (data) { - const items = data.items.map((item) => this.#mapper(item)); - return { data: { items, total: data.total } }; - } - - return { error }; - } - /** * Returns a promise with the allowed content types for the given unique * @param {string} unique * @return {*} * @memberof UmbContentTypeStructureServerDataSourceBase */ - async getAllowedChildrenOf(unique: string) { + async getAllowedChildrenOf(unique: string | null) { const { data, error } = await tryExecuteAndNotify(this.#host, this.#getAllowedChildrenOf(unique)); if (data) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts index ada0b70e0c..a4b3dcfab0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/structure/document-type-structure.server.data-source.ts @@ -15,13 +15,10 @@ export class UmbDocumentTypeStructureServerDataSource extends UmbContentTypeStru UmbAllowedDocumentTypeModel > { constructor(host: UmbControllerHost) { - super(host, { getAllowedAtRoot, getAllowedChildrenOf, mapper }); + super(host, { getAllowedChildrenOf, mapper }); } } -// eslint-disable-next-line local-rules/no-direct-api-import -const getAllowedAtRoot = () => DocumentTypeResource.getDocumentTypeAllowedAtRoot({}); - const getAllowedChildrenOf = (unique: string | null) => { if (unique) { // eslint-disable-next-line local-rules/no-direct-api-import From 754e7546a30b92607301ae7342add92652fb3f22 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:21:53 +0100 Subject: [PATCH 706/786] cleanup after macros and add styling to announce they are no longer supported for any migrated rte content --- src/Umbraco.Web.UI.Client/package.json | 1 - .../public-assets/css/rte-content.css | 15 +- .../src/assets/lang/da-dk.ts | 2 +- .../src/assets/lang/en-us.ts | 4 +- .../mocks/data/data-type/data-type.data.ts | 1 - .../src/mocks/data/document.data.ts | 13 +- .../src/mocks/handlers/install.handlers.ts | 2 +- .../input-tiny-mce/input-tiny-mce.defaults.ts | 2 - .../input-tiny-mce/input-tiny-mce.element.ts | 6 +- .../src/packages/core/index.ts | 1 - .../src/packages/core/macro/index.ts | 1 - .../src/packages/core/macro/macro.service.ts | 148 ------------ .../uis/tiny-mce/plugins/manifests.ts | 15 -- .../plugins/tiny-mce-macropicker.plugin.ts | 222 +++--------------- .../property-editor-ui-tiny-mce.stories.ts | 1 - .../templating-insert-menu.element.ts | 14 +- .../insert-choose-type-sidebar.element.ts | 4 +- src/Umbraco.Web.UI.Client/tsconfig.json | 1 - .../web-test-runner.config.mjs | 1 - 19 files changed, 48 insertions(+), 406 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/macro/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index a756f55069..94d6d8a52d 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -31,7 +31,6 @@ "./extension-registry": "./dist-cms/packages/core/extension-registry/index.js", "./id": "./dist-cms/packages/core/id/index.js", "./localization": "./dist-cms/packages/core/localization/index.js", - "./macro": "./dist-cms/packages/core/macro/index.js", "./menu": "./dist-cms/packages/core/menu/index.js", "./modal": "./dist-cms/packages/core/modal/index.js", "./notification": "./dist-cms/packages/core/notification/index.js", diff --git a/src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css b/src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css index 34ea2b3c77..18b986bc23 100644 --- a/src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css +++ b/src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css @@ -1,16 +1,3 @@ -.umb-macro-holder { - border: 3px dotted var(--uui-palette-spanish-pink-light); - padding: 7px; - display: block; - margin: 3px; -} - -.umb-macro-holder.loading { - background: url(assets/img/loader.gif) right no-repeat; - background-size: 18px; - background-position-x: 99%; -} - .umb-embed-holder { position: relative; } @@ -39,4 +26,4 @@ *[data-mce-selected='inline-boundary'] { background: rgba(0, 0, 0, 0.025); outline: 2px solid var(--uui-palette-spanish-pink-light); -} \ No newline at end of file +} diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts index d3b00b4443..9a5db47c5d 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts @@ -3217,7 +3217,7 @@ export default { minimalLevelDescription: 'We will only send an anonymized site ID to let us know that the site exists.', basicLevelDescription: 'We will send an anonymized site ID, Umbraco version, and packages installed', detailedLevelDescription: - '\n We will send:\n
    \n
  • Anonymized site ID, Umbraco version, and packages installed.
  • \n
  • Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
  • \n
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • \n
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
  • \n
\n We might change what we send on the Detailed level in the future. If so, it will be listed above.\n
By choosing "Detailed" you agree to current and future anonymized information being collected.
\n ', + '\n We will send:\n
    \n
  • Anonymized site ID, Umbraco version, and packages installed.
  • \n
  • Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
  • \n
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • \n
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
  • \n
\n We might change what we send on the Detailed level in the future. If so, it will be listed above.\n
By choosing "Detailed" you agree to current and future anonymized information being collected.
\n ', }, umbId: { editProfile: 'Edit your Umbraco ID profile', diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts index 6dce152d56..1c05c9a743 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts @@ -1522,7 +1522,7 @@ export default { addGroup: 'Add group', inheritedFrom: 'Inherited from', addProperty: 'Add property', - editProperty : 'Edit property', + editProperty: 'Edit property', requiredLabel: 'Required label', enableListViewHeading: 'Enable list view', enableListViewDescription: @@ -2470,7 +2470,7 @@ export default { minimalLevelDescription: 'We will only send an anonymized site ID to let us know that the site exists.', basicLevelDescription: 'We will send an anonymized site ID, Umbraco version, and packages installed', detailedLevelDescription: - '\n We will send:\n
    \n
  • Anonymized site ID, Umbraco version, and packages installed.
  • \n
  • Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
  • \n
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • \n
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
  • \n
\n We might change what we send on the Detailed level in the future. If so, it will be listed above.\n
By choosing "Detailed" you agree to current and future anonymized information being collected.
\n ', + '\n We will send:\n
    \n
  • Anonymized site ID, Umbraco version, and packages installed.
  • \n
  • Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, Backoffice external login providers, and Property Editors in use.
  • \n
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • \n
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, whether the delivery API is enabled, and allows public access, and if you are in debug mode.
  • \n
\n We might change what we send on the Detailed level in the future. If so, it will be listed above.\n
By choosing "Detailed" you agree to current and future anonymized information being collected.
\n ', }, umbId: { editProfile: 'Edit your Umbraco ID profile', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index e8623bad5e..89d4a3c1bc 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -784,7 +784,6 @@ export const data: Array = [ 'anchor', 'table', 'umbmediapicker', - 'umbmacro', 'umbembeddialog', ], }, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index ad24090e2a..97e9a36737 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -11,11 +11,9 @@ import type { PagedDocumentTreeItemResponseModel, PagedDocumentTypeResponseModel, PagedRecycleBinItemResponseModel, - PublishDocumentRequestModel} from '@umbraco-cms/backoffice/backend-api'; -import { - ContentStateModel, - PublishedStateModel, + PublishDocumentRequestModel, } from '@umbraco-cms/backoffice/backend-api'; +import { ContentStateModel, PublishedStateModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_DOCUMENT_ENTITY_TYPE } from '@umbraco-cms/backoffice/document'; export const data: Array = [ @@ -35,8 +33,11 @@ export const data: Array = [ alias: 'richTextEditor', culture: null, segment: null, - value: - 'Some value for the RTE with an external link and an internal link foo foo
Macro alias: TestMacro
', + value: { + blocks: {}, + markup: ` + Some value for the RTE with an external link and an internal link foo foo
Macro alias: TestMacro
`, + }, }, { alias: 'email', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts index 811c83eb58..8c43cf7fca 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/install.handlers.ts @@ -30,7 +30,7 @@ export const handlers = [ { level: TelemetryLevelModel.DETAILED, description: - 'We will send:
  • Anonymized site ID, umbraco version, and packages installed.
  • Number of: Root nodes, Content nodes, Macros, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, and Property Editors in use.
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode.
We might change what we send on the Detailed level in the future. If so, it will be listed above.
By choosing "Detailed" you agree to current and future anonymized information being collected.
', + 'We will send:
  • Anonymized site ID, umbraco version, and packages installed.
  • Number of: Root nodes, Content nodes, Media, Document Types, Templates, Languages, Domains, User Group, Users, Members, and Property Editors in use.
  • System information: Webserver, server OS, server framework, server OS language, and database provider.
  • Configuration settings: Modelsbuilder mode, if custom Umbraco path exists, ASP environment, and if you are in debug mode.
We might change what we send on the Detailed level in the future. If so, it will be listed above.
By choosing "Detailed" you agree to current and future anonymized information being collected.
', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.ts index 579cbf0b6d..76fe1fff55 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.defaults.ts @@ -1,6 +1,5 @@ import type { RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; -//These are absolutely required in order for the macros to render inline //we put these as extended elements because they get merged on top of the normal allowed elements by tiny mce //so we don't have to specify all the normal elements again export const defaultFallbackConfig: RawEditorOptions = { @@ -23,7 +22,6 @@ export const defaultFallbackConfig: RawEditorOptions = { 'indent', 'link', 'umbmediapicker', - 'umbmacro', 'umbembeddialog', ], style_formats: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index b2b65be207..00f90f788a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -42,11 +42,11 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { super.value = newValue; const newContent = newValue?.toString() ?? ''; - if(this.#editorRef && this.#editorRef.getContent() != newContent) { + if (this.#editorRef && this.#editorRef.getContent() != newContent) { this.#editorRef.setContent(newContent); } } - + get value(): FormDataEntryValue | FormData { return super.value; } @@ -218,7 +218,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { autoresize_bottom_margin: 10, body_class: 'umb-rte', contextMenu: false, - inline_boundaries_selector: 'a[href],code,.mce-annotation,.umb-embed-holder,.umb-macro-holder', + inline_boundaries_selector: 'a[href],code,.mce-annotation,.umb-embed-holder', menubar: false, paste_remove_styles_if_webkit: true, paste_preprocess: pastePreProcessHandler, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts index a5e6406910..58bc8ce5a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -15,7 +15,6 @@ export * from './entity-action/index.js'; export * from './entity-bulk-action/index.js'; export * from './extension-registry/index.js'; export * from './id/index.js'; -export * from './macro/index.js'; export * from './menu/index.js'; export * from './modal/index.js'; export * from './notification/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/macro/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/macro/index.ts deleted file mode 100644 index f8f2528b5a..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/macro/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './macro.service.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts b/src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts deleted file mode 100644 index fb94a58260..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/macro/macro.service.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; - -export interface MacroSyntaxData { - macroAlias: string; - macroParamsDictionary: { [key: string]: string }; - syntax?: string; -} - -export class UmbMacroService { - /** parses the special macro syntax like - * and returns an object with the macro alias and it's parameters - * */ - parseMacroSyntax(syntax = '') { - //This regex will match an alias of anything except characters that are quotes or new lines (for legacy reasons, when new macros are created - // their aliases are cleaned an invalid chars are stripped) - const expression = - /(<\?UMBRACO_MACRO (?:.+?)?macroAlias=["']([^"'\n\r]+?)["'][\s\S]+?)(\/>|>.*?<\/\?UMBRACO_MACRO>)/i; - const match = expression.exec(syntax); - - if (!match || match.length < 3) { - return null; - } - - const macroAlias = match[2]; - - //this will leave us with just the parameters - const paramsChunk = match[1] - .trim() - .replace(new RegExp(`UMBRACO_MACRO macroAlias=["']${macroAlias}["']`), '') - .trim(); - const paramExpression = /(\w+?)=['"]([\s\S]*?)['"]/g; - - const returnVal: MacroSyntaxData = { - macroAlias, - macroParamsDictionary: {}, - }; - - let paramMatch; - while ((paramMatch = paramExpression.exec(paramsChunk))) { - returnVal.macroParamsDictionary[paramMatch[1]] = paramMatch[2]; - } - - return returnVal; - } - - /** - * generates the syntax for inserting a macro into a rich text editor - this is the very old umbraco style syntax * - * @param {MacroSyntaxData} args an object containing the macro alias and it's parameter values - */ - generateMacroSyntax(args: MacroSyntaxData) { - let macroString = `'; - - return macroString; - } - - /** - * generates the syntax for inserting a macro into an mvc template * - * @param {object} args an object containing the macro alias and it's parameter values - */ - generateMvcSyntax(args: MacroSyntaxData) { - let macroString = `@await Umbraco.RenderMacroAsync("${args.macroAlias}"`; - let hasParams = false; - let paramString = ''; - - if (args.macroParamsDictionary) { - paramString = ', new {'; - - for (const [key, val] of Object.entries(args.macroParamsDictionary)) { - hasParams = true; - - const keyVal = `${key}="${val ? val : ''}", `; - - paramString += keyVal; - } - - //remove the last , and trailing whitespace - paramString = paramString.trimEnd().replace(/,*$/, ''); - paramString += '}'; - } - - if (hasParams) { - macroString += paramString; - } - - macroString += ')'; - - return macroString; - } - - collectValueData(macro: any, macroParams: any, renderingEngine: any) { - const macroParamsDictionary: { [key: string]: string } = {}; - const macroAlias = macro.alias; - if (!macroAlias) { - throw 'The macro object does not contain an alias'; - } - - macroParams.forEach((item: any) => { - let val = item.value; - if (item.value !== null && item.value !== undefined && typeof item.value !== 'string') { - try { - val = JSON.parse(val); - } catch (e) { - // not json - } - } - - //each value needs to be xml escaped!! since the value get's stored as an xml attribute - macroParamsDictionary[item.alias] = encodeURIComponent(val); - }); - - let syntax; - - //get the syntax based on the rendering engine - if (renderingEngine && renderingEngine.toLowerCase() === 'mvc') { - syntax = this.generateMvcSyntax({ macroAlias, macroParamsDictionary }); - } else { - syntax = this.generateMacroSyntax({ macroAlias, macroParamsDictionary }); - } - - return { - macroParamsDictionary, - macroAlias, - syntax, - } as MacroSyntaxData; - } -} - -export const UMB_MACRO_SERVICE_CONTEXT = new UmbContextToken(UmbMacroService.name); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/manifests.ts index f4d4718e08..c714dcbde2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/manifests.ts @@ -66,21 +66,6 @@ const pluginManifests: Array = [ ], }, }, - { - type: 'tinyMcePlugin', - alias: 'Umb.TinyMcePlugin.MacroPicker', - name: 'Macro Picker TinyMCE Plugin', - js: () => import('./tiny-mce-macropicker.plugin.js'), - meta: { - toolbar: [ - { - alias: 'umbmacro', - label: 'Macro', - icon: 'preferences', - }, - ], - }, - }, ]; export const manifests = [...pluginManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts index 9413c42e17..a44a66b43c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts @@ -1,210 +1,42 @@ -import type { MacroSyntaxData} from '@umbraco-cms/backoffice/macro'; -import { UmbMacroService } from '@umbraco-cms/backoffice/macro'; -import type { TinyMcePluginArguments} from '@umbraco-cms/backoffice/components'; +import type { TinyMcePluginArguments } from '@umbraco-cms/backoffice/components'; import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; -import type { AstNode } from '@umbraco-cms/backoffice/external/tinymce'; -interface DialogData { - richTextEditor: boolean; - macroData?: MacroSyntaxData | null; - activeMacroElement?: HTMLElement; -} - -// TODO => This is a quick transplant of the existing macro plugin - needs to be finished, and need to -// determine how to replicate the existing macro service export default class UmbTinyMceMacroPickerPlugin extends UmbTinyMcePluginBase { - #macroService = new UmbMacroService(); - - #modalContext?: UmbModalManagerContext; - constructor(args: TinyMcePluginArguments) { super(args); - this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (modalContext) => { - this.#modalContext = modalContext; - }); - - /** Adds custom rules for the macro plugin and custom serialization */ - this.editor.on('preInit', () => { - //this is requires so that we tell the serializer that a 'div' is actually allowed in the root, - // otherwise the cleanup will strip it out - this.editor.serializer.addRules('div'); - - /** This checks if the div is a macro container, if so, checks if its wrapped in a p tag and then unwraps it (removes p tag) */ - this.editor.serializer.addNodeFilter('div', (nodes: Array) => { - for (let i = 0; i < nodes.length; i++) { - if (nodes[i].attr('class') === 'umb-macro-holder' && nodes[i].parent?.name.toLowerCase() === 'p') { - nodes[i].parent?.unwrap(); - } + const contentStyle = this.editor.options.get('content_style'); + this.editor.options.set( + 'content_style', + ` + ${contentStyle ?? ''} + .umb-macro-holder { + border: 3px dotted var(--uui-palette-spanish-pink-light); + padding: 7px; + margin: 3px; + display: block; + position: relative; } - }); - }); + .umb-macro-holder::after { + content: 'Macros are no longer supported. Please use the block picker instead.'; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + background-color: rgba(0, 0, 0, 0.7); + padding: 10px; + border-radius: 5px; + } + `, + ); /** when the contents load we need to find any macros declared and load in their content */ this.editor.on('SetContent', () => { //get all macro divs and load their content - this.editor.dom.select('.umb-macro-holder.mceNonEditable').forEach((macroElement: HTMLElement) => { - this.#loadMacroContent(macroElement as HTMLDivElement, null); + this.editor.dom.select('.umb-macro-holder').forEach((macroElement: HTMLElement) => { + macroElement.setAttribute('contenteditable', 'false'); }); }); - - /** Adds the button instance */ - this.editor.ui.registry.addButton('umbmacro', { - icon: 'preferences', - tooltip: 'Insert macro', - - /** The insert macro button click event handler */ - onAction: () => { - let dialogData: DialogData = { - //flag for use in rte so we only show macros flagged for the editor - richTextEditor: true, - }; - - //when we click we could have a macro already selected and in that case we'll want to edit the current parameters - //so we'll need to extract them and submit them to the dialog. - const activeMacroElement = this.#getRealMacroElem(); - if (activeMacroElement) { - //we have a macro selected so we'll need to parse it's alias and parameters - const comment = Array.from(activeMacroElement.childNodes).find((x) => x.nodeType === 8); - if (!comment) { - throw 'Cannot parse the current macro, the syntax in the editor is invalid'; - } - - const syntax = comment.textContent?.trim(); - const parsed = this.#macroService?.parseMacroSyntax(syntax); - - dialogData = { - richTextEditor: false, - macroData: parsed, - activeMacroElement, //pass the active element along so we can retrieve it later - }; - } - - this.#showMacroPicker(dialogData); - }, - }); - } - - /** loads in the macro content async from the server */ - #loadMacroContent(macroDiv?: HTMLDivElement, macroData?: MacroSyntaxData | null) { - //if we don't have the macroData, then we'll need to parse it from the macro div - if (!macroData && macroDiv) { - const comment = Array.from(macroDiv.childNodes).find((x) => x.nodeType === 8); - - if (!comment) { - throw 'Cannot parse the current macro, the syntax in the editor is invalid'; - } - - const syntax = comment.textContent?.trim(); - const parsed = this.#macroService?.parseMacroSyntax(syntax); - macroData = parsed; - } - - //show the throbber - macroDiv?.classList.add('loading'); - - // Add the contenteditable="false" attribute - // As just the CSS class of .mceNonEditable is not working by itself?! - macroDiv?.setAttribute('contenteditable', 'false'); - - // TODO => macro data service? - // const contentId = $routeParams.id; - - // //need to wrap in safe apply since this might be occuring outside of angular - // angularHelper.safeApply($rootScope, function () { - // tryExecuteAndNotify(this, macroResource - // .getMacroResultAsHtmlForEditor(macroData.macroAlias, contentId, macroData.macroParamsDictionary)) - // .then(function (htmlResult) { - // $macroDiv.removeClass('loading'); - // htmlResult = htmlResult.trim(); - // if (htmlResult !== '') { - // const wasDirty = editor.isDirty(); - // const $ins = macroDiv?.querySelector('ins'); - // $ins.html(htmlResult); - // if (!wasDirty) { - // editor.undoManager.clear(); - // } - // } - // }); - // }); - } - - #insertInEditor(macroObject: MacroSyntaxData, activeMacroElement?: HTMLElement) { - //Important note: the TinyMce plugin "noneditable" is used here so that the macro cannot be edited, - // for this to work the mceNonEditable class needs to come last and we also need to use the attribute contenteditable = false - // (even though all the docs and examples say that is not necessary) - - //put the macro syntax in comments, we will parse this out on the server side to be used - //for persisting. - const macroSyntaxComment = ``; - //create an id class for this element so we can re-select it after inserting - const uniqueId = 'umb-macro-' + this.editor.dom.uniqueId(); - let macroDiv = this.editor.dom.create( - 'div', - { - class: `umb-macro-holder ${macroObject.macroAlias} ${uniqueId} mceNonEditable`, - contenteditable: 'false', - }, - `${macroSyntaxComment}Macro alias: ${macroObject.macroAlias}`, - ); - - //if there's an activeMacroElement then replace it, otherwise set the contents of the selected node - if (activeMacroElement) { - activeMacroElement.replaceWith(macroDiv); //directly replaces the html node - } else { - this.editor.selection.setNode(macroDiv); - } - - macroDiv = this.editor.dom.select('div.umb-macro-holder.' + uniqueId)[0] as HTMLDivElement; - this.editor.setDirty(true); - - //async load the macro content - this.#loadMacroContent(macroDiv, macroObject); - } - - /** - * Because the macro got wrapped in a P tag because of the way 'enter' works in older versions of Umbraco, this - * method will return the macro element if not wrapped in a p, or the p if the macro - * element is the only one inside of it even if we are deep inside an element inside the macro - */ - #getRealMacroElem() { - // Ask the editor for the currently selected element - const element = this.editor?.selection.getNode() as HTMLElement; - if (!element) { - return null; - } - - const e = element.closest('.umb-macro-holder'); - if (!e || e === null) return null; - - if (e.parentNode?.nodeName === 'P') { - //now check if we're the only element - if (element.parentNode?.childNodes.length === 1) { - return e.parentNode as HTMLElement; - } - } - - return e as HTMLElement; - } - - // TODO => depends on macro picker, which doesn't exist, just showing a generic modal for now - async #showMacroPicker(dialogData: DialogData) { - const modalHandler = this.#modalContext?.open(UMB_CONFIRM_MODAL, { - data: { - headline: 'Macro picker', - content: 'Yet to be implemented', - }, - }); - - if (!modalHandler) return; - - const result = await modalHandler.onSubmit(); - if (!result) return; - - // TODO => object here should be the response from the modal - this.#insertInEditor({} as MacroSyntaxData, dialogData.activeMacroElement); - this.editor.dispatch('Change'); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts index b7671b7cde..a9d56a33d2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/property-editor-ui-tiny-mce.stories.ts @@ -39,7 +39,6 @@ const config = new UmbPropertyEditorConfigCollection([ 'anchor', 'table', 'umbmediapicker', - 'umbmacro', 'umbembeddialog', ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts index 996bbfe530..41756614ce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/components/insert-menu/templating-insert-menu.element.ts @@ -1,6 +1,6 @@ import { UMB_MODAL_TEMPLATING_INSERT_CHOOSE_TYPE_SIDEBAR_ALIAS } from '../../modals/manifests.js'; import { getInsertDictionarySnippet, getInsertPartialSnippet } from '../../utils/index.js'; -import type { UmbChooseInsertTypeModalValue} from '../../modals/insert-choose-type-sidebar.element.js'; +import type { UmbChooseInsertTypeModalValue } from '../../modals/insert-choose-type-sidebar.element.js'; import { CodeSnippetType } from '../../modals/insert-choose-type-sidebar.element.js'; import { UmbDictionaryRepository } from '@umbraco-cms/backoffice/dictionary'; import { customElement, property, css, html } from '@umbraco-cms/backoffice/external/lit'; @@ -9,12 +9,13 @@ import type { UmbDictionaryItemPickerModalValue, UmbModalManagerContext, UmbModalContext, - UmbPartialViewPickerModalValue} from '@umbraco-cms/backoffice/modal'; + UmbPartialViewPickerModalValue, +} from '@umbraco-cms/backoffice/modal'; import { UMB_DICTIONARY_ITEM_PICKER_MODAL, UMB_MODAL_MANAGER_CONTEXT, UMB_PARTIAL_VIEW_PICKER_MODAL, - UmbModalToken + UmbModalToken, } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -60,9 +61,6 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { break; } - case CodeSnippetType.macro: { - throw new Error('Not implemented'); - } } } @@ -130,10 +128,6 @@ export class UmbTemplatingInsertMenuElement extends UmbLitElement { title="Dictionary item" @click=${this.#openInsertDictionaryItemModal}> - - `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts index 4da80658ee..07589ef9f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/modals/insert-choose-type-sidebar.element.ts @@ -3,7 +3,8 @@ import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import type { UmbModalManagerContext, UmbModalContext, - UmbDictionaryItemPickerModalValue} from '@umbraco-cms/backoffice/modal'; + UmbDictionaryItemPickerModalValue, +} from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UMB_PARTIAL_VIEW_PICKER_MODAL, @@ -18,7 +19,6 @@ export interface ChooseInsertTypeModalData { export enum CodeSnippetType { partialView = 'partialView', dictionaryItem = 'dictionaryItem', - macro = 'macro', } export interface UmbChooseInsertTypeModalValue { value: string | UmbDictionaryItemPickerModalValue; diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index de24c48990..ae72aacad7 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -72,7 +72,6 @@ "@umbraco-cms/backoffice/server-file-system": ["src/packages/core/server-file-system"], "@umbraco-cms/backoffice/id": ["src/packages/core/id"], "@umbraco-cms/backoffice/localization": ["src/packages/core/localization"], - "@umbraco-cms/backoffice/macro": ["src/packages/core/macro"], "@umbraco-cms/backoffice/menu": ["src/packages/core/menu"], "@umbraco-cms/backoffice/modal": ["src/packages/core/modal"], "@umbraco-cms/backoffice/notification": ["src/packages/core/notification"], 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 7a0d981ce5..8a5784bf6c 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -72,7 +72,6 @@ export default { '@umbraco-cms/backoffice/server-file-system': './src/packages/core/server-file-system/index.ts', '@umbraco-cms/backoffice/id': './src/packages/core/id/index.ts', '@umbraco-cms/backoffice/localization': './src/packages/core/localization/index.ts', - '@umbraco-cms/backoffice/macro': './src/packages/core/macro/index.ts', '@umbraco-cms/backoffice/menu': './src/packages/core/menu/index.ts', '@umbraco-cms/backoffice/modal': './src/packages/core/modal/index.ts', '@umbraco-cms/backoffice/notification': './src/packages/core/notification/index.ts', From 5a48e4f2b0defb0fa0ccd3cb05ebf33ab49be831 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:30:29 +0100 Subject: [PATCH 707/786] wrap data in p tags --- src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 97e9a36737..8c2604f9ec 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -36,7 +36,12 @@ export const data: Array = [ value: { blocks: {}, markup: ` - Some value for the RTE with an external link and an internal link foo foo
Macro alias: TestMacro
`, +

+ Some value for the RTE with an external link and an internal link foo foo +

+

+

Macro alias: TestMacro
+

`, }, }, { From 1f45f23659ef5d02ab6283d40a9f656ae31f1a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 11:31:14 +0100 Subject: [PATCH 708/786] UmbBlockHasSettingsCondition --- .../block-has-settings.condition.ts | 44 +++++++++++++++++++ .../packages/block/block/conditions/index.ts | 1 + .../src/packages/block/block/index.ts | 3 +- .../block/manager/block-manager.context.ts | 10 ++--- .../src/packages/block/block/manifests.ts | 3 +- .../workspace/block-workspace.element.ts | 6 +-- .../block/block/workspace/manifests.ts | 3 ++ .../conditions/manifests.ts | 5 ++- .../extension-registry/conditions/types.ts | 2 + .../workspace-modal.element.ts | 2 +- 10 files changed, 64 insertions(+), 15 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts new file mode 100644 index 0000000000..89c72a4eed --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts @@ -0,0 +1,44 @@ +import { UMB_BLOCK_CONTEXT } from '../context/block.context.js'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import type { + ManifestCondition, + UmbConditionConfigBase, + UmbConditionControllerArguments, + UmbExtensionCondition, +} from '@umbraco-cms/backoffice/extension-api'; + +export class UmbBlockHasSettingsCondition extends UmbBaseController implements UmbExtensionCondition { + config: BlockHasSettingsConditionConfig; + permitted = false; + #onChange: () => void; + + constructor(args: UmbConditionControllerArguments) { + super(args.host); + this.config = args.config; + this.#onChange = args.onChange; + + console.log('blockHasSettings condition', this.getHostElement()); + + this.consumeContext(UMB_BLOCK_CONTEXT, (context) => { + console.log('UMB_BLOCK_CONTEXT!!!!!', context); + this.observe( + context.blockTypeSettingsElementTypeKey, + (blockTypeSettingsElementTypeKey) => { + console.log('condition', blockTypeSettingsElementTypeKey); + this.permitted = !!blockTypeSettingsElementTypeKey; + this.#onChange(); + }, + 'observeSettingsElementTypeKey', + ); + }); + } +} + +export type BlockHasSettingsConditionConfig = UmbConditionConfigBase<'Umb.Condition.BlockHasSettings'>; + +export const manifest: ManifestCondition = { + type: 'condition', + name: 'Block Has Settings Condition', + alias: 'Umb.Condition.BlockHasSettings', + api: UmbBlockHasSettingsCondition, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts new file mode 100644 index 0000000000..1e549aad47 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts @@ -0,0 +1 @@ +export * from './block-has-settings.condition.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts index 258f163605..abccb4df2a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/index.ts @@ -1,5 +1,6 @@ +export * from './conditions/index.js'; export * from './context/index.js'; export * from './manager/index.js'; export * from './modals/index.js'; -export * from './workspace/index.js'; export * from './types.js'; +export * from './workspace/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts index 2d9f9c9fa4..0ab646f59a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manager/block-manager.context.ts @@ -4,13 +4,8 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbClassState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbDocumentTypeDetailRepository } from '@umbraco-cms/backoffice/document-type'; import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; -import type { - UmbBlockTypeBaseModel, - UmbBlockWorkspaceData} from '@umbraco-cms/backoffice/block'; -import { - UMB_BLOCK_MANAGER_CONTEXT, - UMB_BLOCK_WORKSPACE_MODAL -} from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeBaseModel, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; +import { UMB_BLOCK_MANAGER_CONTEXT, UMB_BLOCK_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/block'; import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import type { UmbContentTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbId } from '@umbraco-cms/backoffice/id'; @@ -72,6 +67,7 @@ export abstract class UmbBlockManagerContext< constructor(host: UmbControllerHost) { super(host, UMB_BLOCK_MANAGER_CONTEXT); + // TODO: This might will need the property alias as part of the URL, to avoid collision if multiple of these Editor on same Node. // IDEA: Make a Workspace registration controller that can be used to register a workspace, which does both edit and create?. new UmbModalRouteRegistrationController(this, UMB_BLOCK_WORKSPACE_MODAL) .addAdditionalPath('block') diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts index e3939d3921..a23a305c1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts @@ -1,4 +1,5 @@ +import { manifest as blockHasSettingsConditionManifest } from './conditions/block-has-settings.condition.js'; import { manifests as modalManifests } from './modals/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; -export const manifests = [...modalManifests, ...workspaceManifests]; +export const manifests = [...modalManifests, ...workspaceManifests, blockHasSettingsConditionManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts index 0bcca9b580..5e080011fe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.element.ts @@ -6,9 +6,9 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbWorkspaceIsNewRedirectController } from '@umbraco-cms/backoffice/workspace'; -import type { UmbApi} from '@umbraco-cms/backoffice/extension-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import { UmbExtensionsApiInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api'; -import type { ManifestWorkspace} from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { decodeFilePath } from '@umbraco-cms/backoffice/utils'; @@ -31,7 +31,7 @@ export class UmbBlockWorkspaceElement extends UmbLitElement { createExtensionApi(manifest, [this, { manifest: manifest }]).then((context) => { if (context) { this.#gotWorkspaceContext(context); - // TODO: We need to recreate when ID changed? + // TODO: Do we need to recreate when ID changed? Or is that a responsibility of the context it self? new UmbExtensionsApiInitializer(this, umbExtensionsRegistry, 'workspaceContext', [ this, this.#workspaceContext, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index e39a7cd4bf..aac3ac9808 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -67,6 +67,9 @@ export const manifests: Array = [ alias: 'Umb.Condition.WorkspaceAlias', match: UMB_BLOCK_WORKSPACE_ALIAS, }, + { + alias: 'Umb.Condition.BlockHasSettings', + }, ], } as any, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/manifests.ts index 4931a9977e..de68f3e1cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/manifests.ts @@ -1,4 +1,5 @@ -import { manifest as switchConditionManifest } from './switch.condition.js'; +import { manifest as menuAliasConditionManifest } from './menu-alias.condition.js'; import { manifest as sectionAliasConditionManifest } from './section-alias.condition.js'; +import { manifest as switchConditionManifest } from './switch.condition.js'; -export const manifests = [switchConditionManifest, sectionAliasConditionManifest]; +export const manifests = [menuAliasConditionManifest, sectionAliasConditionManifest, switchConditionManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts index 74dc170c54..7bec57f634 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts @@ -2,6 +2,7 @@ import type { CollectionAliasConditionConfig } from '../../collection/collection import type { SectionAliasConditionConfig } from './section-alias.condition.js'; import type { SwitchConditionConfig } from './switch.condition.js'; import type { UserPermissionConditionConfig } from '@umbraco-cms/backoffice/user-permission'; +import type { BlockHasSettingsConditionConfig } from '@umbraco-cms/backoffice/block'; import type { WorkspaceAliasConditionConfig, WorkspaceEntityTypeConditionConfig, @@ -16,6 +17,7 @@ export type ConditionTypes = | CollectionAliasConditionConfig | SectionAliasConditionConfig | WorkspaceAliasConditionConfig + | BlockHasSettingsConditionConfig | WorkspaceEntityTypeConditionConfig | SwitchConditionConfig | UserPermissionConditionConfig diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts index de53c48aa7..e5c77d98da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-modal/workspace-modal.element.ts @@ -1,5 +1,5 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { UmbWorkspaceData } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; From 874ce4ba52c1e0328378bffd67540523c75cde0c Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:32:21 +0100 Subject: [PATCH 709/786] fix tags --- src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 8c2604f9ec..d406338ee9 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -39,9 +39,7 @@ export const data: Array = [

Some value for the RTE with an external link and an internal link foo foo

-

-

Macro alias: TestMacro
-

`, +
Macro alias: TestMacro
`, }, }, { From 119e2f112eef31641496a3c952da62e1d173d129 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:34:04 +0100 Subject: [PATCH 710/786] format --- .../src/mocks/data/document.data.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index d406338ee9..255030d10f 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -36,10 +36,11 @@ export const data: Array = [ value: { blocks: {}, markup: ` -

- Some value for the RTE with an external link and an internal link foo foo -

-
Macro alias: TestMacro
`, +

+ Some value for the RTE with an external link and an internal link foo foo +

+
Macro alias: TestMacro
+ `, }, }, { From 81ee826435a9bb21ee03a80f90cc8dbbe1f747b1 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:54:40 +0100 Subject: [PATCH 711/786] make sure to load rte-content.css --- .../public-assets/css/rte-content.css | 29 ----------- .../src/css/rte-content.css | 49 +++++++++++++++++++ .../mocks/data/data-type/data-type.data.ts | 2 +- .../src/mocks/data/document.data.ts | 3 ++ .../input-tiny-mce/input-tiny-mce.element.ts | 5 +- 5 files changed, 57 insertions(+), 31 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css create mode 100644 src/Umbraco.Web.UI.Client/src/css/rte-content.css diff --git a/src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css b/src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css deleted file mode 100644 index 18b986bc23..0000000000 --- a/src/Umbraco.Web.UI.Client/public-assets/css/rte-content.css +++ /dev/null @@ -1,29 +0,0 @@ -.umb-embed-holder { - position: relative; -} - -.umb-embed-holder>* { - user-select: none; - pointer-events: none; -} - -.umb-embed-holder[data-mce-selected] { - outline: 2px solid var(--uui-palette-spanish-pink-light); -} - -.umb-embed-holder::before { - z-index: 1000; - width: 100%; - height: 100%; - position: absolute; - content: ' '; -} - -.umb-embed-holder[data-mce-selected]::before { - background: rgba(0, 0, 0, 0.025); -} - -*[data-mce-selected='inline-boundary'] { - background: rgba(0, 0, 0, 0.025); - outline: 2px solid var(--uui-palette-spanish-pink-light); -} diff --git a/src/Umbraco.Web.UI.Client/src/css/rte-content.css b/src/Umbraco.Web.UI.Client/src/css/rte-content.css new file mode 100644 index 0000000000..2e6d1c23dc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/css/rte-content.css @@ -0,0 +1,49 @@ +.umb-macro-holder { + border: 3px dotted red; + padding: 7px; + margin: 3px; + display: block; + position: relative; +} + +.umb-macro-holder::after { + content: 'Macros are no longer supported. Please use the block picker instead.'; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + background-color: rgba(0, 0, 0, 0.7); + padding: 10px; + border-radius: 5px; +} + +.umb-embed-holder { + position: relative; +} + +.umb-embed-holder > * { + user-select: none; + pointer-events: none; +} + +.umb-embed-holder[data-mce-selected] { + outline: 2px solid var(--uui-palette-spanish-pink-light); +} + +.umb-embed-holder::before { + z-index: 1000; + width: 100%; + height: 100%; + position: absolute; + content: ' '; +} + +.umb-embed-holder[data-mce-selected]::before { + background: rgba(0, 0, 0, 0.025); +} + +*[data-mce-selected='inline-boundary'] { + background: rgba(0, 0, 0, 0.025); + outline: 2px solid var(--uui-palette-spanish-pink-light); +} diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index 89d4a3c1bc..4af08491a5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -762,7 +762,7 @@ export const data: Array = [ '+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-s[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption,video[*],audio[*],picture[*],source[*],canvas[*]', }, { alias: 'invalidElements', value: 'font' }, - // { alias: 'stylesheets', value: ['/css/rte-content.css'] }, + { alias: 'stylesheets', value: [] }, { alias: 'toolbar', value: [ diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts index 255030d10f..65f4191338 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document.data.ts @@ -40,6 +40,9 @@ export const data: Array = [ Some value for the RTE with an external link and an internal link foo foo

Macro alias: TestMacro
+

The following tests the embed plugin:

+
+

End of test content

`, }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 00f90f788a..9f3d8ef23b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -16,6 +16,7 @@ import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/ import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; import { UmbStylesheetDetailRepository, UmbStylesheetRuleManager } from '@umbraco-cms/backoffice/stylesheet'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import rteContentUrl from './css/rte_content.css?url'; @customElement('umb-input-tiny-mce') export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { @@ -179,6 +180,8 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { (stylesheetPath: string) => `${this.#serverUrl}/css/${stylesheetPath.replace(/\\/g, '/')}`, ) ?? []; + stylesheets.push('/umbraco/backoffice/css/rte-content.css'); + // create an object by merging the configuration onto the fallback config const configurationOptions: RawEditorOptions = { ...defaultFallbackConfig, @@ -218,7 +221,7 @@ export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { autoresize_bottom_margin: 10, body_class: 'umb-rte', contextMenu: false, - inline_boundaries_selector: 'a[href],code,.mce-annotation,.umb-embed-holder', + inline_boundaries_selector: 'a[href],code,.mce-annotation,.umb-embed-holder,.umb-macro-holder', menubar: false, paste_remove_styles_if_webkit: true, paste_preprocess: pastePreProcessHandler, From 6c1ec60d88d412bb87692cb07e5391391cc6be1f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:55:19 +0100 Subject: [PATCH 712/786] remove bad import --- .../core/components/input-tiny-mce/input-tiny-mce.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts index 9f3d8ef23b..9546f892b6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tiny-mce/input-tiny-mce.element.ts @@ -16,7 +16,6 @@ import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/ import { UMB_APP_CONTEXT } from '@umbraco-cms/backoffice/app'; import { UmbStylesheetDetailRepository, UmbStylesheetRuleManager } from '@umbraco-cms/backoffice/stylesheet'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import rteContentUrl from './css/rte_content.css?url'; @customElement('umb-input-tiny-mce') export class UmbInputTinyMceElement extends FormControlMixin(UmbLitElement) { From 9f0f01becaa7067db5aea17cd80b58942bcc63f6 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 30 Jan 2024 12:00:17 +0100 Subject: [PATCH 713/786] remove macropicker plugin file --- .../plugins/tiny-mce-macropicker.plugin.ts | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts deleted file mode 100644 index a44a66b43c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-macropicker.plugin.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { TinyMcePluginArguments } from '@umbraco-cms/backoffice/components'; -import { UmbTinyMcePluginBase } from '@umbraco-cms/backoffice/components'; - -export default class UmbTinyMceMacroPickerPlugin extends UmbTinyMcePluginBase { - constructor(args: TinyMcePluginArguments) { - super(args); - - const contentStyle = this.editor.options.get('content_style'); - this.editor.options.set( - 'content_style', - ` - ${contentStyle ?? ''} - .umb-macro-holder { - border: 3px dotted var(--uui-palette-spanish-pink-light); - padding: 7px; - margin: 3px; - display: block; - position: relative; - } - .umb-macro-holder::after { - content: 'Macros are no longer supported. Please use the block picker instead.'; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - color: white; - background-color: rgba(0, 0, 0, 0.7); - padding: 10px; - border-radius: 5px; - } - `, - ); - - /** when the contents load we need to find any macros declared and load in their content */ - this.editor.on('SetContent', () => { - //get all macro divs and load their content - this.editor.dom.select('.umb-macro-holder').forEach((macroElement: HTMLElement) => { - macroElement.setAttribute('contenteditable', 'false'); - }); - }); - } -} From 7c0f487452fae9c00f1d072e5f06c4fce7b5c839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 13:01:59 +0100 Subject: [PATCH 714/786] BlockWorkspaceHasSettings --- .../block-has-settings.condition.ts | 44 ------------------- .../block-workspace-has-settings.condition.ts | 43 ++++++++++++++++++ .../packages/block/block/conditions/index.ts | 2 +- ...ock.context.ts => block-entity.context.ts} | 4 +- .../src/packages/block/block/context/index.ts | 2 +- .../src/packages/block/block/manifests.ts | 4 +- .../block/block/workspace/manifests.ts | 2 +- .../extension-registry/conditions/types.ts | 4 +- 8 files changed, 52 insertions(+), 53 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts rename src/Umbraco.Web.UI.Client/src/packages/block/block/context/{block.context.ts => block-entity.context.ts} (98%) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts deleted file mode 100644 index 89c72a4eed..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-has-settings.condition.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { UMB_BLOCK_CONTEXT } from '../context/block.context.js'; -import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { - ManifestCondition, - UmbConditionConfigBase, - UmbConditionControllerArguments, - UmbExtensionCondition, -} from '@umbraco-cms/backoffice/extension-api'; - -export class UmbBlockHasSettingsCondition extends UmbBaseController implements UmbExtensionCondition { - config: BlockHasSettingsConditionConfig; - permitted = false; - #onChange: () => void; - - constructor(args: UmbConditionControllerArguments) { - super(args.host); - this.config = args.config; - this.#onChange = args.onChange; - - console.log('blockHasSettings condition', this.getHostElement()); - - this.consumeContext(UMB_BLOCK_CONTEXT, (context) => { - console.log('UMB_BLOCK_CONTEXT!!!!!', context); - this.observe( - context.blockTypeSettingsElementTypeKey, - (blockTypeSettingsElementTypeKey) => { - console.log('condition', blockTypeSettingsElementTypeKey); - this.permitted = !!blockTypeSettingsElementTypeKey; - this.#onChange(); - }, - 'observeSettingsElementTypeKey', - ); - }); - } -} - -export type BlockHasSettingsConditionConfig = UmbConditionConfigBase<'Umb.Condition.BlockHasSettings'>; - -export const manifest: ManifestCondition = { - type: 'condition', - name: 'Block Has Settings Condition', - alias: 'Umb.Condition.BlockHasSettings', - api: UmbBlockHasSettingsCondition, -}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts new file mode 100644 index 0000000000..af8f9592db --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts @@ -0,0 +1,43 @@ +import { UMB_BLOCK_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/block'; +import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; +import type { + ManifestCondition, + UmbConditionConfigBase, + UmbConditionControllerArguments, + UmbExtensionCondition, +} from '@umbraco-cms/backoffice/extension-api'; + +export class UmbBlockWorkspaceHasSettingsCondition extends UmbBaseController implements UmbExtensionCondition { + config: BlockWorkspaceHasSettingsConditionConfig; + permitted = false; + #onChange: () => void; + + constructor(args: UmbConditionControllerArguments) { + super(args.host); + this.config = args.config; + this.#onChange = args.onChange; + + // TODO: Rename the Block Context, so it gets a name.. like Block Entry Context or something. + this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (context) => { + this.observe( + context.settings.contentTypeId, + (settingsContentTypeId) => { + console.log('settingsContentTypeId', settingsContentTypeId); + this.permitted = !!settingsContentTypeId; + this.#onChange(); + }, + 'observeSettingsElementTypeId', + ); + }); + } +} + +export type BlockWorkspaceHasSettingsConditionConfig = + UmbConditionConfigBase<'Umb.Condition.BlockWorkspaceHasSettings'>; + +export const manifest: ManifestCondition = { + type: 'condition', + name: 'Block Has Settings Condition', + alias: 'Umb.Condition.BlockWorkspaceHasSettings', + api: UmbBlockWorkspaceHasSettingsCondition, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts index 1e549aad47..0c6d9fc984 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/index.ts @@ -1 +1 @@ -export * from './block-has-settings.condition.js'; +export * from './block-workspace-has-settings.condition.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entity.context.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts rename to src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entity.context.ts index 7df7769388..9f9d417e10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entity.context.ts @@ -60,7 +60,7 @@ export abstract class UmbBlockContext< } constructor(host: UmbControllerHost, blockManagerContextToken: BlockManagerContextTokenType) { - super(host, UMB_BLOCK_CONTEXT.toString()); + super(host, UMB_BLOCK_ENTITY_CONTEXT.toString()); // Consume block manager: this.consumeContext(blockManagerContextToken, (manager) => { @@ -198,6 +198,6 @@ export abstract class UmbBlockContext< } } -export const UMB_BLOCK_CONTEXT = new UmbContextToken< +export const UMB_BLOCK_ENTITY_CONTEXT = new UmbContextToken< UmbBlockContext >('UmbBlockContext'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts index 69c858f894..689c247d82 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/index.ts @@ -1 +1 @@ -export * from './block.context.js'; +export * from './block-entity.context.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts index a23a305c1e..1582d740af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/manifests.ts @@ -1,5 +1,5 @@ -import { manifest as blockHasSettingsConditionManifest } from './conditions/block-has-settings.condition.js'; +import { manifest as blockWorkspaceHasSettingsConditionManifest } from './conditions/block-workspace-has-settings.condition.js'; import { manifests as modalManifests } from './modals/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; -export const manifests = [...modalManifests, ...workspaceManifests, blockHasSettingsConditionManifest]; +export const manifests = [...modalManifests, ...workspaceManifests, blockWorkspaceHasSettingsConditionManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index aac3ac9808..9617a2bdcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -68,7 +68,7 @@ export const manifests: Array = [ match: UMB_BLOCK_WORKSPACE_ALIAS, }, { - alias: 'Umb.Condition.BlockHasSettings', + alias: 'Umb.Condition.BlockWorkspaceHasSettings', }, ], } as any, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts index 7bec57f634..24801fd5e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts @@ -2,7 +2,7 @@ import type { CollectionAliasConditionConfig } from '../../collection/collection import type { SectionAliasConditionConfig } from './section-alias.condition.js'; import type { SwitchConditionConfig } from './switch.condition.js'; import type { UserPermissionConditionConfig } from '@umbraco-cms/backoffice/user-permission'; -import type { BlockHasSettingsConditionConfig } from '@umbraco-cms/backoffice/block'; +import type { BlockWorkspaceHasSettingsConditionConfig } from '@umbraco-cms/backoffice/block'; import type { WorkspaceAliasConditionConfig, WorkspaceEntityTypeConditionConfig, @@ -17,7 +17,7 @@ export type ConditionTypes = | CollectionAliasConditionConfig | SectionAliasConditionConfig | WorkspaceAliasConditionConfig - | BlockHasSettingsConditionConfig + | BlockWorkspaceHasSettingsConditionConfig | WorkspaceEntityTypeConditionConfig | SwitchConditionConfig | UserPermissionConditionConfig From e477c8c675b75bba3feb9d9d3e6f887c93dbf74c Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:23:33 +0100 Subject: [PATCH 715/786] Block type create labels --- .../property-editor-ui-block-list.element.ts | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 2bcc827d31..3398809967 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -67,9 +67,13 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement this.#context.setSettings(buildUpValue.settingsData); } + @state() + private _createButtonLabel = this.localize.term('content_createEmpty'); + @property({ attribute: false }) public set config(config: UmbPropertyEditorConfigCollection | undefined) { if (!config) return; + const validationLimit = config.getValueByAlias('validationLimit'); this._limitMin = validationLimit?.min; @@ -78,6 +82,13 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement const blocks = config.getValueByAlias>('blocks') ?? []; this.#context.setBlockTypes(blocks); + const customCreateButtonLabel = config.getValueByAlias('createLabel'); + if (customCreateButtonLabel) { + this._createButtonLabel = customCreateButtonLabel; + } else if (blocks.length === 1) { + this._createButtonLabel = `${this.localize.term('general_add')} ${blocks[0].label}`; + } + const useInlineEditingAsDefault = config.getValueByAlias('useInlineEditingAsDefault'); this.#context.setInlineEditingMode(useInlineEditingAsDefault); //config.useSingleBlockMode @@ -97,10 +108,13 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement private _blocks?: Array; @state() - _layouts: Array = []; + private _layouts: Array = []; @state() - _catalogueRouteBuilder?: UmbModalRouteBuilder; + private _catalogueRouteBuilder?: UmbModalRouteBuilder; + + @state() + private _directRoute?: string; #context = new UmbBlockListManagerContext(this); @@ -151,6 +165,11 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement } render() { + if (this._blocks?.length === 1) { + const elementKey = this._blocks[0].contentElementTypeKey; + this._directRoute = + this._catalogueRouteBuilder?.({ view: 'create', index: -1 }) + 'modal/umb-modal-workspace/create/' + elementKey; + } return html` ${repeat( this._layouts, (x) => x.contentUdi, @@ -164,10 +183,8 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement - ${this.localize.term('content_createEmpty')} - + label=${this._createButtonLabel} + href=${this._directRoute ?? this._catalogueRouteBuilder?.({ view: 'create', index: -1 }) ?? ''}> Date: Tue, 30 Jan 2024 14:28:01 +0100 Subject: [PATCH 716/786] rename to unique --- .../culture-and-hostnames.repository.ts | 12 +++++------ .../culture-and-hostnames.server.data.ts | 20 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index 457111b7e4..9c488fd542 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -25,23 +25,23 @@ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController ]); } - async readCultureAndHostnames(id: string) { - if (!id) throw new Error('Id is missing'); + async readCultureAndHostnames(unique: string) { + if (!unique) throw new Error('Unique is missing'); await this.#init; - const { data, error } = await this.#dataSource.read(id); + const { data, error } = await this.#dataSource.read(unique); if (!error) { return { data }; } return { error }; } - async updateCultureAndHostnames(id: string, data: DomainsPresentationModelBaseModel) { - if (!id) throw new Error('Id is missing'); + async updateCultureAndHostnames(unique: string, data: DomainsPresentationModelBaseModel) { + if (!unique) throw new Error('Unique is missing'); if (!data) throw new Error('Data is missing'); await this.#init; - const { error } = await this.#dataSource.update(id, data); + const { error } = await this.#dataSource.update(unique, data); if (!error) { const notification = { data: { message: `Cultures and hostnames saved` } }; this.#notificationContext?.peek('positive', notification); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts index 53db77e2ee..c3cd1dabe2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.server.data.ts @@ -22,23 +22,23 @@ export class UmbDocumentCultureAndHostnamesServerDataSource { } /** - * Fetches the Culture and Hostnames for the given Document id - * @param {string} id + * Fetches the Culture and Hostnames for the given Document unique + * @param {string} unique * @memberof UmbDocumentCultureAndHostnamesServerDataSource */ - async read(id: string) { - if (!id) throw new Error('Id is missing'); - return tryExecuteAndNotify(this.#host, DocumentResource.getDocumentByIdDomains({ id })); + async read(unique: string) { + if (!unique) throw new Error('Unique is missing'); + return tryExecuteAndNotify(this.#host, DocumentResource.getDocumentByIdDomains({ id: unique })); } /** - * Updates Culture and Hostnames for the given Document id - * @param {string} id + * Updates Culture and Hostnames for the given Document unique + * @param {string} unique * @param {DomainsPresentationModelBaseModel} data * @memberof UmbDocumentCultureAndHostnamesServerDataSource */ - async update(id: string, data: DomainsPresentationModelBaseModel) { - if (!id) throw new Error('Id is missing'); - return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdDomains({ id, requestBody: data })); + async update(unique: string, data: DomainsPresentationModelBaseModel) { + if (!unique) throw new Error('Unique is missing'); + return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdDomains({ id: unique, requestBody: data })); } } From 0c1c8890dfc34451a9684333ef7cad697a935304 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 30 Jan 2024 14:38:16 +0100 Subject: [PATCH 717/786] add null check --- .../common/property-settings/property-settings-modal.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts index 3677994fe1..d973b5bbf2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/property-settings/property-settings-modal.element.ts @@ -259,7 +259,7 @@ export class UmbPropertySettingsModalElement extends UmbModalBaseElement< .value=${this.value.description}>

From 539e0bf06b934184e1e572250f533cff267b1eaa Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 30 Jan 2024 14:38:35 +0100 Subject: [PATCH 718/786] add scaffold model --- .../content-type-structure-manager.class.ts | 14 +++++++------- .../src/packages/core/content-type/types.ts | 4 ++++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts index 62a1eaf4e3..4b4c35d126 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-structure-manager.class.ts @@ -1,4 +1,4 @@ -import type { UmbContentTypeModel, UmbPropertyTypeModel } from './types.js'; +import type { UmbContentTypeModel, UmbPropertyTypeModel, UmbPropertyTypeScaffoldModel } from './types.js'; import type { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbId } from '@umbraco-cms/backoffice/id'; import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -273,13 +273,12 @@ export class UmbContentTypePropertyStructureManager = [ ...(this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.properties ?? []), ]; + properties.push(property); // eslint-disable-next-line @typescript-eslint/ban-ts-comment diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index a52488720e..84d80bc978 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -22,6 +22,10 @@ export interface UmbContentTypeModel { compositions: Array; } +export interface UmbPropertyTypeScaffoldModel extends Omit { + dataType?: UmbPropertyTypeModel['dataType']; +} + export interface UmbPropertyTypeModel extends Omit { dataType: { unique: string }; } From 6eb2cbf1bc4305552f089f2bba04a4abafb76c61 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Tue, 30 Jan 2024 15:22:41 +0100 Subject: [PATCH 719/786] blockgrid editor setup --- .../property-editor-ui-block-grid.element.ts | 213 ++++++++++++++---- .../block-catalogue-modal.element.ts | 3 +- .../block-catalogue-modal.token.ts | 4 +- 3 files changed, 174 insertions(+), 46 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index 3c2afc0908..8b8c318156 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -1,11 +1,19 @@ import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; -import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, property, state, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; +import { + UMB_BLOCK_CATALOGUE_MODAL, + type UmbBlockLayoutBaseModel, + type UmbBlockTypeBaseModel, + type UmbBlockTypeGroup, +} from '@umbraco-cms/backoffice/block'; +import { type UmbModalRouteBuilder, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; /** * @element umb-property-editor-ui-block-grid @@ -15,62 +23,161 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement @property() value = ''; + @state() + private _limitMin?: number; + @state() + private _limitMax?: number; + + @state() + private _blocks?: Array; + + @state() + private _blockGroups?: Array; + + @state() + private _layouts: Array = []; + + @state() + private _catalogueRouteBuilder?: UmbModalRouteBuilder; + + @state() + private _directRoute?: string; + + @state() + private _createButtonLabel = this.localize.term('content_createEmpty'); + @property({ attribute: false }) - public config?: UmbPropertyEditorConfigCollection; + public set config(config: UmbPropertyEditorConfigCollection | undefined) { + if (!config) return; - @state() - private _routes: UmbRoute[] = []; + const validationLimit = config.getValueByAlias('validationLimit'); - @state() - private _routerPath: string | undefined; + this._limitMin = validationLimit?.min; + this._limitMax = validationLimit?.max; - @state() - private _activePath: string | undefined; + this._blocks = config.getValueByAlias>('blocks') ?? []; + this._blockGroups = config.getValueByAlias>('blockGroups') ?? []; - @state() - private _variantId?: UmbVariantId; + const customCreateButtonLabel = config.getValueByAlias('createLabel'); + if (customCreateButtonLabel) { + this._createButtonLabel = customCreateButtonLabel; + } else if (this._blocks.length === 1) { + this._createButtonLabel = `${this.localize.term('general_add')} ${this._blocks[0].label}`; + } + + //const useInlineEditingAsDefault = config.getValueByAlias('useInlineEditingAsDefault'); + + //this.#context.setInlineEditingMode(useInlineEditingAsDefault); + //config.useSingleBlockMode + //config.useLiveEditing + //config.useInlineEditingAsDefault + this.style.maxWidth = config.getValueByAlias('maxPropertyWidth') ?? ''; + + //this.#context.setEditorConfiguration(config); + } constructor() { super(); - this.consumeContext(UMB_PROPERTY_CONTEXT, (context) => { - this.observe(context?.variantId, (propertyVariantId) => { - this._variantId = propertyVariantId; - this.setupRoutes(); - }); + /* + // TODO: Prevent initial notification from these observes: + this.observe(this.#context.layouts, (layouts) => { + this._value = { ...this._value, layout: { [UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS]: layouts } }; + // Notify that the value has changed. + //console.log('layout changed', this._value); + // TODO: idea: consider inserting an await here, so other changes could appear first? Maybe some mechanism to only fire change event onces? + this._layouts = layouts; + this.#sorter.setModel(layouts); + this.dispatchEvent(new UmbChangeEvent()); }); + this.observe(this.#context.contents, (contents) => { + this._value = { ...this._value, contentData: contents }; + // Notify that the value has changed. + //console.log('content changed', this._value); + this.dispatchEvent(new UmbChangeEvent()); + }); + this.observe(this.#context.settings, (settings) => { + this._value = { ...this._value, settingsData: settings }; + // Notify that the value has changed. + //console.log('settings changed', this._value); + this.dispatchEvent(new UmbChangeEvent()); + }); + this.observe(this.#context.blockTypes, (blockTypes) => { + this._blocks = blockTypes; + }); + */ + + new UmbModalRouteRegistrationController(this, UMB_BLOCK_CATALOGUE_MODAL) + .addAdditionalPath(':view/:index') + .onSetup((routingInfo) => { + const index = routingInfo.index ? parseInt(routingInfo.index) : -1; + return { + data: { + blocks: this._blocks ?? [], + blockGroups: this._blockGroups ?? [], + openClipboard: routingInfo.view === 'clipboard', + blockOriginData: { index: index }, + }, + }; + }) + .observeRouteBuilder((routeBuilder) => { + this._catalogueRouteBuilder = routeBuilder; + }); } - setupRoutes() { - this._routes = []; - if (this._variantId !== undefined) { - this._routes = [ - { - path: 'modal-1', - component: () => { - return import('./property-editor-ui-block-grid-inner-test.element.js'); - }, - setup: (component) => { - if (component instanceof HTMLElement) { - (component as any).name = 'block-grid-1'; - } - }, - }, - { - path: 'modal-2', - component: () => { - return import('./property-editor-ui-block-grid-inner-test.element.js'); - }, - setup: (component) => { - if (component instanceof HTMLElement) { - (component as any).name = 'block-grid-2'; - } - }, - }, - ]; + render() { + if (this._blocks?.length === 1) { + const elementKey = this._blocks[0].contentElementTypeKey; + this._directRoute = + this._catalogueRouteBuilder?.({ view: 'create', index: -1 }) + 'modal/umb-modal-workspace/create/' + elementKey; } + return html` + + + + + `; } + /* +setupRoutes() { + this._routes = []; + if (this._variantId !== undefined) { + this._routes = [ + { + path: 'modal-1', + component: () => { + return import('./property-editor-ui-block-grid-inner-test.element.js'); + }, + setup: (component) => { + if (component instanceof HTMLElement) { + (component as any).name = 'block-grid-1'; + } + }, + }, + { + path: 'modal-2', + component: () => { + return import('./property-editor-ui-block-grid-inner-test.element.js'); + }, + setup: (component) => { + if (component instanceof HTMLElement) { + (component as any).name = 'block-grid-2'; + } + }, + }, + ]; + } +} +*/ + /* render() { return this._variantId ? html`
@@ -101,8 +208,28 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement
` : 'loading...'; } + */ - static styles = [UmbTextStyles]; + static styles = [ + UmbTextStyles, + css` + :host { + display: grid; + gap: 1px; + } + > div { + display: flex; + flex-direction: column; + align-items: stretch; + } + + uui-button-group { + padding-top: 1px; + display: grid; + grid-template-columns: 1fr auto; + } + `, + ]; } export default UmbPropertyEditorUIBlockGridElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 9bba4b38ee..a427ab584b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -2,6 +2,7 @@ import { UMB_BLOCK_WORKSPACE_MODAL } from '../../workspace/index.js'; import type { UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue, + UmbBlockTypeGroup, UmbBlockTypeWithGroupKey, } from '@umbraco-cms/backoffice/block'; import { css, html, customElement, state, repeat, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; @@ -21,7 +22,7 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< private _blocks: Array = []; @state() - private _blockGroups: Array<{ key: string; name: string }> = []; + private _blockGroups: Array = []; @state() _openClipboard?: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts index 6872272e0e..7a68521e47 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.token.ts @@ -1,9 +1,9 @@ -import type { UmbBlockTypeBaseModel, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; +import type { UmbBlockTypeBaseModel, UmbBlockTypeGroup, UmbBlockWorkspaceData } from '@umbraco-cms/backoffice/block'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export interface UmbBlockCatalogueModalData { blocks: Array; - blockGroups?: Array<{ name: string; key: string }>; + blockGroups?: Array; openClipboard?: boolean; blockOriginData: UmbBlockWorkspaceData['originData']; } From f66d8ec222a3d7a1ce6208c7e2c03693472c1d9c Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 30 Jan 2024 14:25:07 +0000 Subject: [PATCH 720/786] Removed "Macro Errors" health check from mocked data --- .../src/mocks/data/health-check.data.ts | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts index 0362118bf6..bfb85fb276 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/health-check.data.ts @@ -17,26 +17,6 @@ export const healthGroups: Array Date: Tue, 30 Jan 2024 15:34:28 +0100 Subject: [PATCH 721/786] apply scaffold model + add null checks for dataType --- ...e-picker-flow-data-type-picker-modal.element.ts | 5 ++--- ...-type-workspace-view-edit-properties.element.ts | 2 +- ...nt-type-workspace-view-edit-property.element.ts | 14 +++++++------- ...ia-type-workspace-view-edit-property.element.ts | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts index eee0bfad33..eb853a72f4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts @@ -5,10 +5,9 @@ import { css, html, customElement, state, repeat, when } from '@umbraco-cms/back import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { UmbDataTypePickerFlowDataTypePickerModalData, - UmbDataTypePickerFlowDataTypePickerModalValue} from '@umbraco-cms/backoffice/modal'; -import { - UmbModalBaseElement, + UmbDataTypePickerFlowDataTypePickerModalValue, } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @customElement('umb-data-type-picker-flow-data-type-picker-modal') export class UmbDataTypePickerFlowDataTypePickerModalElement extends UmbModalBaseElement< diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index dec6391e3c..e27d5befbf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -182,7 +182,7 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle ); return html` - ${this.property.dataType.unique ? html`${this._dataTypeName}` : nothing} + ${this.property.dataType?.unique ? html`${this._dataTypeName}` : nothing} ${this.property.variesByCulture ? html` ${this.localize.term('contentTypeEditor_cultureVariantLabel')} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index 7091901fb6..6b62e7264f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -295,7 +295,7 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { renderPropertyTags() { return this.property ? html`
- ${this.property.dataType.unique ? html`${this._dataTypeName}` : nothing} + ${this.property.dataType?.unique ? html`${this._dataTypeName}` : nothing} ${this.property.variesByCulture ? html` ${this.localize.term('contentTypeEditor_cultureVariantLabel')} From 576f7a1bc3905b3fe6fa89a2de9c8376d4546426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 15:36:19 +0100 Subject: [PATCH 722/786] remove log --- .../block/conditions/block-workspace-has-settings.condition.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts index af8f9592db..23966c42eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts @@ -22,7 +22,6 @@ export class UmbBlockWorkspaceHasSettingsCondition extends UmbBaseController imp this.observe( context.settings.contentTypeId, (settingsContentTypeId) => { - console.log('settingsContentTypeId', settingsContentTypeId); this.permitted = !!settingsContentTypeId; this.#onChange(); }, From 92164974be6e41f62c8af46e6288495bb4f7066b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 15:37:04 +0100 Subject: [PATCH 723/786] remove log --- .../components/block-list-block/block-list-block.element.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts index 33c277a649..897f888b4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-block/block-list-block.element.ts @@ -56,8 +56,7 @@ export class UmbPropertyEditorUIBlockListBlockElement extends UmbLitElement impl this._contentUdi = contentUdi; }); this.observe(this.#context.blockTypeSettingsElementTypeKey, (blockTypeSettingsElementTypeKey) => { - console.log(blockTypeSettingsElementTypeKey, !!blockTypeSettingsElementTypeKey); - this._hasSettings = blockTypeSettingsElementTypeKey !== undefined; + this._hasSettings = !!blockTypeSettingsElementTypeKey; }); this.observe(this.#context.label, (label) => { this._blockViewProps.label = label; From c95b0aff9ba1ecf8748bb86c4d2fc3f629772b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 15:44:50 +0100 Subject: [PATCH 724/786] remove comment --- .../block/conditions/block-workspace-has-settings.condition.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts index 23966c42eb..434cc1b455 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/block-workspace-has-settings.condition.ts @@ -17,7 +17,6 @@ export class UmbBlockWorkspaceHasSettingsCondition extends UmbBaseController imp this.config = args.config; this.#onChange = args.onChange; - // TODO: Rename the Block Context, so it gets a name.. like Block Entry Context or something. this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, (context) => { this.observe( context.settings.contentTypeId, From 793e024e68e4abe05bd71cbb95ba4589049c67d3 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 30 Jan 2024 14:46:59 +0000 Subject: [PATCH 725/786] MNTP + Dynamic Root: TODO note about future Parent ID work --- .../tree-picker/property-editor-ui-tree-picker.element.ts | 2 ++ .../dynamic-root/repository/dynamic-root.repository.ts | 6 ++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index b6eaf34933..35293f8789 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -82,6 +82,8 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen if (this.startNodeId) return; const entityId = this.#workspaceContext?.getEntityId(); + // TODO: Awaiting the workspace context to have a parent entity ID value. [LK] + // e.g. const parentEntityId = this.#workspaceContext?.getParentEntityId(); if (entityId && this.#dynamicRoot) { this.#dynamicRootRepository.postDynamicRootQuery(this.#dynamicRoot, entityId).then((result) => { if (result) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts index 66b401dc41..5986cc8a1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts @@ -15,12 +15,10 @@ export class UmbDynamicRootRepository extends UmbBaseController { this.#dataSource = new UmbDynamicRootServerDataSource(host); } - - - async postDynamicRootQuery(query: UmbTreePickerDynamicRoot, currentId: string, parentId?: string) { + async postDynamicRootQuery(query: UmbTreePickerDynamicRoot, entityId: string, parentId?: string) { const model: DynamicRootRequestModel = { context: { - id: currentId, + id: entityId, parentId: parentId ?? GUID_EMPTY, }, query: { From 9be4a5d53166b6bc264f3fdba10973f2661ccdbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 16:00:45 +0100 Subject: [PATCH 726/786] adapt UmbPropertyContainerTypes and related --- ...-workspace-view-edit-properties.element.ts | 6 +-- ...t-type-container-structure-helper.class.ts | 15 +++---- ...nt-type-property-structure-helper.class.ts | 11 ++--- .../content-type-structure-manager.class.ts | 42 ++++++++++--------- .../src/packages/core/content-type/types.ts | 13 +++++- ...-workspace-view-edit-properties.element.ts | 6 +-- ...-workspace-view-edit-properties.element.ts | 6 +-- ...-workspace-view-edit-properties.element.ts | 6 +-- 8 files changed, 55 insertions(+), 50 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index fb85953276..4095d6167a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -2,7 +2,7 @@ import { UMB_BLOCK_WORKSPACE_CONTEXT } from '../../block-workspace.context-token import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { - PropertyContainerTypes, + UmbPropertyContainerTypes, UmbContentTypeModel, UmbPropertyTypeModel, } from '@umbraco-cms/backoffice/content-type'; @@ -20,10 +20,10 @@ export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { } @property({ type: String, attribute: 'container-type', reflect: false }) - public get containerType(): PropertyContainerTypes | undefined { + public get containerType(): UmbPropertyContainerTypes | undefined { return this._propertyStructureHelper.getContainerType(); } - public set containerType(value: PropertyContainerTypes | undefined) { + public set containerType(value: UmbPropertyContainerTypes | undefined) { this._propertyStructureHelper.setContainerType(value); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index 9dbda290e9..cc662c5d20 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -1,8 +1,5 @@ -import type { - PropertyContainerTypes, - UmbContentTypePropertyStructureManager, -} from './content-type-structure-manager.class.js'; -import type { UmbContentTypeModel } from './types.js'; +import type { UmbContentTypePropertyStructureManager } from './content-type-structure-manager.class.js'; +import type { UmbContentTypeModel, UmbPropertyContainerTypes } from './types.js'; import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -14,8 +11,8 @@ export class UmbContentTypeContainerStructureHelper; - private _ownerType?: PropertyContainerTypes = 'Tab'; - private _childType?: PropertyContainerTypes = 'Group'; + private _ownerType?: UmbPropertyContainerTypes = 'Tab'; + private _childType?: UmbPropertyContainerTypes = 'Group'; private _isRoot = false; /** * The owner id is the owning container (The container that is begin presented, the container is the parent of the child containers) @@ -53,7 +50,7 @@ export class UmbContentTypeContainerStructureHelper; - private _containerType?: PropertyContainerTypes; + private _containerType?: UmbPropertyContainerTypes; private _isRoot?: boolean; private _containerName?: string; @@ -40,7 +37,7 @@ export class UmbContentTypePropertyStructureHelper extends UmbBaseController { #init!: Promise; @@ -30,8 +30,10 @@ export class UmbContentTypePropertyStructureManager x.containers ?? []), ); - #containers: UmbArrayState = - new UmbArrayState([], (x) => x.id); + #containers: UmbArrayState = new UmbArrayState( + [], + (x) => x.id, + ); constructor(host: UmbControllerHost, typeRepository: UmbDetailRepository) { super(host); @@ -178,13 +180,13 @@ export class UmbContentTypePropertyStructureManager, + partialUpdate: Partial, ) { await this.#init; contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique!; @@ -448,27 +450,27 @@ export class UmbContentTypePropertyStructureManager { return data.filter((x) => x.parent === null && x.type === containerType); }); } - getRootContainers(containerType: PropertyContainerTypes) { + getRootContainers(containerType: UmbPropertyContainerTypes) { return this.#containers.getValue().filter((x) => x.parent === null && x.type === containerType); } - hasRootContainers(containerType: PropertyContainerTypes) { + hasRootContainers(containerType: UmbPropertyContainerTypes) { return this.#containers.asObservablePart((data) => { return data.filter((x) => x.parent === null && x.type === containerType).length > 0; }); } - ownerContainersOf(containerType: PropertyContainerTypes) { + ownerContainersOf(containerType: UmbPropertyContainerTypes) { return this.ownerContentTypeObservablePart((x) => x.containers?.filter((x) => x.type === containerType) ?? []); } - getOwnerContainers(containerType: PropertyContainerTypes, parentId: string | null = null) { + getOwnerContainers(containerType: UmbPropertyContainerTypes, parentId: string | null = null) { return this.getOwnerContentType()?.containers?.filter((x) => parentId ? x.parent?.id === parentId : x.parent === null && x.type === containerType, ); @@ -478,14 +480,14 @@ export class UmbContentTypePropertyStructureManager x.id === containerId); } - containersOfParentKey(parentId: string, containerType: PropertyContainerTypes) { + containersOfParentKey(parentId: string, containerType: UmbPropertyContainerTypes) { return this.#containers.asObservablePart((data) => { return data.filter((x) => x.parent?.id === parentId && x.type === containerType); }); } // In future this might need to take parentName(parentId lookup) into account as well? otherwise containers that share same name and type will always be merged, but their position might be different and they should not be merged. - containersByNameAndType(name: string, containerType: PropertyContainerTypes) { + containersByNameAndType(name: string, containerType: UmbPropertyContainerTypes) { return this.#containers.asObservablePart((data) => { return data.filter((x) => x.name === name && x.type === containerType); }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts index a52488720e..14b63f4a6d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/types.ts @@ -1,9 +1,18 @@ import type { - PropertyTypeContainerModelBaseModel, CompositionTypeModel, PropertyTypeModelBaseModel, + ReferenceByIdModel, } from '@umbraco-cms/backoffice/backend-api'; +export type UmbPropertyContainerTypes = 'Group' | 'Tab'; +export interface UmbPropertyTypeContainerModel { + id: string; + parent?: ReferenceByIdModel | null; + name?: string | null; + type: UmbPropertyContainerTypes; + sortOrder: number; +} + export interface UmbContentTypeModel { unique: string; parentUnique: string | null; @@ -17,7 +26,7 @@ export interface UmbContentTypeModel { isElement: boolean; // TODO: investigate if we need our own model for these properties: Array; - containers: Array; + containers: Array; allowedContentTypes: Array; compositions: Array; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index dec6391e3c..aad0855107 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -3,7 +3,7 @@ import './document-type-workspace-view-edit-property.element.js'; import type { UmbDocumentTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { PropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbPropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; @@ -80,10 +80,10 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle } @property({ type: String, attribute: 'container-type', reflect: false }) - public get containerType(): PropertyContainerTypes | undefined { + public get containerType(): UmbPropertyContainerTypes | undefined { return this._propertyStructureHelper.getContainerType(); } - public set containerType(value: PropertyContainerTypes | undefined) { + public set containerType(value: UmbPropertyContainerTypes | undefined) { this._propertyStructureHelper.setContainerType(value); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts index a4dd018e79..5862165faf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from '../../document-workspace.context-token.js'; import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { PropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbPropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -16,10 +16,10 @@ export class UmbDocumentWorkspaceViewEditPropertiesElement extends UmbLitElement } @property({ type: String, attribute: 'container-type', reflect: false }) - public get containerType(): PropertyContainerTypes | undefined { + public get containerType(): UmbPropertyContainerTypes | undefined { return this._propertyStructureHelper.getContainerType(); } - public set containerType(value: PropertyContainerTypes | undefined) { + public set containerType(value: UmbPropertyContainerTypes | undefined) { this._propertyStructureHelper.setContainerType(value); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index 9213ec0e76..1208510994 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -3,7 +3,7 @@ import './media-type-workspace-view-edit-property.element.js'; import type { UmbMediaTypeDetailModel } from '../../../types.js'; import { css, html, customElement, property, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { PropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbPropertyContainerTypes, UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; import { UmbContentTypePropertyStructureHelper } from '@umbraco-cms/backoffice/content-type'; import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; @@ -80,10 +80,10 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen } @property({ type: String, attribute: 'container-type', reflect: false }) - public get containerType(): PropertyContainerTypes | undefined { + public get containerType(): UmbPropertyContainerTypes | undefined { return this._propertyStructureHelper.getContainerType(); } - public set containerType(value: PropertyContainerTypes | undefined) { + public set containerType(value: UmbPropertyContainerTypes | undefined) { this._propertyStructureHelper.setContainerType(value); } From b325239f3a97a84362f32f60231ffd65b00001d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 16:18:31 +0100 Subject: [PATCH 727/786] use UmbPropertyTypeContainerModel --- ...ntent-type-container-structure-helper.class.ts | 15 +++++++-------- .../document-type-detail.server.data-source.ts | 3 ++- .../media-type-detail.server.data-source.ts | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts index cc662c5d20..b31fb3546c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-container-structure-helper.class.ts @@ -1,6 +1,5 @@ import type { UmbContentTypePropertyStructureManager } from './content-type-structure-manager.class.js'; -import type { UmbContentTypeModel, UmbPropertyContainerTypes } from './types.js'; -import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbContentTypeModel, UmbPropertyContainerTypes, UmbPropertyTypeContainerModel } from './types.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbArrayState, UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @@ -23,12 +22,12 @@ export class UmbContentTypeContainerStructureHelper([], (x) => x.id); + #containers = new UmbArrayState([], (x) => x.id); readonly containers = this.#containers.asObservable(); #hasProperties = new UmbBooleanState(false); @@ -170,7 +169,7 @@ export class UmbContentTypeContainerStructureHelper { + private _insertGroupContainers = (groupContainers: UmbPropertyTypeContainerModel[]) => { groupContainers.forEach((group) => { if (group.name !== null && group.name !== undefined) { if (!this.#containers.getValue().find((x) => x.name === group.name)) { @@ -205,7 +204,7 @@ export class UmbContentTypeContainerStructureHelper) { + async partialUpdateContainer(containerId: string, partialUpdate: Partial) { await this.#init; if (!this.#structure || !containerId || !partialUpdate) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts index 47fbbe5a62..5e998568a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.ts @@ -9,6 +9,7 @@ import type { import { DocumentTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import type { UmbPropertyTypeContainerModel } from '@umbraco-cms/backoffice/content-type'; /** * A data source for the Document Type that fetches data from the server @@ -109,7 +110,7 @@ export class UmbDocumentTypeDetailServerDataSource implements UmbDetailDataSourc appearance: property.appearance, }; }), - containers: data.containers, + containers: data.containers as UmbPropertyTypeContainerModel[], allowedContentTypes: data.allowedDocumentTypes.map((allowedDocumentType) => { return { contentType: { unique: allowedDocumentType.documentType.id }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts index 70336a6464..dfffd71962 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/detail/media-type-detail.server.data-source.ts @@ -6,6 +6,7 @@ import type { CreateMediaTypeRequestModel, UpdateMediaTypeRequestModel } from '@ import { MediaTypeResource } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import type { UmbPropertyTypeContainerModel } from '@umbraco-cms/backoffice/content-type'; /** * A data source for the Media Type that fetches data from the server @@ -96,7 +97,7 @@ export class UmbMediaTypeServerDataSource implements UmbDetailDataSource { return { contentType: { unique: allowedMediaType.mediaType.id }, From b4c2ea7b193a186be998308a90d826493e8ddfc1 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 30 Jan 2024 15:20:31 +0000 Subject: [PATCH 728/786] Dynamic Root: Clear the backing field --- .../input-document-picker-root.element.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index f08ba534d6..88bdb37eb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -145,6 +145,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #clearDynamicRootQuery() { this.data = undefined; + this.#dynamicRootOrigin = undefined; this.dispatchEvent(new UmbChangeEvent()); } From 6b7223cc14e1fe7d2a9415b73984cc978be59beb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 16:28:48 +0100 Subject: [PATCH 729/786] correct ownerDocumentTypes --- ...nt-type-property-structure-helper.class.ts | 6 ++-- ...-workspace-view-edit-properties.element.ts | 29 +++++++++---------- ...-workspace-view-edit-properties.element.ts | 25 +++++++--------- 3 files changed, 29 insertions(+), 31 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts index 3de23a6e24..d46628edae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/content-type-property-structure-helper.class.ts @@ -29,8 +29,10 @@ export class UmbContentTypePropertyStructureHelper ((a as any).sortOrder ?? 0) - ((b as any).sortOrder ?? 0)); } - get ownerDocumentTypes() { - return this.#structure?.contentTypes; + async ownerDocumentTypes() { + await this.#init; + if (!this.#structure) return; + return this.#structure.contentTypes; } public setStructureManager(structure: UmbContentTypePropertyStructureManager) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index e27d5befbf..3de898359f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -104,7 +104,7 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle constructor() { super(); - this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { + this.consumeContext(UMB_WORKSPACE_CONTEXT, async (workspaceContext) => { this._propertyStructureHelper.setStructureManager( (workspaceContext as UmbDocumentTypeWorkspaceContext).structure, ); @@ -116,6 +116,15 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle }, '_observeIsSorting', ); + const docTypesObservable = await this._propertyStructureHelper.ownerDocumentTypes(); + if (!docTypesObservable) return; + this.observe( + docTypesObservable, + (documents) => { + this._ownerDocumentTypes = documents; + }, + 'observeOwnerDocumentTypes', + ); }); this.observe(this._propertyStructureHelper.propertyStructure, (propertyStructure) => { this._propertyStructure = propertyStructure; @@ -134,7 +143,10 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle return { data: { documentTypeId }, value: propertyData }; }) .onSubmit((value) => { - this.#addProperty(value); + if (!value.dataType) { + throw new Error('No data type selected'); + } + this.#addProperty(value as UmbPropertyTypeModel); }) .observeRouteBuilder((routeBuilder) => { this._modalRouteNewProperty = routeBuilder(null); @@ -150,19 +162,6 @@ export class UmbDocumentTypeWorkspaceViewEditPropertiesElement extends UmbLitEle } } - connectedCallback(): void { - super.connectedCallback(); - const doctypes = this._propertyStructureHelper.ownerDocumentTypes; - if (!doctypes) return; - this.observe( - doctypes, - (documents) => { - this._ownerDocumentTypes = documents; - }, - 'observeOwnerDocumentTypes', - ); - } - async #addProperty(propertyData: UmbPropertyTypeModel) { const propertyPlaceholder = await this._propertyStructureHelper.addProperty(this._containerId); if (!propertyPlaceholder) return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index 9213ec0e76..f188ec75a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -104,7 +104,7 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen constructor() { super(); - this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { + this.consumeContext(UMB_WORKSPACE_CONTEXT, async (workspaceContext) => { this._propertyStructureHelper.setStructureManager((workspaceContext as UmbMediaTypeWorkspaceContext).structure); this.observe( (workspaceContext as UmbMediaTypeWorkspaceContext).isSorting, @@ -114,6 +114,16 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen }, '_observeIsSorting', ); + + const mediaTypesObservable = await this._propertyStructureHelper.ownerDocumentTypes(); + if (!mediaTypesObservable) return; + this.observe( + mediaTypesObservable, + (medias) => { + this._ownerMediaTypes = medias; + }, + 'observeOwnerMediaTypes', + ); }); this.observe(this._propertyStructureHelper.propertyStructure, (propertyStructure) => { this._propertyStructure = propertyStructure; @@ -147,19 +157,6 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen } } - connectedCallback(): void { - super.connectedCallback(); - const mediaTypes = this._propertyStructureHelper.ownerDocumentTypes; //TODO: Should we have a separate propertyStructureHelper for mediaTypes? - if (!mediaTypes) return; - this.observe( - mediaTypes, - (medias) => { - this._ownerMediaTypes = medias; - }, - 'observeOwnerMediaTypes', - ); - } - async #addProperty(propertyData: UmbPropertyTypeModel) { const propertyPlaceholder = await this._propertyStructureHelper.addProperty(this._containerId); if (!propertyPlaceholder) return; From 88e1588d894786b74c0502f74ae93d546650a2cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 16:31:56 +0100 Subject: [PATCH 730/786] do not not accept scaffold model from modals --- .../core/modal/token/property-settings-modal.token.ts | 4 ++-- .../document-type-workspace-view-edit-property.element.ts | 5 ++++- .../media-type-workspace-view-edit-properties.element.ts | 5 ++++- .../media-type-workspace-view-edit-property.element.ts | 5 ++++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts index 9a4d50d9c7..b7b10fe12d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/property-settings-modal.token.ts @@ -1,10 +1,10 @@ -import type { UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type'; +import type { UmbPropertyTypeModel, UmbPropertyTypeScaffoldModel } from '@umbraco-cms/backoffice/content-type'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbPropertySettingsModalData = { documentTypeId: string; }; -export type UmbPropertySettingsModalValue = UmbPropertyTypeModel; +export type UmbPropertySettingsModalValue = UmbPropertyTypeModel | UmbPropertyTypeScaffoldModel; export const UMB_PROPERTY_SETTINGS_MODAL = new UmbModalToken< UmbPropertySettingsModalData, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts index 1178abaa5c..65233d2a57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.ts @@ -96,7 +96,10 @@ export class UmbDocumentTypeWorkspacePropertyElement extends UmbLitElement { return { data: { documentTypeId }, value: propertyData }; }) .onSubmit((result) => { - this._partialUpdate(result); + if (!result.dataType) { + throw new Error('No dataType found on property'); + } + this._partialUpdate(result as UmbPropertyTypeModel); }) .observeRouteBuilder((routeBuilder) => { this._modalRoute = routeBuilder(null); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index f188ec75a0..a4bbb1371d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -142,7 +142,10 @@ export class UmbMediaTypeWorkspaceViewEditPropertiesElement extends UmbLitElemen return { data: { documentTypeId: mediaTypeId }, value: propertyData }; //TODO: Should we have a separate modal for mediaTypes? }) .onSubmit((value) => { - this.#addProperty(value); + if (!value.dataType) { + throw new Error('No data type selected'); + } + this.#addProperty(value as UmbPropertyTypeModel); }) .observeRouteBuilder((routeBuilder) => { this._modalRouteNewProperty = routeBuilder(null); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts index 6b62e7264f..eda5094e00 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-property.element.ts @@ -96,7 +96,10 @@ export class UmbMediaTypeWorkspacePropertyElement extends UmbLitElement { return { data: { documentTypeId: mediaTypeId }, value: propertyData }; //TODO: Should we have a separate modal for mediaTypes? }) .onSubmit((result) => { - this._partialUpdate(result); + if (!result.dataType) { + throw new Error('No dataType found on property'); + } + this._partialUpdate(result as UmbPropertyTypeModel); }) .observeRouteBuilder((routeBuilder) => { this._modalRoute = routeBuilder(null); From e70221220a248af6ec0fd58145124a340a52d476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 20:07:04 +0100 Subject: [PATCH 731/786] remove old docs --- .../core/sorter/stories/sorter-controller.mdx | 194 ------------------ .../core/sorter/stories/sorter.stories.ts | 26 --- .../stories/test-sorter-controller.element.ts | 131 ------------ 3 files changed, 351 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter-controller.mdx delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter-controller.mdx b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter-controller.mdx deleted file mode 100644 index 496f9061ef..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter-controller.mdx +++ /dev/null @@ -1,194 +0,0 @@ -import { Canvas, Meta } from '@storybook/addon-docs'; - -import * as LocalizeStories from './sorter.stories'; - - - -# Drag and Drop - -Drag and Drop can be done by using the `UmbSorterController` - -To get started using drag and drop, finish the following steps: - -- Preparing the model -- Setting the configuration -- Registering the controller - -#### Preparing the model - -The SorterController needs a model to know what item it is we are dealing with. - -```typescript -type MySortEntryType = { - id: string; - value: string; -}; - -const awesomeModel: Array = [ - { - id: '0', - value: 'Entry 0', - }, - { - id: '1', - value: 'Entry 1', - }, - { - id: '2', - value: 'Entry 2', - }, -]; -``` - -#### Setting the configuration - -When you know the model of which that is being sorted, you can set up the configuration. -The configuration has a lot of optional options, but the required ones are: - -- compareElementToModel() -- querySelectModelToElement() -- identifier -- itemSelector -- containerSelector - -It can be set up as follows: - -```typescript -import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; - -type MySortEntryType = {...}; -const awesomeModel: Array = [...]; - -const MY_SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: MySortEntryType) => { - return element.getAttribute('data-sort-entry-id') === model.id; - }, - querySelectModelToElement: (container: HTMLElement, modelEntry: MySortEntryType) => { - return container.querySelector('[data-sort-entry-id=' + modelEntry.id + ']'); - }, - identifier: 'test-sorter', - itemSelector: 'li', - containerSelector: 'ul', -}; - -export class MyElement extends UmbElementMixin(LitElement) { - - render() { - return html` -
    - ${awesomeModel.map( - (entry) => - html`
  • - ${entry.value} -
  • `, - )} -
- `; - } -} -``` - -#### Registering the controller - -When the model and configuration are available we can register the controller and tell the controller what model we are using. - -```typescript -import { UmbSorterController, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; - -type MySortEntryType = {...} -const awesomeModel: Array = [...] -const MY_SORTER_CONFIG: UmbSorterConfig = {...} - - -export class MyElement extends UmbElementMixin(LitElement) { - #sorter = new UmbSorterController(this, {...MY_SORTER_CONFIG, - onChange: ({ model }) => { - const oldValue = this.awesomeModel; - this.awesomeModel = model; - this.requestUpdate('awesomeModel', oldValue); - }, - }); - - constructor() { - this.#sorter.setModel(awesomeModel); - } - - render() { - return html` -
    - ${awesomeModel.map( - (entry) => - html`
  • - ${entry.value} -
  • `, - )} -
- `; - } -} -``` - -### Placeholder - -While dragging an entry, the entry will get an additional class that can be styled. -The class is by default `--umb-sorter-placeholder` but can be changed via the configuration to a different value. - -```typescript -const MY_SORTER_CONFIG: UmbSorterConfig = { - ... - placeholderClass: 'dragging-now', -}; -``` - -```typescript - static styles = [ - css` - li { - display:relative; - } - - li.dragging-now span { - visibility: hidden; - } - - li.dragging-now::after { - content: ''; - position: absolute; - inset: 0px; - border: 1px dashed grey; - } - `, -]; -``` - -### Horizontal sorting - -By default, the sorter controller will sort vertically. You can sort your model horizontally by setting the `resolveVerticalDirection` to return false. - -```typescript -const MY_SORTER_CONFIG: UmbSorterConfig = { - ... - resolveVerticalDirection: () => return false, -}; -``` - -### Performing logic when using the controller (TODO: Better title) - -Let's say your model has a property sortOrder that you would like to update when the entry is being sorted. -You can add your code logic in the configuration option `performItemInsert` and `performItemRemove` - -```typescript -export class MyElement extends UmbElementMixin(LitElement) { - #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, - performItemInsert: ({ item, newIndex }) => { - // Insert logic that updates the model, so the item gets the new index in the model. - return true; - }, - performItemRemove: () => { - // Insert logic that updates the model, so the item gets removed from the model. - return true; - }, - }); -} -``` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts deleted file mode 100644 index 116ec943e1..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/sorter.stories.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/web-components'; -import type UmbTestSorterControllerElement from './test-sorter-controller.element.js'; -import { html } from '@umbraco-cms/backoffice/external/lit'; -import './test-sorter-controller.element.js'; - -const meta: Meta = { - title: 'API/Drag and Drop/Sorter', - component: 'test-my-sorter-controller', - decorators: [ - (Story) => { - return html`
-

- Drag and drop the items to sort them. -

- ${Story()} -
`; - }, - ], -}; - -export default meta; - -type Story = StoryObj; - -export const Default: Story = {}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts deleted file mode 100644 index 757b758a47..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/stories/test-sorter-controller.element.ts +++ /dev/null @@ -1,131 +0,0 @@ -import type { UmbSorterConfig} from '../sorter.controller.js'; -import { UmbSorterController } from '../sorter.controller.js'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit'; - -type SortEntryType = { - id: string; - value: string; -}; - -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: SortEntryType) => { - return element.getAttribute('data-sort-entry-id') === model.id; - }, - querySelectModelToElement: (container: HTMLElement, modelEntry: SortEntryType) => { - return container.querySelector('[data-sort-entry-id=' + modelEntry.id + ']'); - }, - identifier: 'test-sorter', - itemSelector: 'li', - containerSelector: 'ul', -}; -const model: Array = [ - { - id: '0', - value: 'Entry 0', - }, - { - id: '1', - value: 'Entry 1', - }, - { - id: '2', - value: 'Entry 2', - }, -]; - -@customElement('test-my-sorter-controller') -export default class UmbTestSorterControllerElement extends UmbLitElement { - public sorter; - - @state() - private vertical = true; - - @state() - private _items: Array = [...model]; - - constructor() { - super(); - this.sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, - resolveVerticalDirection: () => { - this.vertical ? true : false; - }, - onChange: ({ model }) => { - const oldValue = this._items; - this._items = model; - this.requestUpdate('_items', oldValue); - }, - }); - this.sorter.setModel(model); - } - - #toggle() { - this.vertical = !this.vertical; - } - - render() { - return html` - - Horizontal/Vertical - -
    - ${this._items.map( - (entry) => - html`
  • - ${entry.value} -
  • `, - )} -
- `; - } - - static styles = [ - css` - :host { - display: block; - box-sizing: border-box; - } - - ul { - display: flex; - flex-direction: column; - gap: 5px; - list-style: none; - padding: 0; - margin: 10px 0; - } - - ul.horizontal { - flex-direction: row; - } - - li { - cursor: grab; - position: relative; - flex: 1; - border-radius: var(--uui-border-radius); - } - - li span { - display: flex; - align-items: center; - gap: 5px; - padding: 10px; - background-color: rgba(0, 255, 0, 0.3); - } - - li.--umb-sorter-placeholder span { - visibility: hidden; - } - - li.--umb-sorter-placeholder::after { - content: ''; - position: absolute; - inset: 0px; - border-radius: var(--uui-border-radius); - border: 1px dashed var(--uui-color-divider-emphasis); - } - `, - ]; -} From 8663e69d2c5f54e70d7a082a3caf0a3225185f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 30 Jan 2024 21:59:59 +0100 Subject: [PATCH 732/786] new config proposal --- .../sorter-with-two-containers/sorter-group.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts index 4ce3125463..042db7af36 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts @@ -11,12 +11,18 @@ export type ModelEntryType = { }; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element, model) => { + /*compareElementToModel: (element, model) => { return element.name === model.name; + },*/ + getUniqueOfElement: (element) => { + return element.name; }, - querySelectModelToElement: (container, modelEntry) => { + getUniqueOfModel: (modelEntry) => { + return modelEntry.name; + }, + /*querySelectModelToElement: (container, modelEntry) => { return container.querySelector("example-sorter-item[name='" + modelEntry.name + "']"); - }, + },*/ identifier: 'string-that-identifies-all-example-sorters', itemSelector: 'example-sorter-item', containerSelector: '.sorter-container', From 57c423f63a5a80c53fb5d427a75b474eb2f09821 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 25 Jan 2024 16:07:57 +0100 Subject: [PATCH 733/786] Feature: Render Template Query Item Samples --- .../modals/query-builder/query-builder.element.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts index 819f033a4b..915b5e241c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/modals/query-builder/query-builder.element.ts @@ -260,12 +260,15 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement ` : ''}
-
+
${this._templateQuery?.resultCount ?? 0} items returned, in ${this._templateQuery?.executionTime ?? 0} ms + ${this._templateQuery?.sampleResults.map( + (sample) => html`${sample.name}`, + ) ?? ''}
${this._templateQuery?.queryExpression ?? ''} @@ -322,6 +325,16 @@ export default class UmbChooseInsertTypeModalElement extends UmbModalBaseElement #results-count { font-weight: bold; } + .query-results { + flex-direction: column; + align-items: flex-start; + gap: 0; + } + .query-results span { + display: flex; + align-items: center; + gap: var(--uui-size-1); + } `, ]; } From 8798d4cd8606bd0416a6c91b14cd1fdb7ce6edf2 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Wed, 31 Jan 2024 10:45:50 +0100 Subject: [PATCH 734/786] make OpenAPI and the server url public accessible through the UmbAuthContext --- .../src/shared/auth/auth.context.ts | 45 +++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts index 7fa2415579..6e86150fbc 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts @@ -3,19 +3,22 @@ import { UMB_AUTH_CONTEXT } from './auth.context.token.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; +import { OpenAPI } from '@umbraco-cms/backoffice/backend-api'; export class UmbAuthContext extends UmbBaseController { #isAuthorized = new UmbBooleanState(false); readonly isAuthorized = this.#isAuthorized.asObservable(); #isBypassed = false; - #backofficePath: string; - + #serverUrl; + #backofficePath; #authFlow; + #openApi = OpenAPI; constructor(host: UmbControllerHostElement, serverUrl: string, backofficePath: string, isBypassed: boolean) { super(host); this.#isBypassed = isBypassed; + this.#serverUrl = serverUrl; this.#backofficePath = backofficePath; this.#authFlow = new UmbAuthFlow(serverUrl, this.#getRedirectUrl()); @@ -65,7 +68,7 @@ export class UmbAuthContext extends UmbBaseController { * * NB! The user may experience being redirected to the login screen if the token is expired. * - * @example + * @example Using the latest token * ```js * const token = await authContext.getLatestToken(); * const result = await fetch('https://my-api.com', { headers: { Authorization: `Bearer ${token}` } }); @@ -94,6 +97,42 @@ export class UmbAuthContext extends UmbBaseController { return this.#authFlow.signOut(); } + /** + * Get the server url to the Management API. + * @memberof UmbAuthContext + * @example Using the server url + * ```js + * const serverUrl = authContext.getServerUrl(); + * OpenAPI.BASE = serverUrl; + * ``` + * @example + * ```js + * const serverUrl = authContext.getServerUrl(); + * const token = await authContext.getLatestToken(); + * const result = await fetch(`${serverUrl}/umbraco/management/api/v1/my-resource`, { headers: { Authorization: `Bearer ${token}` } }); + * ``` + * @returns The server url to the Management API + */ + getServerUrl() { + return this.#serverUrl; + } + + /** + * Get the default OpenAPI configuration, which is set up to communicate with the Management API. + * @remark This is useful if you want to communicate with your own resources generated by the [openapi-typescript-codegen](https://github.com/ferdikoomen/openapi-typescript-codegen) library. + * @memberof UmbAuthContext + * + * @example Using the default OpenAPI configuration + * ```js + * const defaultOpenApi = authContext.getOpenApiConfiguration(); + * OpenAPI = { ...OpenAPI, ...openApi }; + * ``` + * @returns The default OpenAPI configuration + */ + getOpenApiConfiguration() { + return this.#openApi; + } + #getRedirectUrl() { return `${window.location.origin}${this.#backofficePath}`; } From 3ba517a74b3441875a7ba539b8592efeb1894e26 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 31 Jan 2024 11:34:12 +0100 Subject: [PATCH 735/786] keep window open, fix language bug --- .../culture-and-hostnames-modal.element.ts | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts index b0a34731d1..88b22c0c8d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts @@ -19,7 +19,9 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< #languageRepository = new UmbLanguageRepository(this); #unique?: string | null; - #languageModel: Array = []; + + @state() + private _languageModel: Array = []; @state() private _defaultIsoCode?: string | null; @@ -34,8 +36,8 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< firstUpdated() { this.#unique = this.data?.unique; - this.#readDomains(); this.#requestLanguages(); + this.#readDomains(); } async #readDomains() { @@ -50,20 +52,18 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< async #requestLanguages() { const { data } = await this.#languageRepository.requestLanguages(); if (!data) return; - this.#languageModel = data.items; + this._languageModel = data.items; } // Modal async #handleSave() { this.value = { defaultIsoCode: this._defaultIsoCode, domains: this._domains }; - const { error } = await this.#documentRepository.updateCultureAndHostnames(this.#unique!, this.value); - if (error) return; - this.modalContext?.submit(); + await this.#documentRepository.updateCultureAndHostnames(this.#unique!, this.value); } - #handleCancel() { - this.modalContext?.reject(); + #handleClose() { + this.modalContext?.submit(); } // Events @@ -92,7 +92,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< } #onAddDomain(useCurrentDomain?: boolean) { - const defaultModel = this.#languageModel.find((model) => model.isDefault); + const defaultModel = this._languageModel.find((model) => model.isDefault); if (useCurrentDomain) { // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet. // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -112,9 +112,9 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< ${this.#renderCultureSection()} ${this.#renderDomainSection()} + id="close" + label=${this.localize.term('general_close')} + @click="${this.#handleClose}"> model.isoCode, (model) => html`${model.name}`, )}`; From 5c311b1a512c0303aa63a599905506f2789fb704 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Wed, 31 Jan 2024 12:21:42 +0100 Subject: [PATCH 736/786] catalogue show block info --- .../block-catalogue-modal.element.ts | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index a427ab584b..e12ac2b161 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -1,4 +1,8 @@ import { UMB_BLOCK_WORKSPACE_MODAL } from '../../workspace/index.js'; +import { + DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, + type UmbDocumentTypeItemModel, +} from '@umbraco-cms/backoffice/document-type'; import type { UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue, @@ -12,12 +16,19 @@ import { UmbModalBaseElement, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; +import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; @customElement('umb-block-catalogue-modal') export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue > { + #itemManager = new UmbRepositoryItemsManager( + this, + DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, + (x) => x.unique, + ); + @state() private _blocks: Array = []; @@ -49,6 +60,19 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< this._workspacePath = routeBuilder({}); }); }); + + this.observe(this.#itemManager.items, (items) => { + this._blocks = items.map((item) => { + const blockGroup = this._blocks.find((block) => block.contentElementTypeKey === item.unique)?.groupKey; + const block: UmbBlockTypeWithGroupKey = { + contentElementTypeKey: item.unique, + label: item.name, + icon: item.icon ?? undefined, + groupKey: blockGroup, + }; + return block; + }); + }); } connectedCallback() { @@ -58,14 +82,9 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< this._openClipboard = this.data.openClipboard ?? false; this._blocks = this.data.blocks ?? []; this._blockGroups = this.data.blockGroups ?? []; - } - /* - #onClickBlock(contentElementTypeKey: string) { - this.modalContext?.updateValue({ key: contentElementTypeKey }); - this.modalContext?.submit(); + this.#itemManager.setUniques(this._blocks.map((x) => x.contentElementTypeKey)); } - */ render() { return html` From d198786af59799214979b3b393dbe96920aa2559 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Wed, 31 Jan 2024 17:00:16 +0000 Subject: [PATCH 737/786] Amends based on @iOvergaard's review --- ...itor-ui-tree-picker-source-type-picker.element.ts | 2 -- .../property-editor-ui-tree-picker.element.ts | 12 +++++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts index 9d24671e0a..c11144dbd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/property-editor-ui-tree-picker-source-type-picker.element.ts @@ -9,8 +9,6 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor'; -import '../../../../../../documents/document-types/components/input-document-type/input-document-type.element.js'; - /** * @element umb-property-editor-ui-tree-picker-source-type-picker */ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 35293f8789..15a9a7a6ec 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -19,7 +19,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen value = ''; @state() - type?: UmbTreePickerSource['type']; + type: UmbTreePickerSource['type'] = 'content'; @state() startNodeId?: string | null; @@ -39,9 +39,9 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen @state() ignoreUserStartNodes?: boolean; - #dynamicRoot?: UmbTreePickerSource['dynamicRoot'] | undefined; + #dynamicRoot?: UmbTreePickerSource['dynamicRoot']; - #dynamicRootRepository: UmbDynamicRootRepository; + #dynamicRootRepository = new UmbDynamicRootRepository(this); #workspaceContext?: typeof UMB_WORKSPACE_CONTEXT.TYPE; @@ -65,9 +65,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen constructor() { super(); - this.#dynamicRootRepository = new UmbDynamicRootRepository(this); - - this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext: typeof UMB_WORKSPACE_CONTEXT.TYPE) => { + this.consumeContext(UMB_WORKSPACE_CONTEXT, (workspaceContext) => { this.#workspaceContext = workspaceContext; }); } @@ -101,7 +99,7 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen render() { return html` Date: Thu, 1 Feb 2024 11:21:44 +0100 Subject: [PATCH 738/786] avoid FF issues --- .../backoffice-notification-container.element.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts index 1dd3a1cced..07bbf076ea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-notification-container/backoffice-notification-container.element.ts @@ -1,12 +1,8 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { CSSResultGroup} from '@umbraco-cms/backoffice/external/lit'; +import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; import { css, html, customElement, state, repeat, query } from '@umbraco-cms/backoffice/external/lit'; -import type { - UmbNotificationHandler, - UmbNotificationContext} from '@umbraco-cms/backoffice/notification'; -import { - UMB_NOTIFICATION_CONTEXT, -} from '@umbraco-cms/backoffice/notification'; +import type { UmbNotificationHandler, UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-backoffice-notification-container') @@ -38,11 +34,11 @@ export class UmbBackofficeNotificationContainerElement extends UmbLitElement { // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet. // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - this._notificationsElement?.hidePopover(); + this._notificationsElement?.hidePopover?.(); // To prevent issues in FireFox I added `?.` before `()` [NL] // TODO: This ignorer is just needed for JSON SCHEMA TO WORK, As its not updated with latest TS jet. // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - this._notificationsElement?.showPopover(); + this._notificationsElement?.showPopover?.(); // To prevent issues in FireFox I added `?.` before `()` [NL] }); } From 855244e57d6c5e57c0a373612d2a18c010ae864c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 1 Feb 2024 12:42:31 +0100 Subject: [PATCH 739/786] mega refactor --- .../packages/core/sorter/sorter.controller.ts | 374 +++++++++--------- 1 file changed, 193 insertions(+), 181 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index b0e85d090b..010c8dcdd0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -40,10 +40,6 @@ function getParentScrollElement(el: Element, includeSelf: boolean) { return null; } -function preventDragOver(e: Event) { - e.preventDefault(); -} - function setupIgnorerElements(element: HTMLElement, ignorerSelectors: string) { ignorerSelectors.split(',').forEach(function (criteria) { element.querySelectorAll(criteria.trim()).forEach(setupPreventEvent); @@ -62,8 +58,11 @@ function destroyPreventEvent(element: Element) { } type INTERNAL_UmbSorterConfig = { - compareElementToModel: (el: ElementType, modelEntry: T) => boolean; - querySelectModelToElement: (container: HTMLElement, modelEntry: T) => ElementType | null; + // TODO: Clean up: + //compareElementToModel: (el: ElementType, modelEntry: T) => boolean; + //querySelectModelToElement: (container: HTMLElement, modelEntry: T) => ElementType | null; + getUniqueOfElement: (element: ElementType) => string; + getUniqueOfModel: (modeEntry: T) => string; identifier: string; itemSelector: string; disabledItemSelector?: string; @@ -112,6 +111,21 @@ export type UmbSorterConfig = * @description This controller can make user able to sort items. */ export class UmbSorterController implements UmbController { + // + //static initiativeSorter?: UmbSorterController; + + // A sorter that is requested to become the next sorter: + static dropSorter?: UmbSorterController; + + // The sorter of which the element is located within: + static activeSorter?: UmbSorterController; + + // Information about the current dragged item/element: + static activeIndex?: number; + static activeItem?: any; + static activeElement?: HTMLElement; + static activeDragElement?: Element; + #host; #config: INTERNAL_UmbSorterConfig; #observer; @@ -120,24 +134,19 @@ export class UmbSorterController = this; - #currentContainerElement: Element | null = null; #useContainerShadowRoot?: boolean; #scrollElement?: Element | null; - #currentElement?: ElementType; - #currentDragElement?: Element; - #currentDragRect?: DOMRect; - #currentItem?: T; - #currentIndex?: number; #dragX = 0; #dragY = 0; #lastIndicationContainerCtrl: UmbSorterController | null = null; public get controllerAlias() { + return 'umbSorterController'; + } + public get identifier() { return this.#config.identifier; } @@ -176,6 +185,14 @@ export class UmbSorterController this.#config.getUniqueOfModel(x) === unique) !== undefined; + } + + getItem(unique: string) { + return this.#model.find((x) => this.#config.getUniqueOfModel(x) === unique); + } + hostConnected() { requestAnimationFrame(this._onFirstRender); } @@ -188,19 +205,16 @@ export class UmbSorterController { - return this; - }; + // TODO: Do we need to handle dragleave? this.#observer.disconnect(); @@ -215,15 +229,44 @@ export class UmbSorterController { + //if(UmbSorterController.activeSorter === this) return; + const dropSorter = UmbSorterController.dropSorter as unknown as UmbSorterController; + if (!dropSorter || dropSorter.identifier !== this.identifier) return; + + if (dropSorter === this) { + // Do nothing as we are the active sorter. + this.#handleDragMove(e); + + // Maybe we need to stop the event in this case. + + return; + } else { + // TODO: Check if dropping here is okay.. + + // If so lets set the approaching sorter: + UmbSorterController.dropSorter = this as unknown as UmbSorterController; + + // Do not bubble up to parent sorters: + e.stopPropagation(); + } + }; + setupItem(element: ElementType) { if (this.#config.ignorerSelector) { setupIgnorerElements(element, this.#config.ignorerSelector); @@ -232,12 +275,15 @@ export class UmbSorterController; + UmbSorterController.dropSorter = this as unknown as UmbSorterController; // We must wait one frame before changing the look of the block. this.#rqaId = requestAnimationFrame(() => { // It should be okay to use the same rqaId, as the move does not, or is okay not, to happen on first frame/drag-move. this.#rqaId = undefined; - if (this.#currentElement) { - this.#currentElement.style.transform = ''; - this.#setupPlaceholderStyle(); + if (UmbSorterController.activeElement) { + UmbSorterController.activeElement.style.transform = ''; + //this.#setupPlaceholderStyle();// This is already begin called by #setCurrentElement } }); + + return true; }; #handleDragEnd = async () => { - window.removeEventListener('dragover', this.#handleDragMove); - window.removeEventListener('dragend', this.#handleDragEnd); - - if (!this.#currentElement || !this.#currentItem) { + if (!UmbSorterController.activeElement || !UmbSorterController.activeItem) { return; } - this.#currentElement.style.transform = ''; + UmbSorterController.activeElement.style.transform = ''; this.#removePlaceholderStyle(); this.#stopAutoScroll(); this.removeAllowIndication(); if (this.#config.onEnd) { - this.#config.onEnd({ item: this.#currentItem, element: this.#currentElement }); + this.#config.onEnd({ + item: UmbSorterController.activeItem, + element: UmbSorterController.activeElement as ElementType, + }); } if (this.#rqaId) { @@ -363,19 +418,17 @@ export class UmbSorterController { - if (!this.#currentElement) { + #handleDragMove(event: DragEvent) { + if (!UmbSorterController.activeElement) { return; } @@ -394,77 +447,37 @@ export class UmbSorterController { this.#rqaId = undefined; - if (!this.#currentElement || !this.#currentContainerElement || !this.#currentItem) { + if (!UmbSorterController.activeElement || !UmbSorterController.activeItem) { return; } - const currentElementRect = this.#currentElement.getBoundingClientRect(); + // Maybe no need to check this twice, like we do it before the RAF an inside it, I think its fine to choose one of them. + const currentElementRect = UmbSorterController.activeElement.getBoundingClientRect(); const insideCurrentRect = isWithinRect(this.#dragX, this.#dragY, currentElementRect); if (insideCurrentRect) { return; } - let toBeCurrentContainerCtrl: UmbSorterController | undefined = undefined; - - // If we have a boundarySelector, try it. If we didn't get anything fall back to currentContainerElement: - const currentBoundaryElement = - (this.#config.boundarySelector - ? this.#currentContainerElement.closest(this.#config.boundarySelector) - : this.#currentContainerElement) ?? this.#currentContainerElement; - - const currentBoundaryRect = currentBoundaryElement.getBoundingClientRect(); - - const currentContainerHasItems = this.#currentContainerCtrl.hasOtherItemsThan(this.#currentItem); - - // if empty we will be move likely to accept an item (add 20px to the bounding box) - // If we have items we must be 10px within the container to accept the move. - const offsetEdge = currentContainerHasItems ? -10 : 20; - if (!isWithinRect(this.#dragX, this.#dragY, currentBoundaryRect, offsetEdge)) { - // we are outside the current container boundary, so lets see if there is a parent we can move to. - - const parentNode = this.#currentContainerElement.parentNode; - if (parentNode && this.#config.containerSelector) { - // TODO: support multiple parent shadowDOMs? - const parentContainer = (parentNode as ShadowRoot).host - ? (parentNode as ShadowRoot).host.closest(this.#config.containerSelector) - : (parentNode as HTMLElement).closest(this.#config.containerSelector); - if (parentContainer) { - const parentContainerCtrl = (parentContainer as any)['__umbBlockGridSorterController'](); - if (parentContainerCtrl.unique === this.controllerAlias) { - this.#currentContainerElement = parentContainer as Element; - toBeCurrentContainerCtrl = parentContainerCtrl; - if (this.#config.onContainerChange) { - this.#config.onContainerChange({ - item: this.#currentItem, - element: this.#currentElement, - //ownerVM: this.#currentContainerVM.ownerVM, - }); - } - } - } - } - } - const containerElement = this.#useContainerShadowRoot - ? this.#currentContainerElement.shadowRoot ?? this.#currentContainerElement - : this.#currentContainerElement; + ? this.#containerElement.shadowRoot ?? this.#containerElement + : this.#containerElement; // We want to retrieve the children of the container, every time to ensure we got the right order and index const orderedContainerElements = Array.from(containerElement.querySelectorAll(this.#config.itemSelector)); - const currentContainerRect = this.#currentContainerElement.getBoundingClientRect(); + const currentContainerRect = this.#containerElement.getBoundingClientRect(); // gather elements on the same row. const elementsInSameRow = []; @@ -476,7 +489,7 @@ export class UmbSorterController currentContainerRect.bottom) { - this.#moveElementTo(toBeCurrentContainerCtrl, -1); + //toBeCurrentContainerCtrl ?? + this.#moveElementTo(-1); } }; - async #moveElementTo(containerCtrl: UmbSorterController | undefined, newIndex: number) { - if (!this.#currentElement) { + // + async #moveElementTo(newIndex: number) { + if (!UmbSorterController.activeElement || !UmbSorterController.activeSorter) { return; } - containerCtrl ??= this as UmbSorterController; + const requestingSorter = UmbSorterController.dropSorter; + if (!requestingSorter) { + throw new Error('Could not find requestingSorter'); + } // If same container and same index, do nothing: - if (this.#currentContainerCtrl === containerCtrl && this.#currentIndex === newIndex) return; + if (requestingSorter === UmbSorterController.activeSorter && UmbSorterController.activeIndex === newIndex) return; - if (await containerCtrl.moveItemInModel(newIndex, this.#currentElement, this.#currentContainerCtrl)) { - this.#currentContainerCtrl = containerCtrl; - this.#currentIndex = newIndex; - } + await requestingSorter.moveItemInModel(newIndex, UmbSorterController.activeSorter); } /** Management methods: */ public getItemOfElement(element: ElementType) { if (!element) { - return undefined; + throw new Error('Element was not defined'); } - return this.#model.find((entry: T) => this.#config.compareElementToModel(element, entry)); + const elementUnique = this.#config.getUniqueOfElement(element); + if (!elementUnique) { + throw new Error('Could not find unique of element'); + } + return this.#model.find((entry: T) => elementUnique === this.#config.getUniqueOfModel(entry)); } public async removeItem(item: T) { @@ -663,13 +644,34 @@ export class UmbSorterController x !== item).length > 0; } - public async moveItemInModel(newIndex: number, element: ElementType, fromCtrl: UmbSorterController) { - const item = fromCtrl.getItemOfElement(element); + // TODO: Could get item via attr. + public async moveItemInModel(newIndex: number, fromCtrl: UmbSorterController) { + const item = UmbSorterController.activeItem; if (!item) { console.error('Could not find item of sync item'); return false; @@ -678,7 +680,7 @@ export class UmbSorterController; + UmbSorterController.activeIndex = newIndex; } return true; } - updateAllowIndication(controller: UmbSorterController, item: T) { + updateAllowIndication(item: T) { + // TODO: Allow indication. + /* // Remove old indication: if (this.#lastIndicationContainerCtrl !== null && this.#lastIndicationContainerCtrl !== controller) { this.#lastIndicationContainerCtrl.notifyAllowed(); @@ -739,6 +749,8 @@ export class UmbSorterController Date: Thu, 1 Feb 2024 12:53:00 +0100 Subject: [PATCH 740/786] reimplement to match new config --- .../sorter-with-two-containers/sorter-group.ts | 6 ------ .../property-editor-ui-block-list.element.ts | 8 ++++---- .../multiple-color-picker-input.element.ts | 11 +++++------ .../input-multiple-text-string.element.ts | 10 +++++----- .../packages/core/sorter/sorter.controller.ts | 7 ++----- .../workspace/document-type-workspace-sorter.ts | 16 ++++++++-------- ...ype-workspace-view-edit-properties.element.ts | 8 ++++---- ...ument-type-workspace-view-edit-tab.element.ts | 8 ++++---- .../document-type-workspace-view-edit.element.ts | 13 +++++-------- .../input-document/input-document.element.ts | 8 +++++--- ...ype-workspace-view-edit-properties.element.ts | 8 ++++---- ...media-type-workspace-view-edit-tab.element.ts | 8 ++++---- .../media-type-workspace-view-edit.element.ts | 13 +++++-------- .../input-media/input-media.element.ts | 8 +++++--- .../input-member/input-member.element.ts | 8 +++++--- 15 files changed, 65 insertions(+), 75 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts index 042db7af36..fe15d9d32c 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts @@ -11,18 +11,12 @@ export type ModelEntryType = { }; const SORTER_CONFIG: UmbSorterConfig = { - /*compareElementToModel: (element, model) => { - return element.name === model.name; - },*/ getUniqueOfElement: (element) => { return element.name; }, getUniqueOfModel: (modelEntry) => { return modelEntry.name; }, - /*querySelectModelToElement: (container, modelEntry) => { - return container.querySelector("example-sorter-item[name='" + modelEntry.name + "']"); - },*/ identifier: 'string-that-identifies-all-example-sorters', itemSelector: 'example-sorter-item', containerSelector: '.sorter-container', diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 2bcc827d31..2379afa77c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -21,11 +21,11 @@ export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} export interface UmbBlockListValueModel extends UmbBlockValueType {} const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element, model) => { - return element.getAttribute('data-udi') === model.contentUdi; + getUniqueOfElement: (element) => { + return element.getAttribute('data-udi'); }, - querySelectModelToElement: (container, modelEntry) => { - return container.querySelector("umb-property-editor-ui-block-list-block[data-udi='" + modelEntry.contentUdi + "']"); + getUniqueOfModel: (modelEntry) => { + return modelEntry.contentUdi; }, identifier: 'block-list-editor', itemSelector: 'umb-property-editor-ui-block-list-block', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts index 4ca54fa5fd..95f27e1e55 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts @@ -16,12 +16,12 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property'; -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: UmbSwatchDetails) => { - return element.getAttribute('data-sort-entry-id') === model.value; +const SORTER_CONFIG: UmbSorterConfig = { + getUniqueOfElement: (element) => { + return element.value.toString(); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: UmbSwatchDetails) => { - return container.querySelector('[data-sort-entry-id=' + modelEntry.value + ']'); + getUniqueOfModel: (modelEntry) => { + return modelEntry.value; }, identifier: 'Umb.SorterIdentifier.ColorEditor', itemSelector: 'umb-multiple-color-picker-item-input', @@ -192,7 +192,6 @@ export class UmbMultipleColorPickerInputElement extends FormControlMixin(UmbLitE html` this.#onChange(event, index)} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts index 052188d85c..7945201ca9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts @@ -4,7 +4,7 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import type { UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { UmbSorterConfig} from '@umbraco-cms/backoffice/sorter'; +import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; export type MultipleTextStringValue = Array; @@ -14,11 +14,11 @@ export interface MultipleTextStringValueItem { } const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: MultipleTextStringValueItem) => { - return element.getAttribute('data-sort-entry-id') === model.value; + getUniqueOfElement: (element) => { + return element.getAttribute('data-sort-entry-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: MultipleTextStringValueItem) => { - return container.querySelector('[data-sort-entry-id=' + modelEntry.value + ']'); + getUniqueOfModel: (modelEntry) => { + return modelEntry.value; }, identifier: 'Umb.SorterIdentifier.ColorEditor', itemSelector: 'umb-input-multiple-text-string-item', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 010c8dcdd0..6912fdb4d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -58,11 +58,8 @@ function destroyPreventEvent(element: Element) { } type INTERNAL_UmbSorterConfig = { - // TODO: Clean up: - //compareElementToModel: (el: ElementType, modelEntry: T) => boolean; - //querySelectModelToElement: (container: HTMLElement, modelEntry: T) => ElementType | null; - getUniqueOfElement: (element: ElementType) => string; - getUniqueOfModel: (modeEntry: T) => string; + getUniqueOfElement: (element: ElementType) => string | null | symbol | number; + getUniqueOfModel: (modeEntry: T) => string | null | symbol | number; identifier: string; itemSelector: string; disabledItemSelector?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts index ea7ad4bc6e..f709ac9ff9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts @@ -5,11 +5,11 @@ import type { import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG_HORIZONTAL: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: DocumentTypePropertyTypeContainerResponseModel) => { - return element.getAttribute('data-umb-tabs-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-tabs-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: PropertyTypeContainerModelBaseModel) => { - return container.querySelector(`[data-umb-tabs-id='` + modelEntry.id + `']`); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-tabs-sorter', itemSelector: '[data-umb-tabs-id]', @@ -21,11 +21,11 @@ const SORTER_CONFIG_HORIZONTAL: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: DocumentTypePropertyTypeContainerResponseModel) => { - return element.getAttribute('data-umb-property-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-property-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: PropertyTypeContainerModelBaseModel) => { - return container.querySelector(`[data-umb-property-id='` + modelEntry.id + `']`); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-property-sorter', itemSelector: '[data-umb-property-id]', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts index 5cdda1e821..b93078c07f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.ts @@ -12,11 +12,11 @@ import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: UmbPropertyTypeModel) => { - return element.getAttribute('data-umb-property-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-property-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: UmbPropertyTypeModel) => { - return container.querySelector('[data-umb-property-id=' + modelEntry.id + ']'); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-property-sorter', itemSelector: '[data-umb-property-id]', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts index 94a2aa5a03..41c56db3ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.ts @@ -12,11 +12,11 @@ import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import './document-type-workspace-view-edit-properties.element.js'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: PropertyTypeContainerModelBaseModel) => { - return element.getAttribute('data-umb-group-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-group-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: PropertyTypeContainerModelBaseModel) => { - return container.querySelector('data-umb-group-id=[' + modelEntry.id + ']'); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-group-sorter', itemSelector: '[data-umb-group-id]', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index f6babbd0eb..41c918d3d9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -6,10 +6,7 @@ import type { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/ext import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { - DocumentTypePropertyTypeContainerResponseModel, - PropertyTypeContainerModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -20,11 +17,11 @@ import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: DocumentTypePropertyTypeContainerResponseModel) => { - return element.getAttribute('data-umb-tabs-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-tabs-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: PropertyTypeContainerModelBaseModel) => { - return container.querySelector(`[data-umb-tabs-id='` + modelEntry.id + `']`); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-tabs-sorter', itemSelector: '[data-umb-tabs-id]', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 922b76e266..7fcf621d17 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -9,10 +9,12 @@ import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffi import type { UmbDocumentItemModel } from '@umbraco-cms/backoffice/document'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element, model) => { - return element.getAttribute('detail') === model; + getUniqueOfElement: (element) => { + return element.getAttribute('detail'); + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry; }, - querySelectModelToElement: () => null, identifier: 'Umb.SorterIdentifier.InputDocument', itemSelector: 'uui-ref-node', containerSelector: 'uui-ref-list', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts index 81cb48d322..00d6701914 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-properties.element.ts @@ -12,11 +12,11 @@ import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import { UMB_PROPERTY_SETTINGS_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: UmbPropertyTypeModel) => { - return element.getAttribute('data-umb-property-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-tabs-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: UmbPropertyTypeModel) => { - return container.querySelector('[data-umb-property-id=' + modelEntry.id + ']'); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-property-sorter', itemSelector: '[data-umb-property-id]', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts index e7aa540062..86fb523d9d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit-tab.element.ts @@ -12,11 +12,11 @@ import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import './media-type-workspace-view-edit-properties.element.js'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: PropertyTypeContainerModelBaseModel) => { - return element.getAttribute('data-umb-group-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-group-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: PropertyTypeContainerModelBaseModel) => { - return container.querySelector('data-umb-group-id=[' + modelEntry.id + ']'); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-group-sorter', itemSelector: '[data-umb-group-id]', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts index cd24e5cf44..05a72b0866 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts @@ -6,10 +6,7 @@ import type { UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/ext import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type'; import { encodeFolderName } from '@umbraco-cms/backoffice/router'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { - MediaTypePropertyTypeContainerResponseModel, - PropertyTypeContainerModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension-registry'; @@ -20,11 +17,11 @@ import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element: HTMLElement, model: MediaTypePropertyTypeContainerResponseModel) => { - return element.getAttribute('data-umb-tabs-id') === model.id; + getUniqueOfElement: (element) => { + return element.getAttribute('data-umb-tabs-id'); }, - querySelectModelToElement: (container: HTMLElement, modelEntry: PropertyTypeContainerModelBaseModel) => { - return container.querySelector(`[data-umb-tabs-id='` + modelEntry.id + `']`); + getUniqueOfModel: (modelEntry) => { + return modelEntry.id; }, identifier: 'content-type-tabs-sorter', itemSelector: '[data-umb-tabs-id]', diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts index 068a5c42fc..121480345d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.element.ts @@ -8,10 +8,12 @@ import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbra import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element, model) => { - return element.getAttribute('detail') === model; + getUniqueOfElement: (element) => { + return element.getAttribute('detail'); + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry; }, - querySelectModelToElement: () => null, identifier: 'Umb.SorterIdentifier.InputMedia', itemSelector: 'uui-card-media', containerSelector: '.container', diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts index cfedcddf0f..f6ec06efb9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/members/components/input-member/input-member.element.ts @@ -7,10 +7,12 @@ import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbra import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element, model) => { - return element.getAttribute('detail') === model; + getUniqueOfElement: (element) => { + return element.getAttribute('detail'); + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry; }, - querySelectModelToElement: () => null, identifier: 'Umb.SorterIdentifier.InputMember', itemSelector: 'uui-ref-node', containerSelector: 'uui-ref-list', From c98592b94f32d216914fb26cdcb1850de479a104 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:44:36 +0100 Subject: [PATCH 741/786] Update src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> --- .../repository/culture-and-hostnames.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index 9c488fd542..46da3ff9e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -11,7 +11,7 @@ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController #dataSource: UmbDocumentCultureAndHostnamesServerDataSource; - #notificationContext?: UmbNotificationContext; + #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; constructor(host: UmbControllerHost) { super(host); From 31f1c00ef851e24a8b20ffce86e007d34ce7efa5 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:44:50 +0100 Subject: [PATCH 742/786] Update src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> --- .../repository/culture-and-hostnames.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index 46da3ff9e8..c8c20938a2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -9,7 +9,7 @@ import type { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController implements UmbApi { #init!: Promise; - #dataSource: UmbDocumentCultureAndHostnamesServerDataSource; + #dataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this); #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; From 38dc92ed99265ae9b5f8d49b62378933e68a9f94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:47:46 +0100 Subject: [PATCH 743/786] Update auth docs --- src/Umbraco.Web.UI.Client/docs/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/docs/authentication.md b/src/Umbraco.Web.UI.Client/docs/authentication.md index 2b24ac2369..e0376e9c24 100644 --- a/src/Umbraco.Web.UI.Client/docs/authentication.md +++ b/src/Umbraco.Web.UI.Client/docs/authentication.md @@ -34,7 +34,7 @@ There are two ways to use this: ```json "Umbraco": { "CMS": { - "NewBackOffice":{ + "Security":{ "BackOfficeHost": "http://localhost:5173", "AuthorizeCallbackPathName": "/" }, From c3721eaa4d4f4d14081c9968dbd37e4f25a59015 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:49:12 +0100 Subject: [PATCH 744/786] remove cast --- .../repository/culture-and-hostnames.repository.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index c8c20938a2..fb5e061251 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -1,7 +1,6 @@ import { UmbDocumentCultureAndHostnamesServerDataSource } from './culture-and-hostnames.server.data.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; -import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification'; import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import type { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -16,11 +15,9 @@ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController constructor(host: UmbControllerHost) { super(host); - this.#dataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this); - this.#init = Promise.all([ this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { - this.#notificationContext = instance as UmbNotificationContext; + this.#notificationContext = instance; }).asPromise(), ]); } From a57c153195786022c9defaabec1909a8a459956c Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:52:02 +0100 Subject: [PATCH 745/786] Update src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> --- .../modal/culture-and-hostnames-modal.element.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts index 88b22c0c8d..343e6ff0a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/modal/culture-and-hostnames-modal.element.ts @@ -206,9 +206,7 @@ export class UmbCultureAndHostnamesModalElement extends UmbModalBaseElement< - this.#onAddDomain(true)}> - Add current domain - + this.#onAddDomain(true)}> `; From 0f6aaee7444be15ec9688b09dab7737b662bc109 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:44:04 +0100 Subject: [PATCH 746/786] remove init --- .../repository/culture-and-hostnames.repository.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index fb5e061251..d09cac09c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -15,16 +15,13 @@ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController constructor(host: UmbControllerHost) { super(host); - this.#init = Promise.all([ - this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { - this.#notificationContext = instance; - }).asPromise(), - ]); + this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => { + this.#notificationContext = instance; + }); } async readCultureAndHostnames(unique: string) { if (!unique) throw new Error('Unique is missing'); - await this.#init; const { data, error } = await this.#dataSource.read(unique); if (!error) { @@ -36,7 +33,6 @@ export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController async updateCultureAndHostnames(unique: string, data: DomainsPresentationModelBaseModel) { if (!unique) throw new Error('Unique is missing'); if (!data) throw new Error('Data is missing'); - await this.#init; const { error } = await this.#dataSource.update(unique, data); if (!error) { From 8b9003fa352797205a6619a4a1797a5d47900de7 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 1 Feb 2024 12:26:12 +0000 Subject: [PATCH 747/786] Multi-URL Picker: Removing UDI support Re-introduced the "Link Type" of "document, external or media". This is to reduce the processing of UDI strings in the client UI. --- .../input-multi-url/input-multi-url.element.ts | 12 +++++------- .../link-picker/link-picker-modal.element.ts | 16 ++++++++-------- .../core/modal/token/link-picker-modal.token.ts | 5 ++++- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts index 9cae53ef03..105c52c291 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-multi-url/input-multi-url.element.ts @@ -3,12 +3,8 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import { - UMB_LINK_PICKER_MODAL, - UmbModalRouteRegistrationController, -} from '@umbraco-cms/backoffice/modal'; -import type { UmbModalRouteBuilder , - UmbLinkPickerLink} from '@umbraco-cms/backoffice/modal'; +import { UMB_LINK_PICKER_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalRouteBuilder, UmbLinkPickerLink } from '@umbraco-cms/backoffice/modal'; /** * @element umb-input-multi-url @@ -109,6 +105,7 @@ export class UmbInputMultiUrlElement extends FormControlMixin(UmbLitElement) { constructor() { super(); + this.addValidator( 'rangeUnderflow', () => this.minMessage, @@ -155,7 +152,8 @@ export class UmbInputMultiUrlElement extends FormControlMixin(UmbLitElement) { queryString: data?.queryString, target: data?.target, trashed: data?.trashed, - udi: data?.udi, + type: data?.type, + unique: data?.unique, url: data?.url, }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts index f0fa3a54cd..50ada2ee67 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/link-picker/link-picker-modal.element.ts @@ -4,11 +4,11 @@ import type { UUIBooleanInputEvent, UUIInputElement } from '@umbraco-cms/backoff import type { UmbLinkPickerConfig, UmbLinkPickerLink, + UmbLinkPickerLinkType, UmbLinkPickerModalData, UmbLinkPickerModalValue, } from '@umbraco-cms/backoffice/modal'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; -import { buildUdi, getKeyFromUdi } from '@umbraco-cms/backoffice/utils'; import { UMB_DOCUMENT_TREE_ALIAS } from '@umbraco-cms/backoffice/document'; @customElement('umb-link-picker-modal') @@ -57,7 +57,7 @@ export class UmbLinkPickerModalElement extends UmbModalBaseElement { (this._link as any) = value.link; - this._selectedKey = this._link?.udi ? getKeyFromUdi(this._link.udi) : undefined; + this._selectedKey = this._link?.unique ?? undefined; this._selectionConfiguration.selection = this._selectedKey ? [this._selectedKey] : []; }); } @@ -88,18 +88,18 @@ export class UmbLinkPickerModalElement extends UmbModalBaseElement this.#partialUpdateLink({ url: this._linkInput.value as string })} - ?disabled="${this._link.udi ? true : false}"> + .value="${this._link.unique ?? this._link.url ?? ''}" + @input=${() => this.#partialUpdateLink({ type: 'external', url: this._linkInput.value as string })} + ?disabled="${this._link.unique ? true : false}"> `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/link-picker-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/link-picker-modal.token.ts index 7c3b0f935d..8a2f3286c2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/link-picker-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/token/link-picker-modal.token.ts @@ -15,10 +15,13 @@ export interface UmbLinkPickerLink { queryString?: string | null; target?: string | null; trashed?: boolean | null; - udi?: string | null; + type?: UmbLinkPickerLinkType | null; + unique?: string | null; url?: string | null; } +export type UmbLinkPickerLinkType = 'document' | 'external' | 'media'; + // TODO: investigate: this looks more like a property editor configuration. Is this used in the correct way? export interface UmbLinkPickerConfig { hideAnchor?: boolean; From 132488d5494885bf7e464c084868fc5dc1b8de1c Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 1 Feb 2024 14:05:01 +0000 Subject: [PATCH 748/786] Bugfix: RTE Link Picker --- .../src/mocks/data/document/document.data.ts | 2 +- .../uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts index d58041c511..a42d05d47d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/document/document.data.ts @@ -40,7 +40,7 @@ export const data: Array = [ blocks: {}, markup: `

- Some value for the RTE with an external link and an internal link foo foo + Some value for the RTE with an external link and an internal link foo foo

Macro alias: TestMacro

The following tests the embed plugin:

diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts index 2a3ada2a78..b814176385 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/plugins/tiny-mce-linkpicker.plugin.ts @@ -85,7 +85,7 @@ export default class UmbTinyMceLinkPickerPlugin extends UmbTinyMcePluginBase { if (this.#anchorElement.href.includes('localLink:')) { const href = this.#anchorElement.getAttribute('href')!; - currentTarget.udi = href.split('localLink:')[1].slice(0, -1); + currentTarget.unique = href.split('localLink:')[1].slice(0, -1); } else if (this.#anchorElement.host.length) { currentTarget.url = this.#anchorElement.protocol ? this.#anchorElement.protocol + '//' : undefined; currentTarget.url += this.#anchorElement.host + this.#anchorElement.pathname; @@ -193,14 +193,14 @@ export default class UmbTinyMceLinkPickerPlugin extends UmbTinyMcePluginBase { } } - if (!this.#linkPickerData?.link.url && !this.#linkPickerData?.link.queryString && !this.#linkPickerData?.link.udi) { + if (!this.#linkPickerData?.link.url && !this.#linkPickerData?.link.queryString && !this.#linkPickerData?.link.unique) { this.editor.execCommand('unlink'); return; } //if we have an id, it must be a locallink:id - if (this.#linkPickerData?.link.udi) { - this.#linkPickerData.link.url = '/{localLink:' + this.#linkPickerData.link.udi + '}'; + if (this.#linkPickerData?.link.unique) { + this.#linkPickerData.link.url = '/{localLink:' + this.#linkPickerData.link.unique + '}'; this.#insertLink(); return; } From 9f9241d1d0b3ff898b61f12ed0226d51c1857a3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 1 Feb 2024 21:15:56 +0100 Subject: [PATCH 749/786] clean up imports --- .../workspace/document-type-workspace-sorter.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts index f709ac9ff9..2f139aec68 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace-sorter.ts @@ -1,7 +1,4 @@ -import type { - DocumentTypePropertyTypeContainerResponseModel, - PropertyTypeContainerModelBaseModel, -} from '@umbraco-cms/backoffice/backend-api'; +import type { PropertyTypeContainerModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; const SORTER_CONFIG_HORIZONTAL: UmbSorterConfig = { From 716c36432cacd76d83ed8e5c05351577493560b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 1 Feb 2024 21:16:27 +0100 Subject: [PATCH 750/786] style and setup for nested Sorters --- .../sorter-dashboard.ts | 16 ++++++ .../sorter-group.ts | 57 +++++++------------ .../sorter-with-two-containers/sorter-item.ts | 21 +++++-- 3 files changed, 52 insertions(+), 42 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts index 0e88318ab3..5704964d9a 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts @@ -9,6 +9,14 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { groupOneItems: ModelEntryType[] = [ { name: 'Apple', + children: [ + { + name: 'Juice', + }, + { + name: 'Milk', + }, + ], }, { name: 'Banana', @@ -21,6 +29,14 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { }, { name: 'Lemon', + children: [ + { + name: 'Cola', + }, + { + name: 'Pepsi', + }, + ], }, ]; diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts index fe15d9d32c..84913f0357 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts @@ -8,6 +8,7 @@ import ExampleSorterItem from './sorter-item.js'; export type ModelEntryType = { name: string; + children?: ModelEntryType[]; }; const SORTER_CONFIG: UmbSorterConfig = { @@ -26,57 +27,27 @@ const SORTER_CONFIG: UmbSorterConfig = { export class ExampleSorterGroup extends UmbElementMixin(LitElement) { @property({ type: Array, attribute: false }) public get items(): ModelEntryType[] { - return this._items; + return this._items ?? []; } public set items(value: ModelEntryType[]) { + // Only want to set the model initially, cause any re-render should not set this again. + if (this._items !== undefined) return; this._items = value; this.#sorter.setModel(this._items); } - private _items: ModelEntryType[] = []; + private _items?: ModelEntryType[]; #sorter = new UmbSorterController(this, { ...SORTER_CONFIG, - /*performItemInsert: ({ item, newIndex }) => { - const oldValue = this._items; - //console.log('inserted', item.name, 'at', newIndex, ' ', this._items.map((x) => x.name).join(', ')); - const newItems = [...this._items]; - newItems.splice(newIndex, 0, item); - this.items = newItems; - this.requestUpdate('_items', oldValue); - return true; - }, - performItemRemove: ({ item }) => { - const oldValue = this._items; - //console.log('removed', item.name, 'at', indexToMove, ' ', this._items.map((x) => x.name).join(', ')); - const indexToMove = this._items.findIndex((x) => x.name === item.name); - const newItems = [...this._items]; - newItems.splice(indexToMove, 1); - this.items = newItems; - this.requestUpdate('_items', oldValue); - return true; - }, - performItemMove: ({ item, newIndex, oldIndex }) => { - const oldValue = this._items; - //console.log('move', item.name, 'from', oldIndex, 'to', newIndex, ' ', this._items.map((x) => x.name).join(', ')); - const newItems = [...this._items]; - newItems.splice(oldIndex, 1); - if (oldIndex <= newIndex) { - newIndex--; - } - newItems.splice(newIndex, 0, item); - this.items = newItems; - this.requestUpdate('_items', oldValue); - return true; - },*/ onChange: ({ model }) => { const oldValue = this._items; this._items = model; - this.requestUpdate('_items', oldValue); + this.requestUpdate('items', oldValue); }, }); removeItem = (item: ModelEntryType) => { - this.items = this._items.filter((r) => r.name !== item.name); + this.items = this._items!.filter((r) => r.name !== item.name); }; render() { @@ -87,7 +58,10 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { (item) => item.name, (item) => html` - + + ${item.children && item.children.length > 0 + ? html`` + : ''} `, )}
@@ -105,6 +79,15 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { .sorter-placeholder { opacity: 0.2; } + + example-sorter-group { + display: block; + width: 100%; + min-height: 20px; + border: 1px solid var(--uui-color-border); + border-radius: var(--uui-size-border-radius); + padding: var(--uui-size-space-1); + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-item.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-item.ts index 495370bb00..3dd7f0b5e7 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-item.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-item.ts @@ -13,8 +13,11 @@ export class ExampleSorterItem extends UmbElementMixin(LitElement) { render() { return html` - ${this.name} - +
+ ${this.name} + + +
`; } @@ -23,9 +26,7 @@ export class ExampleSorterItem extends UmbElementMixin(LitElement) { UmbTextStyles, css` :host { - display: flex; - align-items: center; - justify-content: space-between; + display: block; padding: var(--uui-size-layout-1); border: 1px solid var(--uui-color-border); border-radius: var(--uui-border-radius); @@ -34,6 +35,16 @@ export class ExampleSorterItem extends UmbElementMixin(LitElement) { :host([drag-placeholder]) { opacity: 0.2; } + + div { + display: flex; + align-items: center; + justify-content: space-between; + } + + slot:not([name]) { + // go on new line: + } `, ]; } From 411b677e831ed0e26d904d103c127787774c50b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 1 Feb 2024 21:16:36 +0100 Subject: [PATCH 751/786] fix nested sorting --- .../src/packages/core/sorter/sorter.controller.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 6912fdb4d4..f1db694ead 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -252,6 +252,9 @@ export class UmbSorterController Date: Thu, 1 Feb 2024 21:46:26 +0100 Subject: [PATCH 752/786] ensure both examples still exists --- .../sorter-with-nested-containers/README.md | 3 + .../sorter-with-nested-containers/index.ts | 15 +++ .../sorter-dashboard.ts | 88 +++++++++++++++ .../sorter-group.ts | 101 ++++++++++++++++++ .../sorter-item.ts | 58 ++++++++++ .../sorter-with-two-containers/README.md | 4 +- .../sorter-dashboard.ts | 17 --- .../sorter-group.ts | 30 +++--- 8 files changed, 278 insertions(+), 38 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/README.md create mode 100644 src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts create mode 100644 src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts create mode 100644 src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts create mode 100644 src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-item.ts diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/README.md b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/README.md new file mode 100644 index 0000000000..a5f65cf26b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/README.md @@ -0,0 +1,3 @@ +# Property Dataset Dashboard Example + +This example demonstrates how to set up the Sorter and how it can be used in nested setups. diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts new file mode 100644 index 0000000000..0771859fe9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/index.ts @@ -0,0 +1,15 @@ +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'dashboard', + name: 'Example Sorter Dashboard', + alias: 'example.dashboard.dataset', + element: () => import('./sorter-dashboard.js'), + weight: 900, + meta: { + label: 'Sorter example', + pathname: 'sorter-example', + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts new file mode 100644 index 0000000000..afe90228d1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts @@ -0,0 +1,88 @@ +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { css, html, customElement, LitElement } from '@umbraco-cms/backoffice/external/lit'; +import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; +import type { ModelEntryType } from './sorter-group.js'; + +import './sorter-group.js'; +@customElement('example-sorter-dashboard') +export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { + groupOneItems: ModelEntryType[] = [ + { + name: 'Apple', + children: [ + { + name: 'Juice', + }, + { + name: 'Milk', + }, + ], + }, + { + name: 'Banana', + }, + { + name: 'Pear', + }, + { + name: 'Pineapple', + }, + { + name: 'Lemon', + children: [ + { + name: 'Cola', + }, + { + name: 'Pepsi', + }, + ], + }, + ]; + + groupTwoItems: ModelEntryType[] = [ + { + name: 'DXP', + }, + { + name: 'H5YR', + }, + { + name: 'UUI', + }, + ]; + + render() { + return html` + +
+
Notice this example still only support single group of Sorter.
+ + +
+
+ `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + padding: var(--uui-size-layout-1); + } + + .outer-wrapper { + display: flex; + } + `, + ]; +} + +export default ExampleSorterDashboard; + +declare global { + interface HTMLElementTagNameMap { + 'example-sorter-dashboard-nested': ExampleSorterDashboard; + } +} diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts new file mode 100644 index 0000000000..4e1e37b39f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts @@ -0,0 +1,101 @@ +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { css, html, customElement, LitElement, repeat, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; +import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; + +import './sorter-item.js'; +import ExampleSorterItem from './sorter-item.js'; + +export type ModelEntryType = { + name: string; + children?: ModelEntryType[]; +}; + +const SORTER_CONFIG: UmbSorterConfig = { + getUniqueOfElement: (element) => { + return element.name; + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry.name; + }, + identifier: 'string-that-identifies-all-example-sorters', + itemSelector: 'example-sorter-item', + containerSelector: '.sorter-container', +}; + +@customElement('example-sorter-group') +export class ExampleSorterGroup extends UmbElementMixin(LitElement) { + @property({ type: Array, attribute: false }) + public get items(): ModelEntryType[] { + return this._items ?? []; + } + public set items(value: ModelEntryType[]) { + // Only want to set the model initially, cause any re-render should not set this again. + if (this._items !== undefined) return; + this._items = value; + this.#sorter.setModel(this._items); + } + private _items?: ModelEntryType[]; + + #sorter = new UmbSorterController(this, { + ...SORTER_CONFIG, + onChange: ({ model }) => { + const oldValue = this._items; + this._items = model; + this.requestUpdate('items', oldValue); + }, + }); + + removeItem = (item: ModelEntryType) => { + this.items = this._items!.filter((r) => r.name !== item.name); + }; + + render() { + return html` +
+ ${repeat( + this.items, + (item) => item.name, + (item) => + html` + + ${item.children && item.children.length > 0 + ? html`` + : ''} + `, + )} +
+ `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + width: 100%; + } + + .sorter-placeholder { + opacity: 0.2; + } + + example-sorter-group { + display: block; + width: 100%; + min-height: 20px; + border: 1px solid var(--uui-color-border); + border-radius: var(--uui-size-border-radius); + padding: var(--uui-size-space-1); + } + `, + ]; +} + +export default ExampleSorterGroup; + +declare global { + interface HTMLElementTagNameMap { + 'example-sorter-group-nested': ExampleSorterGroup; + } +} diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-item.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-item.ts new file mode 100644 index 0000000000..a3f7ef5fb3 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-item.ts @@ -0,0 +1,58 @@ +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { css, html, customElement, LitElement, state, repeat, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; +import { UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; + +@customElement('example-sorter-item') +export class ExampleSorterItem extends UmbElementMixin(LitElement) { + @property({ type: String, reflect: true }) + name: string = ''; + + @property({ type: Boolean, reflect: true, attribute: 'drag-placeholder' }) + umbDragPlaceholder = false; + + render() { + return html` +
+ ${this.name} + + +
+ + `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + padding: var(--uui-size-layout-1); + border: 1px solid var(--uui-color-border); + border-radius: var(--uui-border-radius); + margin-bottom: 3px; + } + :host([drag-placeholder]) { + opacity: 0.2; + } + + div { + display: flex; + align-items: center; + justify-content: space-between; + } + + slot:not([name]) { + // go on new line: + } + `, + ]; +} + +export default ExampleSorterItem; + +declare global { + interface HTMLElementTagNameMap { + 'example-sorter-item-nested': ExampleSorterItem; + } +} diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/README.md b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/README.md index 3dc57f3788..b92b05220d 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/README.md +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/README.md @@ -1,5 +1,3 @@ # Property Dataset Dashboard Example -This example demonstrates the how to setup the Sorter. - -This example can still NOT sort between two groups. This will come later. +This example demonstrates how to set up the Sorter, and how it can be linked with another Sorter. diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts index 5704964d9a..7747317257 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts @@ -9,14 +9,6 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { groupOneItems: ModelEntryType[] = [ { name: 'Apple', - children: [ - { - name: 'Juice', - }, - { - name: 'Milk', - }, - ], }, { name: 'Banana', @@ -29,14 +21,6 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { }, { name: 'Lemon', - children: [ - { - name: 'Cola', - }, - { - name: 'Pepsi', - }, - ], }, ]; @@ -56,7 +40,6 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { return html`
-
Notice this example still only support single group of Sorter.
diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts index 84913f0357..9689d9ac8f 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts @@ -8,29 +8,18 @@ import ExampleSorterItem from './sorter-item.js'; export type ModelEntryType = { name: string; - children?: ModelEntryType[]; -}; - -const SORTER_CONFIG: UmbSorterConfig = { - getUniqueOfElement: (element) => { - return element.name; - }, - getUniqueOfModel: (modelEntry) => { - return modelEntry.name; - }, - identifier: 'string-that-identifies-all-example-sorters', - itemSelector: 'example-sorter-item', - containerSelector: '.sorter-container', }; @customElement('example-sorter-group') export class ExampleSorterGroup extends UmbElementMixin(LitElement) { + // + // Property that is used to set the model of the sorter. @property({ type: Array, attribute: false }) public get items(): ModelEntryType[] { return this._items ?? []; } public set items(value: ModelEntryType[]) { - // Only want to set the model initially, cause any re-render should not set this again. + // Only want to set the model initially via this one, as this is the initial model, cause any re-render should not set this data again. if (this._items !== undefined) return; this._items = value; this.#sorter.setModel(this._items); @@ -38,7 +27,15 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { private _items?: ModelEntryType[]; #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, + getUniqueOfElement: (element) => { + return element.name; + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry.name; + }, + identifier: 'string-that-identifies-all-example-sorters', + itemSelector: 'example-sorter-item', + containerSelector: '.sorter-container', onChange: ({ model }) => { const oldValue = this._items; this._items = model; @@ -59,9 +56,6 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { (item) => html` - ${item.children && item.children.length > 0 - ? html`` - : ''} `, )}
From 9b131f47b0d6068a5aabbc20c58ff1e72e5861fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 18:55:18 +0000 Subject: [PATCH 753/786] Bump rollup from 4.9.5 to 4.9.6 Bumps [rollup](https://github.com/rollup/rollup) from 4.9.5 to 4.9.6. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.9.5...v4.9.6) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 112 ++++++++++---------- src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index defe78bf69..19153b40e4 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -70,7 +70,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "remark-gfm": "^3.0.1", - "rollup": "^4.9.4", + "rollup": "^4.9.6", "rollup-plugin-esbuild": "^6.1.0", "rollup-plugin-import-css": "^3.4.0", "rollup-plugin-web-worker-loader": "^1.6.1", @@ -4217,9 +4217,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz", - "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", + "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", "cpu": [ "arm" ], @@ -4230,9 +4230,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz", - "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", + "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", "cpu": [ "arm64" ], @@ -4243,9 +4243,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz", - "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", + "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", "cpu": [ "arm64" ], @@ -4256,9 +4256,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz", - "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", + "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", "cpu": [ "x64" ], @@ -4269,9 +4269,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz", - "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", + "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", "cpu": [ "arm" ], @@ -4282,9 +4282,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz", - "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", + "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", "cpu": [ "arm64" ], @@ -4295,9 +4295,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz", - "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", + "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", "cpu": [ "arm64" ], @@ -4308,9 +4308,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz", - "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", + "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", "cpu": [ "riscv64" ], @@ -4321,9 +4321,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", - "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", + "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", "cpu": [ "x64" ], @@ -4334,9 +4334,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz", - "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", + "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", "cpu": [ "x64" ], @@ -4347,9 +4347,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz", - "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", + "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", "cpu": [ "arm64" ], @@ -4360,9 +4360,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz", - "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", + "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", "cpu": [ "ia32" ], @@ -4373,9 +4373,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz", - "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", + "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", "cpu": [ "x64" ], @@ -18932,9 +18932,9 @@ } }, "node_modules/rollup": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz", - "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==", + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", + "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -18947,19 +18947,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.5", - "@rollup/rollup-android-arm64": "4.9.5", - "@rollup/rollup-darwin-arm64": "4.9.5", - "@rollup/rollup-darwin-x64": "4.9.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.5", - "@rollup/rollup-linux-arm64-gnu": "4.9.5", - "@rollup/rollup-linux-arm64-musl": "4.9.5", - "@rollup/rollup-linux-riscv64-gnu": "4.9.5", - "@rollup/rollup-linux-x64-gnu": "4.9.5", - "@rollup/rollup-linux-x64-musl": "4.9.5", - "@rollup/rollup-win32-arm64-msvc": "4.9.5", - "@rollup/rollup-win32-ia32-msvc": "4.9.5", - "@rollup/rollup-win32-x64-msvc": "4.9.5", + "@rollup/rollup-android-arm-eabi": "4.9.6", + "@rollup/rollup-android-arm64": "4.9.6", + "@rollup/rollup-darwin-arm64": "4.9.6", + "@rollup/rollup-darwin-x64": "4.9.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", + "@rollup/rollup-linux-arm64-gnu": "4.9.6", + "@rollup/rollup-linux-arm64-musl": "4.9.6", + "@rollup/rollup-linux-riscv64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-musl": "4.9.6", + "@rollup/rollup-win32-arm64-msvc": "4.9.6", + "@rollup/rollup-win32-ia32-msvc": "4.9.6", + "@rollup/rollup-win32-x64-msvc": "4.9.6", "fsevents": "~2.3.2" } }, diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 94d6d8a52d..1b9982bbd1 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -197,7 +197,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "remark-gfm": "^3.0.1", - "rollup": "^4.9.4", + "rollup": "^4.9.6", "rollup-plugin-esbuild": "^6.1.0", "rollup-plugin-import-css": "^3.4.0", "rollup-plugin-web-worker-loader": "^1.6.1", From a4470db51674cbd2e824ddbd73893c7555e9071f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 18:54:53 +0000 Subject: [PATCH 754/786] Bump vite-plugin-static-copy from 1.0.0 to 1.0.1 Bumps [vite-plugin-static-copy](https://github.com/sapphi-red/vite-plugin-static-copy) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/sapphi-red/vite-plugin-static-copy/releases) - [Changelog](https://github.com/sapphi-red/vite-plugin-static-copy/blob/main/CHANGELOG.md) - [Commits](https://github.com/sapphi-red/vite-plugin-static-copy/compare/vite-plugin-static-copy@1.0.0...vite-plugin-static-copy@1.0.1) --- updated-dependencies: - dependency-name: vite-plugin-static-copy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 8 ++++---- src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 19153b40e4..2135a04b8c 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -80,7 +80,7 @@ "typescript": "^5.3.3", "typescript-json-schema": "^0.62.0", "vite": "^5.0.11", - "vite-plugin-static-copy": "^1.0.0", + "vite-plugin-static-copy": "^1.0.1", "vite-tsconfig-paths": "^4.2.3", "web-component-analyzer": "^2.0.0" }, @@ -21328,9 +21328,9 @@ } }, "node_modules/vite-plugin-static-copy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.0.tgz", - "integrity": "sha512-kMlrB3WDtC5GzFedNIPkpjnOAr8M11PfWOiUaONrUZ3AqogTsOmIhTt6w7Fh311wl8pN81ld7sfuOEogFJ9N8A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.1.tgz", + "integrity": "sha512-3eGL4mdZoPJMDBT68pv/XKIHR4MgVolStIxxv1gIBP4R8TpHn9C9EnaU0hesqlseJ4ycLGUxckFTu/jpuJXQlA==", "dev": true, "dependencies": { "chokidar": "^3.5.3", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 1b9982bbd1..ecb6940405 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -207,7 +207,7 @@ "typescript": "^5.3.3", "typescript-json-schema": "^0.62.0", "vite": "^5.0.11", - "vite-plugin-static-copy": "^1.0.0", + "vite-plugin-static-copy": "^1.0.1", "vite-tsconfig-paths": "^4.2.3", "web-component-analyzer": "^2.0.0" }, From a1363566d469ed72622b4182de385f2bccb1e0f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 18:54:04 +0000 Subject: [PATCH 755/786] Bump @types/uuid from 9.0.7 to 9.0.8 Bumps [@types/uuid](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/uuid) from 9.0.7 to 9.0.8. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/uuid) --- updated-dependencies: - dependency-name: "@types/uuid" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 8 ++++---- src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 2135a04b8c..4b944e33ba 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@openid/appauth": "^1.3.1", "@types/dompurify": "^3.0.5", - "@types/uuid": "^9.0.7", + "@types/uuid": "^9.0.8", "@umbraco-ui/uui": "1.6.0-rc.3", "@umbraco-ui/uui-css": "1.6.0-rc.3", "dompurify": "^3.0.6", @@ -6416,9 +6416,9 @@ "dev": true }, "node_modules/@types/uuid": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz", - "integrity": "sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==" + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" }, "node_modules/@types/ws": { "version": "7.4.7", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index ecb6940405..61cd5a321e 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -138,7 +138,7 @@ "dependencies": { "@openid/appauth": "^1.3.1", "@types/dompurify": "^3.0.5", - "@types/uuid": "^9.0.7", + "@types/uuid": "^9.0.8", "@umbraco-ui/uui": "1.6.0-rc.3", "@umbraco-ui/uui-css": "1.6.0-rc.3", "dompurify": "^3.0.6", From 586ce6d1b89fe4b4bc85a71f515715cf9b78054a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 18:54:33 +0000 Subject: [PATCH 756/786] Bump @playwright/test from 1.41.0 to 1.41.1 Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.41.0 to 1.41.1. - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.41.0...v1.41.1) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 24 ++++++++++----------- src/Umbraco.Web.UI.Client/package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 4b944e33ba..b303bab2c8 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -29,7 +29,7 @@ "@babel/core": "^7.22.17", "@mdx-js/react": "^2.3.0", "@open-wc/testing": "^3.2.0", - "@playwright/test": "^1.40.1", + "@playwright/test": "^1.41.1", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", @@ -3379,12 +3379,12 @@ } }, "node_modules/@playwright/test": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.0.tgz", - "integrity": "sha512-Grvzj841THwtpBOrfiHOeYTJQxDRnKofMSzCiV8XeyLWu3o89qftQ4BCKfkziJhSUQRd0utKhrddtIsiraIwmw==", + "version": "1.41.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.1.tgz", + "integrity": "sha512-9g8EWTjiQ9yFBXc6HjCWe41msLpxEX0KhmfmPl9RPLJdfzL4F0lg2BdJ91O9azFdl11y1pmpwdjBiSxvqc+btw==", "dev": true, "dependencies": { - "playwright": "1.41.0" + "playwright": "1.41.1" }, "bin": { "playwright": "cli.js" @@ -17639,12 +17639,12 @@ } }, "node_modules/playwright": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.0.tgz", - "integrity": "sha512-XOsfl5ZtAik/T9oek4V0jAypNlaCNzuKOwVhqhgYT3os6kH34PzbRb74F0VWcLYa5WFdnmxl7qyAHBXvPv7lqQ==", + "version": "1.41.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.1.tgz", + "integrity": "sha512-gdZAWG97oUnbBdRL3GuBvX3nDDmUOuqzV/D24dytqlKt+eI5KbwusluZRGljx1YoJKZ2NRPaeWiFTeGZO7SosQ==", "dev": true, "dependencies": { - "playwright-core": "1.41.0" + "playwright-core": "1.41.1" }, "bin": { "playwright": "cli.js" @@ -17657,9 +17657,9 @@ } }, "node_modules/playwright-core": { - "version": "1.41.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.41.0.tgz", - "integrity": "sha512-UGKASUhXmvqm2Lxa1fNr8sFwAtqjpgBRr9jQ7XBI8Rn5uFiEowGUGwrruUQsVPIom4bk7Lt+oLGpXobnXzrBIw==", + "version": "1.41.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.41.1.tgz", + "integrity": "sha512-/KPO5DzXSMlxSX77wy+HihKGOunh3hqndhqeo/nMxfigiKzogn8kfL0ZBDu0L1RKgan5XHCPmn6zXd2NUJgjhg==", "dev": true, "bin": { "playwright-core": "cli.js" diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 61cd5a321e..30a36f3953 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -156,7 +156,7 @@ "@babel/core": "^7.22.17", "@mdx-js/react": "^2.3.0", "@open-wc/testing": "^3.2.0", - "@playwright/test": "^1.40.1", + "@playwright/test": "^1.41.1", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", From 90130f06b74b1644142af27a912cc01e42d167bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Feb 2024 09:35:38 +0100 Subject: [PATCH 757/786] clean up --- .../sorter-group.ts | 22 ++++++++----------- .../packages/core/sorter/sorter.controller.ts | 15 ++++--------- 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts index 4e1e37b39f..34fb05f6a4 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts @@ -11,18 +11,6 @@ export type ModelEntryType = { children?: ModelEntryType[]; }; -const SORTER_CONFIG: UmbSorterConfig = { - getUniqueOfElement: (element) => { - return element.name; - }, - getUniqueOfModel: (modelEntry) => { - return modelEntry.name; - }, - identifier: 'string-that-identifies-all-example-sorters', - itemSelector: 'example-sorter-item', - containerSelector: '.sorter-container', -}; - @customElement('example-sorter-group') export class ExampleSorterGroup extends UmbElementMixin(LitElement) { @property({ type: Array, attribute: false }) @@ -38,7 +26,15 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { private _items?: ModelEntryType[]; #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, + getUniqueOfElement: (element) => { + return element.name; + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry.name; + }, + identifier: 'string-that-identifies-all-example-sorters', + itemSelector: 'example-sorter-item', + containerSelector: '.sorter-container', onChange: ({ model }) => { const oldValue = this._items; this._items = model; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index f1db694ead..7009e4947a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -60,7 +60,7 @@ function destroyPreventEvent(element: Element) { type INTERNAL_UmbSorterConfig = { getUniqueOfElement: (element: ElementType) => string | null | symbol | number; getUniqueOfModel: (modeEntry: T) => string | null | symbol | number; - identifier: string; + identifier: string | symbol; itemSelector: string; disabledItemSelector?: string; containerSelector: string; @@ -97,9 +97,9 @@ type INTERNAL_UmbSorterConfig = { // External type with some properties optional, as they have defaults: export type UmbSorterConfig = Omit< INTERNAL_UmbSorterConfig, - 'ignorerSelector' | 'containerSelector' + 'ignorerSelector' | 'containerSelector' | 'identifier' > & - Partial, 'ignorerSelector' | 'containerSelector'>>; + Partial, 'ignorerSelector' | 'containerSelector' | 'identifier'>>; /** * @export @@ -109,8 +109,6 @@ export type UmbSorterConfig = */ export class UmbSorterController implements UmbController { // - //static initiativeSorter?: UmbSorterController; - // A sorter that is requested to become the next sorter: static dropSorter?: UmbSorterController; @@ -151,6 +149,7 @@ export class UmbSorterController Date: Fri, 2 Feb 2024 09:40:24 +0100 Subject: [PATCH 758/786] note on controller alias --- .../src/packages/core/sorter/sorter.controller.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 7009e4947a..1a980a87f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -139,6 +139,7 @@ export class UmbSorterController | null = null; public get controllerAlias() { + // We only support one Sorter Controller pr. Controller Host. return 'umbSorterController'; } public get identifier() { From 28d5f9fd4032cd17f10c958ef8125e2958a6eabb Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:50:43 +0100 Subject: [PATCH 759/786] Update src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> --- .../culture-and-hostnames/culture-and-hostnames.action.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts index 46f1723f95..2d90ce8bd2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts @@ -1,11 +1,10 @@ import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; -import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; import { UMB_CULTURE_AND_HOSTNAMES_MODAL, type UmbDocumentDetailRepository } from '@umbraco-cms/backoffice/document'; export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionBase { - #modalContext?: UmbModalManagerContext; + #modalContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string, entityType: string) { super(host, repositoryAlias, unique, entityType); From b39dc50894ba320976ccd4a0fd3dda52729f27af Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:50:59 +0100 Subject: [PATCH 760/786] Update src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> --- .../culture-and-hostnames/culture-and-hostnames.action.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts index 2d90ce8bd2..f22531fd36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/culture-and-hostnames.action.ts @@ -10,7 +10,7 @@ export class UmbDocumentCultureAndHostnamesEntityAction extends UmbEntityActionB super(host, repositoryAlias, unique, entityType); this.consumeContext(UMB_MODAL_MANAGER_CONTEXT, (instance) => { - this.#modalContext = instance as UmbModalManagerContext; + this.#modalContext = instance; }); } From 62b02439932eb6908cbe17b2e1070cbfc13e5fbe Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:51:38 +0100 Subject: [PATCH 761/786] remove init --- .../repository/culture-and-hostnames.repository.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts index d09cac09c0..219c5a75f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/culture-and-hostnames/repository/culture-and-hostnames.repository.ts @@ -6,8 +6,6 @@ import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; import type { DomainsPresentationModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbDocumentCultureAndHostnamesRepository extends UmbBaseController implements UmbApi { - #init!: Promise; - #dataSource = new UmbDocumentCultureAndHostnamesServerDataSource(this); #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; From 0615f3b5e44d2d004a284adea714d4e3258bf9f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Feb 2024 10:51:11 +0100 Subject: [PATCH 762/786] general clean up --- .../src/libs/class-api/class.mixin.ts | 55 +++++----- .../src/mocks/data/user/user.db.ts | 7 +- ...k-workspace-view-edit-no-router.element.ts | 2 + .../schemas/Umbraco.ColorPicker.ts | 2 +- .../uis/checkbox-list/manifests.ts | 2 +- .../bulk-action-permissions/manifests.ts | 2 +- .../config/column-configuration/manifests.ts | 2 +- .../config/layout-configuration/manifests.ts | 2 +- .../config/order-by/manifests.ts | 2 +- .../uis/collection-view/manifests.ts | 2 +- .../uis/color-picker/manifests.ts | 2 +- .../manifests.ts | 8 +- ...ditor-ui-color-swatches-editor.element.ts} | 10 +- .../uis/date-picker/manifests.ts | 2 +- .../property-editor/uis/dropdown/manifests.ts | 2 +- .../uis/eye-dropper/manifests.ts | 2 +- .../uis/icon-picker/manifests.ts | 2 +- .../property-editor/uis/label/manifests.ts | 2 +- .../core/property-editor/uis/manifests.ts | 102 ++++++++---------- .../uis/member-group-picker/manifests.ts | 2 +- .../uis/member-picker/manifests.ts | 2 +- .../uis/multi-url-picker/manifests.ts | 2 +- .../uis/multiple-text-string/manifests.ts | 2 +- .../uis/number-range/manifests.ts | 2 +- .../property-editor/uis/number/manifests.ts | 16 ++- .../uis/order-direction/manifests.ts | 2 +- .../uis/overlay-size/manifests.ts | 2 +- .../uis/radio-button-list/manifests.ts | 2 +- .../property-editor/uis/slider/manifests.ts | 2 +- .../property-editor/uis/text-box/manifests.ts | 4 +- .../property-editor/uis/textarea/manifests.ts | 2 +- .../property-editor/uis/tiny-mce/manifests.ts | 2 +- .../property-editor/uis/toggle/manifests.ts | 2 +- .../config/source-picker/manifests.ts | 2 +- .../config/source-type-picker/manifests.ts | 2 +- .../uis/tree-picker/manifests.ts | 2 +- .../uis/upload-field/manifests.ts | 2 +- .../uis/user-picker/manifests.ts | 2 +- .../uis/value-type/manifests.ts | 2 +- ...cument-type-workspace-view-edit.element.ts | 2 + .../media-type-workspace-view-edit.element.ts | 2 + 41 files changed, 140 insertions(+), 130 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/{color-editor => color-swatches-editor}/manifests.ts (53%) rename src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/{color-editor/property-editor-ui-color-editor.element.ts => color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts} (77%) diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts index 5604c8b5f5..42039c3db4 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts @@ -23,11 +23,27 @@ type UmbClassMixinConstructor = new ( // TODO: we need the interface from EventTarget to be part of the controller base. As a temp solution the UmbClassMixinDeclaration extends EventTarget. declare class UmbClassMixinDeclaration extends EventTarget implements UmbClassMixinInterface { _host: UmbControllerHost; + + /** + * @description Observe a RxJS source of choice. + * @param {Observable} source RxJS source + * @param {method} callback Callback method called when data is changed. + * @return {UmbObserverController} Reference to a Observer Controller instance + * @memberof UmbClassMixin + */ observe( source: Observable, callback: (_value: T) => void, controllerAlias?: UmbControllerAlias, ): UmbObserverController; + + /** + * @description Provide a context API for this or child elements. + * @param {string} contextAlias + * @param {instance} instance The API instance to be exposed. + * @return {UmbContextProviderController} Reference to a Context Provider Controller instance + * @memberof UmbClassMixin + */ provideContext< BaseType = unknown, ResultType extends BaseType = BaseType, @@ -36,10 +52,19 @@ declare class UmbClassMixinDeclaration extends EventTarget implements UmbClassMi alias: string | UmbContextToken, instance: InstanceType, ): UmbContextProviderController; + + /** + * @description Setup a subscription for a context. The callback is called when the context is resolved. + * @param {string} contextAlias + * @param {method} callback Callback method called when context is resolved. + * @return {UmbContextConsumerController} Reference to a Context Consumer Controller instance + * @memberof UmbClassMixin + */ consumeContext( alias: string | UmbContextToken, callback: UmbContextCallback, ): UmbContextConsumerController; + hasController(controller: UmbController): boolean; getControllers(filterMethod: (ctrl: UmbController) => boolean): UmbController[]; addController(controller: UmbController): void; @@ -50,6 +75,11 @@ declare class UmbClassMixinDeclaration extends EventTarget implements UmbClassMi get controllerAlias(): UmbControllerAlias; hostConnected(): void; hostDisconnected(): void; + + /** + * @description Destroys the controller and removes it from the host. + * @memberof UmbClassMixin + */ destroy(): void; } @@ -73,24 +103,10 @@ export const UmbClassMixin = (superClass: T) => { return this._controllerAlias; } - /** - * @description Observe a RxJS source of choice. - * @param {Observable} source RxJS source - * @param {method} callback Callback method called when data is changed. - * @return {UmbObserverController} Reference to a Observer Controller instance - * @memberof UmbElementMixin - */ observe(source: Observable, callback: (_value: T) => void, controllerAlias?: UmbControllerAlias) { return new UmbObserverController(this, source, callback, controllerAlias); } - /** - * @description Provide a context API for this or child elements. - * @param {string} contextAlias - * @param {instance} instance The API instance to be exposed. - * @return {UmbContextProviderController} Reference to a Context Provider Controller instance - * @memberof UmbElementMixin - */ provideContext< BaseType = unknown, ResultType extends BaseType = BaseType, @@ -99,13 +115,6 @@ export const UmbClassMixin = (superClass: T) => { return new UmbContextProviderController(this, contextAlias, instance); } - /** - * @description Setup a subscription for a context. The callback is called when the context is resolved. - * @param {string} contextAlias - * @param {method} callback Callback method called when context is resolved. - * @return {UmbContextConsumerController} Reference to a Context Consumer Controller instance - * @memberof UmbElementMixin - */ consumeContext( contextAlias: string | UmbContextToken, callback: UmbContextCallback, @@ -113,10 +122,6 @@ export const UmbClassMixin = (superClass: T) => { return new UmbContextConsumerController(this, contextAlias, callback); } - /** - * @description Destroys the controller and removes it from the host. - * @memberof UmbClassMixin - */ public destroy() { if (this._host) { this._host.removeController(this); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts index 4a160746d5..e90fa2ce36 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts @@ -11,10 +11,9 @@ import type { PagedUserResponseModel, UpdateUserGroupsOnUserRequestModel, UserItemResponseModel, - UserResponseModel} from '@umbraco-cms/backoffice/backend-api'; -import { - UserStateModel, + UserResponseModel, } from '@umbraco-cms/backoffice/backend-api'; +import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; const createUserItem = (item: UserResponseModel): UserItemResponseModel => { return { @@ -90,7 +89,7 @@ class UmbUserData extends UmbEntityData { /** * Get current user - * @return {*} {UmbLoggedInUser} + * @return {*} {UmbCurrentUser} * @memberof UmbUserData */ getCurrentUser(): UmbCurrentUser { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts index e6c7aa0e48..255dd05e6f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-no-router.element.ts @@ -10,6 +10,8 @@ import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/extension- @customElement('umb-block-workspace-view-edit-no-router') export class UmbBlockWorkspaceViewEditNoRouterElement extends UmbLitElement implements UmbWorkspaceViewElement { //private _hasRootProperties = false; + + @state() private _hasRootGroups = false; @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ColorPicker.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ColorPicker.ts index 38b40daf26..81bcda1290 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ColorPicker.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/schemas/Umbraco.ColorPicker.ts @@ -19,7 +19,7 @@ export const manifest: ManifestPropertyEditorSchema = { alias: 'items', label: 'Colors', description: 'Add, remove or sort colors', - propertyEditorUiAlias: 'Umb.PropertyEditorUi.ColorEditor', + propertyEditorUiAlias: 'Umb.PropertyEditorUi.ColorSwatchesEditor', }, ], }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/manifests.ts index 1bf1a190e7..c8c836b805 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/checkbox-list/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.CheckboxList', name: 'Checkbox List Property Editor UI', - js: () => import('./property-editor-ui-checkbox-list.element.js'), + element: () => import('./property-editor-ui-checkbox-list.element.js'), meta: { label: 'Checkbox List', propertyEditorSchemaAlias: 'Umbraco.CheckboxList', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts index b7eab89120..23c065b5dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/bulk-action-permissions/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.CollectionView.BulkActionPermissions', name: 'Collection View Bulk Action Permissions Property Editor UI', - js: () => import('./property-editor-ui-collection-view-bulk-action-permissions.element.js'), + element: () => import('./property-editor-ui-collection-view-bulk-action-permissions.element.js'), meta: { label: 'Collection View Bulk Action Permissions', propertyEditorSchemaAlias: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts index f620db5289..2dca3ff796 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/column-configuration/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.CollectionView.ColumnConfiguration', name: 'Collection View Column Configuration Property Editor UI', - js: () => import('./property-editor-ui-collection-view-column-configuration.element.js'), + element: () => import('./property-editor-ui-collection-view-column-configuration.element.js'), meta: { label: 'Collection View Column Configuration', propertyEditorSchemaAlias: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts index e7b676efaf..ac838969fb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/layout-configuration/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.CollectionView.LayoutConfiguration', name: 'Collection View Column Configuration Property Editor UI', - js: () => import('./property-editor-ui-collection-view-layout-configuration.element.js'), + element: () => import('./property-editor-ui-collection-view-layout-configuration.element.js'), meta: { label: 'Collection View Layout Configuration', propertyEditorSchemaAlias: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/manifests.ts index 5e2e4a331f..7e16799063 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/config/order-by/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.CollectionView.OrderBy', name: 'Collection View Column Configuration Property Editor UI', - js: () => import('./property-editor-ui-collection-view-order-by.element.js'), + element: () => import('./property-editor-ui-collection-view-order-by.element.js'), meta: { label: 'Collection View Order By', propertyEditorSchemaAlias: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts index ee2acaff38..e90ad8c857 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/collection-view/manifests.ts @@ -8,7 +8,7 @@ const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.CollectionView', name: 'Collection View Property Editor UI', - js: () => import('./property-editor-ui-collection-view.element.js'), + element: () => import('./property-editor-ui-collection-view.element.js'), meta: { label: 'Collection View', propertyEditorSchemaAlias: 'Umbraco.ListView', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/manifests.ts index 7b2fff99ba..5a279e45d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.ColorPicker', name: 'Color Picker Property Editor UI', - js: () => import('./property-editor-ui-color-picker.element.js'), + element: () => import('./property-editor-ui-color-picker.element.js'), meta: { label: 'Color Picker', propertyEditorSchemaAlias: 'Umbraco.ColorPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/manifests.ts similarity index 53% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/manifests.ts index 922d03fc43..1abb848960 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/manifests.ts @@ -2,11 +2,11 @@ import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', - alias: 'Umb.PropertyEditorUi.ColorEditor', - name: 'Color Editor Property Editor UI', - js: () => import('./property-editor-ui-color-editor.element.js'), + alias: 'Umb.PropertyEditorUi.ColorSwatchesEditor', + name: 'Color Swatches Editor Property Editor UI', + element: () => import('./property-editor-ui-color-swatches-editor.element.js'), meta: { - label: 'Color Editor', + label: 'Color Swatches Editor', icon: 'icon-page-add', group: 'Umbraco.DropDown.Flexible', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/property-editor-ui-color-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts similarity index 77% rename from src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/property-editor-ui-color-editor.element.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts index bc18e5c8a5..569c55b022 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-editor/property-editor-ui-color-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts @@ -6,10 +6,10 @@ import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/ import type { UmbMultipleColorPickerInputElement } from '@umbraco-cms/backoffice/components'; /** - * @element umb-property-editor-ui-color-editor + * @element umb-property-editor-ui-color-swatches-editor */ -@customElement('umb-property-editor-ui-color-editor') -export class UmbPropertyEditorUIColorEditorElement extends UmbLitElement implements UmbPropertyEditorUiElement { +@customElement('umb-property-editor-ui-color-swatches-editor') +export class UmbPropertyEditorUIColorSwatchesEditorElement extends UmbLitElement implements UmbPropertyEditorUiElement { #defaultShowLabels = true; @property({ type: Array }) @@ -37,10 +37,10 @@ export class UmbPropertyEditorUIColorEditorElement extends UmbLitElement impleme } } -export default UmbPropertyEditorUIColorEditorElement; +export default UmbPropertyEditorUIColorSwatchesEditorElement; declare global { interface HTMLElementTagNameMap { - 'umb-property-editor-ui-color-editor': UmbPropertyEditorUIColorEditorElement; + 'umb-property-editor-ui-color-swatches-editor': UmbPropertyEditorUIColorSwatchesEditorElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/manifests.ts index 1794af37be..78b51bea49 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/date-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.DatePicker', name: 'Date Picker Property Editor UI', - js: () => import('./property-editor-ui-date-picker.element.js'), + element: () => import('./property-editor-ui-date-picker.element.js'), meta: { label: 'Date Picker', propertyEditorSchemaAlias: 'Umbraco.DateTime', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts index fadc7f0c3f..117cefb0db 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/dropdown/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.Dropdown', name: 'Dropdown Property Editor UI', - js: () => import('./property-editor-ui-dropdown.element.js'), + element: () => import('./property-editor-ui-dropdown.element.js'), meta: { label: 'Dropdown', propertyEditorSchemaAlias: 'Umbraco.DropDown.Flexible', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/manifests.ts index 0dd8bfbc18..0647a11ac7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/eye-dropper/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.EyeDropper', name: 'Eye Dropper Color Picker Property Editor UI', - js: () => import('./property-editor-ui-eye-dropper.element.js'), + element: () => import('./property-editor-ui-eye-dropper.element.js'), meta: { label: 'Eye Dropper Color Picker', icon: 'icon-colorpicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/manifests.ts index 7c97194a4c..9b11f5dab5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/icon-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.IconPicker', name: 'Icon Picker Property Editor UI', - js: () => import('./property-editor-ui-icon-picker.element.js'), + element: () => import('./property-editor-ui-icon-picker.element.js'), meta: { label: 'Icon Picker', propertyEditorSchemaAlias: 'Umbraco.IconPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/manifests.ts index 438b91fe4f..3210cdc499 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/label/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.Label', name: 'Label Property Editor UI', - js: () => import('./property-editor-ui-label.element.js'), + element: () => import('./property-editor-ui-label.element.js'), meta: { label: 'Label', icon: 'icon-readonly', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts index cfb2398405..b6fc6c9caf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/manifests.ts @@ -1,72 +1,60 @@ -import { manifest as colorPicker } from './color-picker/manifests.js'; -import { manifest as colorEditor } from './color-editor/manifests.js'; -import { manifest as datePicker } from './date-picker/manifests.js'; -import { manifest as eyeDropper } from './eye-dropper/manifests.js'; -import { manifest as multiUrlPicker } from './multi-url-picker/manifests.js'; -import { manifest as overlaySize } from './overlay-size/manifests.js'; -import { manifests as treePicker } from './tree-picker/manifests.js'; -import { manifests as textBoxes } from './text-box/manifests.js'; -import { manifest as dropdown } from './dropdown/manifests.js'; -import { manifest as multipleTextString } from './multiple-text-string/manifests.js'; -import { manifest as textArea } from './textarea/manifests.js'; -import { manifest as slider } from './slider/manifests.js'; -import { manifest as toggle } from './toggle/manifests.js'; -import { manifest as markdownEditor } from './markdown-editor/manifests.js'; -import { manifest as radioButtonList } from './radio-button-list/manifests.js'; import { manifest as checkboxList } from './checkbox-list/manifests.js'; -import { manifest as numberRange } from './number-range/manifests.js'; -import { manifest as uploadField } from './upload-field/manifests.js'; -import { manifest as orderDirection } from './order-direction/manifests.js'; -import { manifests as collectionView } from './collection-view/manifests.js'; -import { manifests as tinyMCE } from './tiny-mce/manifests.js'; +import { manifest as colorEditor } from './color-swatches-editor/manifests.js'; +import { manifest as colorPicker } from './color-picker/manifests.js'; +import { manifest as datePicker } from './date-picker/manifests.js'; +import { manifest as dropdown } from './dropdown/manifests.js'; +import { manifest as eyeDropper } from './eye-dropper/manifests.js'; import { manifest as iconPicker } from './icon-picker/manifests.js'; import { manifest as label } from './label/manifests.js'; -import { manifest as valueType } from './value-type/manifests.js'; -import { manifests as numbers } from './number/manifests.js'; -import { manifest as userPicker } from './user-picker/manifests.js'; -import { manifest as memberPicker } from './member-picker/manifests.js'; +import { manifest as markdownEditor } from './markdown-editor/manifests.js'; import { manifest as memberGroupPicker } from './member-group-picker/manifests.js'; +import { manifest as memberPicker } from './member-picker/manifests.js'; +import { manifest as multipleTextString } from './multiple-text-string/manifests.js'; +import { manifest as multiUrlPicker } from './multi-url-picker/manifests.js'; +import { manifest as numberRange } from './number-range/manifests.js'; +import { manifest as orderDirection } from './order-direction/manifests.js'; +import { manifest as overlaySize } from './overlay-size/manifests.js'; +import { manifest as radioButtonList } from './radio-button-list/manifests.js'; +import { manifest as slider } from './slider/manifests.js'; +import { manifest as textArea } from './textarea/manifests.js'; +import { manifest as toggle } from './toggle/manifests.js'; +import { manifest as uploadField } from './upload-field/manifests.js'; +import { manifest as userPicker } from './user-picker/manifests.js'; +import { manifest as valueType } from './value-type/manifests.js'; +import { manifests as collectionView } from './collection-view/manifests.js'; +import { manifests as numbers } from './number/manifests.js'; +import { manifests as textBoxes } from './text-box/manifests.js'; +import { manifests as tinyMCE } from './tiny-mce/manifests.js'; +import { manifests as treePicker } from './tree-picker/manifests.js'; import type { ManifestPropertyEditorUi } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ - colorPicker, - colorEditor, - datePicker, - eyeDropper, - multiUrlPicker, - overlaySize, - dropdown, - multipleTextString, - textArea, - slider, - toggle, - markdownEditor, - radioButtonList, checkboxList, - numberRange, - uploadField, - orderDirection, + colorEditor, + colorPicker, + datePicker, + dropdown, + eyeDropper, iconPicker, label, - valueType, - userPicker, - memberPicker, + markdownEditor, memberGroupPicker, + memberPicker, + multipleTextString, + multiUrlPicker, + numberRange, + orderDirection, + overlaySize, + radioButtonList, + slider, + textArea, + toggle, + uploadField, + userPicker, + valueType, + ...collectionView, ...numbers, ...textBoxes, - ...treePicker, - ...collectionView, ...tinyMCE, - { - type: 'propertyEditorUi', - alias: 'Umb.PropertyEditorUi.Number', - name: 'Number Property Editor UI', - js: () => import('./number/property-editor-ui-number.element.js'), - meta: { - label: 'Number', - icon: 'icon-autofill', - group: 'common', - propertyEditorSchemaAlias: 'Umbraco.Integer', - }, - }, + ...treePicker, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/manifests.ts index d2ffb94f7c..26ed883b0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-group-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.MemberGroupPicker', name: 'Member Group Picker Property Editor UI', - js: () => import('./property-editor-ui-member-group-picker.element.js'), + element: () => import('./property-editor-ui-member-group-picker.element.js'), meta: { label: 'Member Group Picker', propertyEditorSchemaAlias: 'Umbraco.MemberGroupPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/manifests.ts index 875ecd4bc3..c8c52770e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/member-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.MemberPicker', name: 'Member Picker Property Editor UI', - js: () => import('./property-editor-ui-member-picker.element.js'), + element: () => import('./property-editor-ui-member-picker.element.js'), meta: { label: 'Member Picker', propertyEditorSchemaAlias: 'Umbraco.MemberPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/manifests.ts index 98c0e38aa2..3fe3a6b3cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multi-url-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.MultiUrlPicker', name: 'Multi URL Picker Property Editor UI', - js: () => import('./property-editor-ui-multi-url-picker.element.js'), + element: () => import('./property-editor-ui-multi-url-picker.element.js'), meta: { label: 'Multi URL Picker', propertyEditorSchemaAlias: 'Umbraco.MultiUrlPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/manifests.ts index acc4f72fe6..e624e9e350 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/multiple-text-string/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.MultipleTextString', name: 'Multiple Text String Property Editor UI', - js: () => import('./property-editor-ui-multiple-text-string.element.js'), + element: () => import('./property-editor-ui-multiple-text-string.element.js'), meta: { label: 'Multiple Text String', propertyEditorSchemaAlias: 'Umbraco.MultipleTextString', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts index c09a91473b..bf7a813e17 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number-range/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.NumberRange', name: 'Number Range Property Editor UI', - js: () => import('./property-editor-ui-number-range.element.js'), + element: () => import('./property-editor-ui-number-range.element.js'), meta: { label: 'Number Range', propertyEditorSchemaAlias: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/manifests.ts index 91e182c646..529c536a6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/number/manifests.ts @@ -12,7 +12,7 @@ export const manifests: Array = [ type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.Integer', name: 'Integer Property Editor UI', - js: () => import('./property-editor-ui-number.element.js'), + element: () => import('./property-editor-ui-number.element.js'), meta: { label: 'Integer', propertyEditorSchemaAlias: 'Umbraco.Integer', @@ -33,7 +33,7 @@ export const manifests: Array = [ type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.Decimal', name: 'Decimal Property Editor UI', - js: () => import('./property-editor-ui-number.element.js'), + element: () => import('./property-editor-ui-number.element.js'), meta: { label: 'Decimal', propertyEditorSchemaAlias: 'Umbraco.Decimal', @@ -50,4 +50,16 @@ export const manifests: Array = [ }, }, }, + { + type: 'propertyEditorUi', + alias: 'Umb.PropertyEditorUi.Number', + name: 'Number Property Editor UI', + element: () => import('./property-editor-ui-number.element.js'), + meta: { + label: 'Number', + icon: 'icon-autofill', + group: 'common', + propertyEditorSchemaAlias: 'Umbraco.Integer', + }, + }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts index e127106166..3b6762e689 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/order-direction/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.OrderDirection', name: 'Order Direction Property Editor UI', - js: () => import('./property-editor-ui-order-direction.element.js'), + element: () => import('./property-editor-ui-order-direction.element.js'), meta: { label: 'Order Direction', propertyEditorSchemaAlias: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts index 4dfdfcfd0f..286fc765d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/overlay-size/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.OverlaySize', name: 'Overlay Size Property Editor UI', - js: () => import('./property-editor-ui-overlay-size.element.js'), + element: () => import('./property-editor-ui-overlay-size.element.js'), meta: { label: 'Overlay Size', propertyEditorSchemaAlias: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts index b542fbebb4..8debec0510 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/radio-button-list/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.RadioButtonList', name: 'Radio Button List Property Editor UI', - js: () => import('./property-editor-ui-radio-button-list.element.js'), + element: () => import('./property-editor-ui-radio-button-list.element.js'), meta: { label: 'Radio Button List', propertyEditorSchemaAlias: 'Umbraco.RadioButtonList', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/manifests.ts index 24a6fe0a7f..f9cafa618d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/slider/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.Slider', name: 'Slider Property Editor UI', - js: () => import('./property-editor-ui-slider.element.js'), + element: () => import('./property-editor-ui-slider.element.js'), meta: { label: 'Slider', propertyEditorSchemaAlias: 'Umbraco.Slider', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/manifests.ts index f67a4fa08e..31494dcbe2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/text-box/manifests.ts @@ -13,7 +13,7 @@ export const manifests: Array = [ type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.TextBox', name: 'Text Box Property Editor UI', - js: () => import('./property-editor-ui-text-box.element.js'), + element: () => import('./property-editor-ui-text-box.element.js'), meta: { label: 'Text Box', propertyEditorSchemaAlias: 'Umbraco.TextBox', @@ -34,7 +34,7 @@ export const manifests: Array = [ type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.Email', name: 'Email Property Editor UI', - js: () => import('./property-editor-ui-text-box.element.js'), + element: () => import('./property-editor-ui-text-box.element.js'), meta: { label: 'Email', propertyEditorSchemaAlias: 'Umbraco.EmailAddress', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/manifests.ts index a660eb9f9f..d5f75b2a60 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/textarea/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.TextArea', name: 'Text Area Property Editor UI', - js: () => import('./property-editor-ui-textarea.element.js'), + element: () => import('./property-editor-ui-textarea.element.js'), meta: { label: 'Text Area', propertyEditorSchemaAlias: 'Umbraco.TextArea', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/manifests.ts index e84adcef0a..e88d626e9e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tiny-mce/manifests.ts @@ -5,7 +5,7 @@ const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.TinyMCE', name: 'Rich Text Editor Property Editor UI', - js: () => import('./property-editor-ui-tiny-mce.element.js'), + element: () => import('./property-editor-ui-tiny-mce.element.js'), meta: { label: 'Rich Text Editor', propertyEditorSchemaAlias: 'Umbraco.RichText', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/manifests.ts index f357dc2079..72f9a85268 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/toggle/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.Toggle', name: 'Toggle Property Editor UI', - js: () => import('./property-editor-ui-toggle.element.js'), + element: () => import('./property-editor-ui-toggle.element.js'), meta: { label: 'Toggle', propertyEditorSchemaAlias: 'Umbraco.TrueFalse', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts index fd6e0da2f0..2f0177ac56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.TreePicker.SourcePicker', name: 'Tree Picker Source Picker Property Editor UI', - js: () => import('./property-editor-ui-tree-picker-source-picker.element.js'), + element: () => import('./property-editor-ui-tree-picker-source-picker.element.js'), meta: { label: 'Tree Picker Source Picker', icon: 'icon-page-add', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts index cc098a86bb..2473ac7989 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/config/source-type-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.TreePicker.SourceTypePicker', name: 'Tree Picker Source Type Picker Property Editor UI', - js: () => import('./property-editor-ui-tree-picker-source-type-picker.element.js'), + element: () => import('./property-editor-ui-tree-picker-source-type-picker.element.js'), meta: { label: 'Tree Picker Source Type Picker', icon: 'icon-page-add', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts index c459cb5ca5..e303998769 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/manifests.ts @@ -6,7 +6,7 @@ const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.TreePicker', name: 'Tree Picker Property Editor UI', - js: () => import('./property-editor-ui-tree-picker.element.js'), + element: () => import('./property-editor-ui-tree-picker.element.js'), meta: { label: 'Tree Picker', icon: 'icon-page-add', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/manifests.ts index 8c7c9cf522..1619b8f276 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/upload-field/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.UploadField', name: 'Upload Field Property Editor UI', - js: () => import('./property-editor-ui-upload-field.element.js'), + element: () => import('./property-editor-ui-upload-field.element.js'), meta: { label: 'Upload Field', propertyEditorSchemaAlias: 'Umbraco.UploadField', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/manifests.ts index bb0ab0f765..2576fbb1cc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/user-picker/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.UserPicker', name: 'User Picker Property Editor UI', - js: () => import('./property-editor-ui-user-picker.element.js'), + element: () => import('./property-editor-ui-user-picker.element.js'), meta: { label: 'User Picker', propertyEditorSchemaAlias: 'Umbraco.UserPicker', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/manifests.ts index 34b1e679ab..285397aacf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/value-type/manifests.ts @@ -4,7 +4,7 @@ export const manifest: ManifestPropertyEditorUi = { type: 'propertyEditorUi', alias: 'Umb.PropertyEditorUi.ValueType', name: 'Value Type Property Editor UI', - js: () => import('./property-editor-ui-value-type.element.js'), + element: () => import('./property-editor-ui-value-type.element.js'), meta: { label: 'Value Type', icon: 'icon-autofill', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts index f6babbd0eb..d2027164fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.ts @@ -66,6 +66,8 @@ export class UmbDocumentTypeWorkspaceViewEditElement extends UmbLitElement imple }; //private _hasRootProperties = false; + + @state() private _hasRootGroups = false; @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts index cd24e5cf44..5f023cc1e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/views/design/media-type-workspace-view-edit.element.ts @@ -66,6 +66,8 @@ export class UmbMediaTypeWorkspaceViewEditElement extends UmbLitElement implemen }; //private _hasRootProperties = false; + + @state() private _hasRootGroups = false; @state() From f65352886dbfaf7bfe40c6709bc24b821cc6a5b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Fri, 2 Feb 2024 11:59:57 +0100 Subject: [PATCH 763/786] Fix drop animation and cursor --- .../src/packages/core/sorter/sorter.controller.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 1a980a87f0..490a1f2488 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -242,6 +242,11 @@ export class UmbSorterController Date: Fri, 2 Feb 2024 12:04:12 +0100 Subject: [PATCH 764/786] remove toBeCurrentContainerCtrl --- .../src/packages/core/sorter/sorter.controller.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 490a1f2488..573e35b61b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -518,10 +518,7 @@ export class UmbSorterController currentContainerRect.bottom) { - //toBeCurrentContainerCtrl ?? this.#moveElementTo(-1); } }; From 4de7497cd0ea84746ffa2e582aa0c71bde3a9a2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Feb 2024 12:32:06 +0100 Subject: [PATCH 765/786] a few fixes --- .../sorter-dashboard.ts | 5 ++-- .../sorter-group.ts | 29 +++++++++++++------ .../sorter-group.ts | 10 ++----- .../packages/core/sorter/sorter.controller.ts | 7 +++-- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts index afe90228d1..36f96e5de2 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts @@ -20,6 +20,7 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { }, { name: 'Banana', + children: [], }, { name: 'Pear', @@ -57,8 +58,8 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) {
Notice this example still only support single group of Sorter.
- - + +
`; diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts index 34fb05f6a4..85688f727d 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts @@ -13,15 +13,25 @@ export type ModelEntryType = { @customElement('example-sorter-group') export class ExampleSorterGroup extends UmbElementMixin(LitElement) { + @property({ type: Array, attribute: false }) + public get initialItems(): ModelEntryType[] { + return this.items; + } + public set initialItems(value: ModelEntryType[]) { + // Only want to set the model initially, cause any re-render should not set this again. + if (this._items !== undefined) return; + this.items = value; + } + @property({ type: Array, attribute: false }) public get items(): ModelEntryType[] { return this._items ?? []; } public set items(value: ModelEntryType[]) { - // Only want to set the model initially, cause any re-render should not set this again. - if (this._items !== undefined) return; + const oldValue = this._items; this._items = value; this.#sorter.setModel(this._items); + this.requestUpdate('items', oldValue); } private _items?: ModelEntryType[]; @@ -43,7 +53,7 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { }); removeItem = (item: ModelEntryType) => { - this.items = this._items!.filter((r) => r.name !== item.name); + this.items = this.items.filter((r) => r.name !== item.name); }; render() { @@ -55,9 +65,7 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { (item) => html` - ${item.children && item.children.length > 0 - ? html`` - : ''} + ${item.children ? html`` : ''} `, )}
@@ -76,12 +84,15 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { opacity: 0.2; } + .sorter-container { + min-height: 20px; + } + example-sorter-group { display: block; width: 100%; - min-height: 20px; - border: 1px solid var(--uui-color-border); - border-radius: var(--uui-size-border-radius); + border: 1px dashed rgba(122, 122, 122, 0.25); + border-radius: calc(var(--uui-border-radius) * 2); padding: var(--uui-size-space-1); } `, diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts index 9689d9ac8f..6975854446 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts @@ -44,7 +44,8 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { }); removeItem = (item: ModelEntryType) => { - this.items = this._items!.filter((r) => r.name !== item.name); + this._items = this._items!.filter((r) => r.name !== item.name); + this.#sorter.setModel(this._items); }; render() { @@ -74,13 +75,8 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { opacity: 0.2; } - example-sorter-group { - display: block; - width: 100%; + .sorter-container { min-height: 20px; - border: 1px solid var(--uui-color-border); - border-radius: var(--uui-size-border-radius); - padding: var(--uui-size-space-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 573e35b61b..1a11a3108c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -570,14 +570,17 @@ export class UmbSorterController currentContainerRect.bottom) { this.#moveElementTo(-1); From b95fbca275038a2530301287074bf28493d13b8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 2 Feb 2024 13:51:03 +0100 Subject: [PATCH 766/786] revert move if drop was cancelled --- .../packages/core/sorter/sorter.controller.ts | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 1a11a3108c..f10cc64948 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -109,6 +109,10 @@ export type UmbSorterConfig = */ export class UmbSorterController implements UmbController { // + // A sorter that is requested to become the next sorter: + static originalSorter?: UmbSorterController; + static originalIndex?: number; + // A sorter that is requested to become the next sorter: static dropSorter?: UmbSorterController; @@ -295,8 +299,9 @@ export class UmbSorterController; + UmbSorterController.originalIndex = this.#model.indexOf(UmbSorterController.activeItem); + if (!UmbSorterController.activeItem) { console.error('Could not find item related to this element.'); return; @@ -393,11 +402,25 @@ export class UmbSorterController { + #handleDragEnd = async (event?: DragEvent) => { + // If not good drop, revert model? + if (!UmbSorterController.activeElement || !UmbSorterController.activeItem) { return; } + if ( + UmbSorterController.originalSorter && + event?.dataTransfer != null && + event?.dataTransfer?.dropEffect === 'none' + ) { + // Revert move, to start position. + UmbSorterController.originalSorter.moveItemInModel( + UmbSorterController.originalIndex ?? 0, + UmbSorterController.activeSorter!, + ); + } + UmbSorterController.activeElement.style.transform = ''; this.#removePlaceholderStyle(); @@ -421,6 +444,8 @@ export class UmbSorterController Date: Fri, 2 Feb 2024 14:28:12 +0100 Subject: [PATCH 767/786] simplify sentence --- .../src/packages/core/sorter/sorter.controller.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index f10cc64948..096b9fc2e4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -409,11 +409,7 @@ export class UmbSorterController Date: Mon, 5 Feb 2024 11:17:54 +0100 Subject: [PATCH 768/786] beautify --- .../sorter-with-nested-containers/sorter-dashboard.ts | 1 + .../sorter-with-nested-containers/sorter-group.ts | 11 +++-------- .../sorter-with-two-containers/sorter-dashboard.ts | 1 + .../sorter-with-two-containers/sorter-group.ts | 3 +++ 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts index 36f96e5de2..daefba21f6 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-dashboard.ts @@ -75,6 +75,7 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { .outer-wrapper { display: flex; + gap: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts index 85688f727d..d1a0c7e35e 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-nested-containers/sorter-group.ts @@ -78,6 +78,9 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { :host { display: block; width: 100%; + border: 1px dashed rgba(122, 122, 122, 0.25); + border-radius: calc(var(--uui-border-radius) * 2); + padding: var(--uui-size-space-1); } .sorter-placeholder { @@ -87,14 +90,6 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { .sorter-container { min-height: 20px; } - - example-sorter-group { - display: block; - width: 100%; - border: 1px dashed rgba(122, 122, 122, 0.25); - border-radius: calc(var(--uui-border-radius) * 2); - padding: var(--uui-size-space-1); - } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts index 7747317257..feb0979603 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-dashboard.ts @@ -57,6 +57,7 @@ export class ExampleSorterDashboard extends UmbElementMixin(LitElement) { .outer-wrapper { display: flex; + gap: var(--uui-size-layout-1); } `, ]; diff --git a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts index 6975854446..da4b209172 100644 --- a/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts +++ b/src/Umbraco.Web.UI.Client/examples/sorter-with-two-containers/sorter-group.ts @@ -69,6 +69,9 @@ export class ExampleSorterGroup extends UmbElementMixin(LitElement) { :host { display: block; width: 100%; + border: 1px dashed rgba(122, 122, 122, 0.25); + border-radius: calc(var(--uui-border-radius) * 2); + padding: var(--uui-size-space-1); } .sorter-placeholder { From 3293086670fe939bda96d42e2d841d5a179104b1 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 5 Feb 2024 11:04:39 +0000 Subject: [PATCH 769/786] DynamicRoot: Restricted the doctype picker to non-element-types --- .../modals/dynamic-root-query-step-picker-modal.element.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts index ba1058fbb2..2ded733531 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -35,6 +35,7 @@ export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBase this.#documentTypePickerContext .openPicker({ hideTreeRoot: true, + pickableFilter: (x) => x.isElement === false, }) .then(() => { const selectedItems = this.#documentTypePickerContext.getSelection(); From d1449d47fc5501fb2dbeb448cca2817e3f10a2d9 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Mon, 5 Feb 2024 11:27:15 +0000 Subject: [PATCH 770/786] Added `unique` to `UmbTreePickerDynamicRootQueryStep` as the sorter needs to have a unique value to identify the item. This would be persisted to the database, which isn't ideal, as it is unused elsewhere. --- .../input-tree-picker-source.element.ts | 1 + .../input-document-picker-root.element.ts | 118 +++++++++++------- ...ynamic-root-origin-picker-modal.element.ts | 14 +-- ...ic-root-query-step-picker-modal.element.ts | 7 +- 4 files changed, 87 insertions(+), 53 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts index 41d50ad036..c7337d6cac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-tree-picker-source/input-tree-picker-source.element.ts @@ -20,6 +20,7 @@ export type UmbTreePickerDynamicRoot = { }; export type UmbTreePickerDynamicRootQueryStep = { + unique: string; alias: string; anyOfDocTypeKeys?: Array; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 88bdb37eb1..f80ee6ac0e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -1,20 +1,22 @@ +import { html, css, customElement, property, ifDefined, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; +import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, UMB_DYNAMIC_ROOT_QUERY_STEP_PICKER_MODAL, } from '@umbraco-cms/backoffice/dynamic-root'; -import { html, css, customElement, property, ifDefined, map, state } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; -import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import type { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; -import type { UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; -import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; -import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; -import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; -import { - type ManifestDynamicRootOrigin, - type ManifestDynamicRootQueryStep, - umbExtensionsRegistry, +import type { + ManifestDynamicRootOrigin, + ManifestDynamicRootQueryStep, } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; +import { query } from '@umbraco-cms/backoffice/router'; @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { @@ -23,10 +25,10 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl } @state() - private _origins: Array = []; + private _originManifests: Array = []; @state() - private _querySteps: Array = []; + private _queryStepManifests: Array = []; @property({ attribute: false }) data?: UmbTreePickerDynamicRoot | undefined; @@ -44,14 +46,17 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl this.#modalContext = instance; }); - this.observe(umbExtensionsRegistry.byType('dynamicRootOrigin'), (origins: Array) => { - this._origins = origins; - }); + this.observe( + umbExtensionsRegistry.byType('dynamicRootOrigin'), + (originManifests: Array) => { + this._originManifests = originManifests; + }, + ); this.observe( umbExtensionsRegistry.byType('dynamicRootQueryStep'), - (querySteps: Array) => { - this._querySteps = querySteps; + (queryStepManifests: Array) => { + this._queryStepManifests = queryStepManifests; }, ); } @@ -63,23 +68,29 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl this.#updateDynamicRootQuerySteps(this.data?.querySteps); } - #sorter = new UmbSorterController(this, { - compareElementToModel: (element: HTMLElement, model: string) => { - return element.getAttribute('data-idx') === model; - }, - querySelectModelToElement: () => null, - identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot', - itemSelector: 'uui-ref-node', - containerSelector: '#query-steps', - onChange: ({ model }) => { - if (this.data && this.data.querySteps) { - const steps = [...this.data.querySteps]; - const querySteps = model.map((index) => steps[parseInt(index)]); - this.#updateDynamicRootQuerySteps(querySteps); - this.dispatchEvent(new UmbChangeEvent()); - } - }, - }); + #sorter?: UmbSorterController; + + #initSorter() { + this.#sorter = new UmbSorterController(this, { + getUniqueOfElement: (element) => { + return element.id; + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry.unique; + }, + identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot', + itemSelector: 'uui-ref-node', + containerSelector: '#query-steps', + onChange: ({ model }) => { + if (this.data && this.data.querySteps) { + //const steps = [...this.data.querySteps]; + const querySteps = model; //.map((index) => steps[parseInt(index)]); + this.#updateDynamicRootQuerySteps(querySteps); + this.dispatchEvent(new UmbChangeEvent()); + } + }, + }); + } #openDynamicRootOriginPicker() { this.#openModal = this.#modalContext?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); @@ -105,7 +116,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #updateDynamicRootOrigin(data?: UmbTreePickerDynamicRoot) { if (!data) return; - const origin = this._origins.find((item) => item.meta.originAlias === data.originAlias)?.meta; + const origin = this._originManifests.find((item) => item.meta.originAlias === data.originAlias)?.meta; this.#dynamicRootOrigin = { label: origin?.label ?? data.originAlias, icon: origin?.icon ?? 'icon-wand', @@ -115,16 +126,33 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #updateDynamicRootQuerySteps(querySteps?: Array) { if (!this.data) return; - this.#sorter.setModel(querySteps?.map((_, index) => index.toString()) ?? []); + + if (!this.#sorter) { + // NOTE: The sorter controller can only be initialized when the `#query-steps` element is available. [LK] + this.#initSorter(); + } + + if (querySteps) { + // NOTE: Ensure that the `unique` ID is populated for each query step. [LK] + querySteps = querySteps.map((item) => (item.unique ? item : { ...item, unique: UmbId.new() })); + } + + this.#sorter?.setModel(querySteps ?? []); this.data = { ...this.data, ...{ querySteps } }; } - #getQueryStepMeta(item: UmbTreePickerDynamicRootQueryStep): { label: string; icon: string; description?: string } { - const step = this._querySteps.find((step) => step.meta.queryStepAlias === item.alias)?.meta; + #getQueryStepMeta(item: UmbTreePickerDynamicRootQueryStep): { + unique: string; + label: string; + icon: string; + description?: string; + } { + const step = this._queryStepManifests.find((step) => step.meta.queryStepAlias === item.alias)?.meta; const docTypes = item.anyOfDocTypeKeys?.join(', '); const description = docTypes ? this.localize.term('dynamicRoot_queryStepTypes') + docTypes : undefined; return { + unique: item.unique, label: step?.label ?? item.alias, icon: step?.icon ?? 'icon-lab', description, @@ -192,16 +220,20 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl if (!this.data?.querySteps) return; return html` - ${map(this.data.querySteps, (item, index) => this.#renderQueryStep(item, index))} + ${repeat( + this.data.querySteps, + (item) => item.unique, + (item) => this.#renderQueryStep(item), + )} `; } - #renderQueryStep(item: UmbTreePickerDynamicRootQueryStep, index: number) { + #renderQueryStep(item: UmbTreePickerDynamicRootQueryStep) { if (!item.alias) return; const step = this.#getQueryStepMeta(item); return html` - + ) => { - this._origins = origins; - }, - ); + this.observe(umbExtensionsRegistry.byType('dynamicRootOrigin'), (origins: Array) => { + this._origins = origins; + }); } #choose(item: ManifestDynamicRootOrigin) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts index 2ded733531..b7d7dcd759 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -1,9 +1,11 @@ import { UmbDocumentTypePickerContext } from '../../documents/document-types/components/input-document-type/input-document-type.context.js'; +import { UmbId } from '@umbraco-cms/backoffice/id'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, map, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import type { UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; -import { type ManifestDynamicRootQueryStep, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestDynamicRootQueryStep } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-dynamic-root-query-step-picker-modal') export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBaseElement { @@ -40,6 +42,7 @@ export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBase .then(() => { const selectedItems = this.#documentTypePickerContext.getSelection(); this.#submit({ + unique: UmbId.new(), alias: alias, anyOfDocTypeKeys: selectedItems, }); From 4ec22ed11807dfd5ef47226604fa4225a6336871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 5 Feb 2024 13:26:50 +0100 Subject: [PATCH 771/786] make modal registration unique towards with property alias --- .../property-editor-ui-block-grid.element.ts | 109 +++--------------- .../property-editor-ui-block-list.element.ts | 16 ++- 2 files changed, 29 insertions(+), 96 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index 8b8c318156..7c9b52e093 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -1,9 +1,6 @@ -import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property, state, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router'; -import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { ManifestPropertyEditorUi, UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { @@ -14,12 +11,15 @@ import { } from '@umbraco-cms/backoffice/block'; import { type UmbModalRouteBuilder, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; import type { NumberRangeValueType } from '@umbraco-cms/backoffice/models'; +import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; /** * @element umb-property-editor-ui-block-grid */ @customElement('umb-property-editor-ui-block-grid') export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implements UmbPropertyEditorUiElement { + #catalogueModal: UmbModalRouteRegistrationController; + @property() value = ''; @@ -79,35 +79,18 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement constructor() { super(); - /* - // TODO: Prevent initial notification from these observes: - this.observe(this.#context.layouts, (layouts) => { - this._value = { ...this._value, layout: { [UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS]: layouts } }; - // Notify that the value has changed. - //console.log('layout changed', this._value); - // TODO: idea: consider inserting an await here, so other changes could appear first? Maybe some mechanism to only fire change event onces? - this._layouts = layouts; - this.#sorter.setModel(layouts); - this.dispatchEvent(new UmbChangeEvent()); + this.consumeContext(UMB_PROPERTY_CONTEXT, (propertyContext) => { + this.observe( + propertyContext?.alias, + (alias) => { + this.#catalogueModal.setUniquePathValue('propertyAlias', alias); + }, + 'observePropertyAlias', + ); }); - this.observe(this.#context.contents, (contents) => { - this._value = { ...this._value, contentData: contents }; - // Notify that the value has changed. - //console.log('content changed', this._value); - this.dispatchEvent(new UmbChangeEvent()); - }); - this.observe(this.#context.settings, (settings) => { - this._value = { ...this._value, settingsData: settings }; - // Notify that the value has changed. - //console.log('settings changed', this._value); - this.dispatchEvent(new UmbChangeEvent()); - }); - this.observe(this.#context.blockTypes, (blockTypes) => { - this._blocks = blockTypes; - }); - */ - new UmbModalRouteRegistrationController(this, UMB_BLOCK_CATALOGUE_MODAL) + this.#catalogueModal = new UmbModalRouteRegistrationController(this, UMB_BLOCK_CATALOGUE_MODAL) + .addUniquePaths(['propertyAlias']) .addAdditionalPath(':view/:index') .onSetup((routingInfo) => { const index = routingInfo.index ? parseInt(routingInfo.index) : -1; @@ -146,70 +129,6 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement `; } - /* -setupRoutes() { - this._routes = []; - if (this._variantId !== undefined) { - this._routes = [ - { - path: 'modal-1', - component: () => { - return import('./property-editor-ui-block-grid-inner-test.element.js'); - }, - setup: (component) => { - if (component instanceof HTMLElement) { - (component as any).name = 'block-grid-1'; - } - }, - }, - { - path: 'modal-2', - component: () => { - return import('./property-editor-ui-block-grid-inner-test.element.js'); - }, - setup: (component) => { - if (component instanceof HTMLElement) { - (component as any).name = 'block-grid-2'; - } - }, - }, - ]; - } -} -*/ - /* - render() { - return this._variantId - ? html`
- umb-property-editor-ui-block-grid, inner routing test: - - - - - - - { - this._routerPath = event.target.absoluteRouterPath; - }} - @change=${(event: UmbRouterSlotChangeEvent) => { - this._activePath = event.target.localActiveViewPath; - }}> - -
` - : 'loading...'; - } - */ - static styles = [ UmbTextStyles, css` diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 669f8f75e2..f8671c248d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -15,6 +15,7 @@ import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/mod import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import type { UmbSorterConfig } from '@umbraco-cms/backoffice/sorter'; import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; export interface UmbBlockListLayoutModel extends UmbBlockLayoutBaseModel {} @@ -45,6 +46,8 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement }, }); + #catalogueModal: UmbModalRouteRegistrationController; + private _value: UmbBlockListValueModel = { layout: {}, contentData: [], @@ -121,6 +124,16 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement constructor() { super(); + this.consumeContext(UMB_PROPERTY_CONTEXT, (propertyContext) => { + this.observe( + propertyContext?.alias, + (alias) => { + this.#catalogueModal.setUniquePathValue('propertyAlias', alias); + }, + 'observePropertyAlias', + ); + }); + // TODO: Prevent initial notification from these observes: this.observe(this.#context.layouts, (layouts) => { this._value = { ...this._value, layout: { [UMB_BLOCK_LIST_PROPERTY_EDITOR_ALIAS]: layouts } }; @@ -147,7 +160,8 @@ export class UmbPropertyEditorUIBlockListElement extends UmbLitElement implement this._blocks = blockTypes; }); - new UmbModalRouteRegistrationController(this, UMB_BLOCK_CATALOGUE_MODAL) + this.#catalogueModal = new UmbModalRouteRegistrationController(this, UMB_BLOCK_CATALOGUE_MODAL) + .addUniquePaths(['propertyAlias']) .addAdditionalPath(':view/:index') .onSetup((routingInfo) => { const index = routingInfo.index ? parseInt(routingInfo.index) : -1; From 55c2e5a2bbaa00344d6b1d642c88974ca7fbd154 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 5 Feb 2024 13:34:16 +0100 Subject: [PATCH 772/786] localizations --- .../property-editor-ui-block-grid.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index 7c9b52e093..f4d2b2e5ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -44,7 +44,7 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement private _directRoute?: string; @state() - private _createButtonLabel = this.localize.term('content_createEmpty'); + private _createButtonLabel = this.localize.term('blockEditor_addBlock'); @property({ attribute: false }) public set config(config: UmbPropertyEditorConfigCollection | undefined) { @@ -62,7 +62,7 @@ export class UmbPropertyEditorUIBlockGridElement extends UmbLitElement implement if (customCreateButtonLabel) { this._createButtonLabel = customCreateButtonLabel; } else if (this._blocks.length === 1) { - this._createButtonLabel = `${this.localize.term('general_add')} ${this._blocks[0].label}`; + this._createButtonLabel = this.localize.term('blockEditor_addThis', [this._blocks[0].label]); } //const useInlineEditingAsDefault = config.getValueByAlias('useInlineEditingAsDefault'); From 5d92c81533d7da77e401b55d8a52709f13464b3d Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:13:10 +0100 Subject: [PATCH 773/786] hotfix event export --- src/Umbraco.Web.UI.Client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 30a36f3953..03bac9db89 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -45,7 +45,7 @@ "./tree": "./dist-cms/packages/core/tree/index.js", "./variant": "./dist-cms/packages/core/variant/index.js", "./workspace": "./dist-cms/packages/core/workspace/index.js", - "./events": "./dist-cms/packages/core/umb-events/index.js", + "./event": "./dist-cms/packages/core/event/index.js", "./repository": "./dist-cms/packages/core/repository/index.js", "./temporary-file": "./dist-cms/packages/core/temporary-file/index.js", "./block": "./dist-cms/packages/block/index.js", From 0c4599f87854be807bf39cc70abe81826aac5f18 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:31:56 +0100 Subject: [PATCH 774/786] size --- .../block-grid-editor/property-editor-ui-block-grid.element.ts | 2 +- .../modals/block-catalogue/block-catalogue-modal.element.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index f4d2b2e5ac..fccea2bcf0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -1,6 +1,6 @@ import { html, customElement, property, state, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { ManifestPropertyEditorUi, UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; +import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; import { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index e12ac2b161..8cc4b3f4d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -117,7 +117,7 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< return html` ${mappedGroupsAndBlocks.map( (group) => html` - ${group.name ? html`

${group.name}

` : nothing} + ${group.name ? html`

${group.name}

` : nothing}
${repeat( group.blocks, From 064d7430e4adf40e32c1799aea9af94d71bde610 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:41:31 +0100 Subject: [PATCH 775/786] set value for credentials --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts index 1663dd3d26..88aa57b3ef 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts @@ -136,6 +136,7 @@ export class UmbAppElement extends UmbLitElement { // Instruct all requests to use the auth flow to get and use the access_token for all subsequent requests OpenAPI.TOKEN = () => this.#authContext!.getLatestToken(); OpenAPI.WITH_CREDENTIALS = true; + OpenAPI.CREDENTIALS = 'include'; } #redirect() { From ebeadda9fa91c2052057d658365df0ad073ae660 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:45:57 +0100 Subject: [PATCH 776/786] model to hold openapi configuration --- .../auth/models/openApiConfiguration.ts | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/shared/auth/models/openApiConfiguration.ts diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/models/openApiConfiguration.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/models/openApiConfiguration.ts new file mode 100644 index 0000000000..0bdc8ea97a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/models/openApiConfiguration.ts @@ -0,0 +1,32 @@ +/** + * Configuration for the OpenAPI (Umbraco) server. This is used to communicate with the Management API. + * This is useful if you want to configure your Fetch, Axios or other HTTP client to communicate with the Management API. + * If you use the recommended resource generator [openapi-typescript-codegen](https://github.com/ferdikoomen/openapi-typescript-codegen) this can be used to configure the `OpenAPI` object. + */ +export interface UmbOpenApiConfiguration { + /** + * The base URL of the OpenAPI (Umbraco) server. + */ + readonly base: string; + + /** + * The configured version of the Management API to use. + */ + readonly version: string; + + /** + * The `withCredentials` option for the Fetch API. + */ + readonly withCredentials: boolean; + + /** + * The `credentials` option for the Fetch API. + */ + readonly credentials: 'include' | 'omit' | 'same-origin'; + + /** + * The token to use for the Authorization header. + * @returns A resolver for the token to use for the Authorization header. + */ + readonly token: () => Promise; +} From a477495e509f27e32c5738829fd138275c6eee35 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:46:13 +0100 Subject: [PATCH 777/786] export model --- src/Umbraco.Web.UI.Client/src/shared/auth/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts index e2633039d7..e6dc7d478d 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/index.ts @@ -1,2 +1,3 @@ export * from './auth.context.js'; export * from './auth.context.token.js'; +export * from './models/openApiConfiguration.js'; From 8dfe36400a99fa0f567a755768a6e8351038f057 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:46:32 +0100 Subject: [PATCH 778/786] export our own model instead of the generated model and update the example --- .../src/shared/auth/auth.context.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts index 6e86150fbc..21cbf444cd 100644 --- a/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/shared/auth/auth.context.ts @@ -1,5 +1,6 @@ import { UmbAuthFlow } from './auth-flow.js'; import { UMB_AUTH_CONTEXT } from './auth.context.token.js'; +import type { UmbOpenApiConfiguration } from './models/openApiConfiguration.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; @@ -125,12 +126,21 @@ export class UmbAuthContext extends UmbBaseController { * @example Using the default OpenAPI configuration * ```js * const defaultOpenApi = authContext.getOpenApiConfiguration(); - * OpenAPI = { ...OpenAPI, ...openApi }; + * OpenAPI.BASE = defaultOpenApi.base; + * OpenAPI.WITH_CREDENTIALS = defaultOpenApi.withCredentials; + * OpenAPI.CREDENTIALS = defaultOpenApi.credentials; + * OpenAPI.TOKEN = defaultOpenApi.token; * ``` * @returns The default OpenAPI configuration */ - getOpenApiConfiguration() { - return this.#openApi; + getOpenApiConfiguration(): UmbOpenApiConfiguration { + return { + base: OpenAPI.BASE, + version: OpenAPI.VERSION, + withCredentials: OpenAPI.WITH_CREDENTIALS, + credentials: OpenAPI.CREDENTIALS, + token: () => this.getLatestToken(), + }; } #getRedirectUrl() { From 76825064f61cfe47111067ebe32cecd766c26038 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 5 Feb 2024 15:13:21 +0100 Subject: [PATCH 779/786] render and grouping --- .../block-catalogue-modal.element.ts | 64 ++++++++----------- 1 file changed, 25 insertions(+), 39 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 8cc4b3f4d6..6c65ce57e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -1,8 +1,5 @@ import { UMB_BLOCK_WORKSPACE_MODAL } from '../../workspace/index.js'; -import { - DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, - type UmbDocumentTypeItemModel, -} from '@umbraco-cms/backoffice/document-type'; +import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '@umbraco-cms/backoffice/document-type'; import type { UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue, @@ -10,7 +7,6 @@ import type { UmbBlockTypeWithGroupKey, } from '@umbraco-cms/backoffice/block'; import { css, html, customElement, state, repeat, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit'; -import { groupBy } from '@umbraco-cms/backoffice/external/lodash'; import { UMB_MODAL_CONTEXT, UmbModalBaseElement, @@ -23,17 +19,14 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue > { - #itemManager = new UmbRepositoryItemsManager( + #itemManager = new UmbRepositoryItemsManager( this, DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, - (x) => x.unique, + (x) => x.contentElementTypeKey, ); @state() - private _blocks: Array = []; - - @state() - private _blockGroups: Array = []; + private _groupedBlocks: Array<{ name?: string; blocks: Array }> = []; @state() _openClipboard?: boolean; @@ -60,19 +53,6 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< this._workspacePath = routeBuilder({}); }); }); - - this.observe(this.#itemManager.items, (items) => { - this._blocks = items.map((item) => { - const blockGroup = this._blocks.find((block) => block.contentElementTypeKey === item.unique)?.groupKey; - const block: UmbBlockTypeWithGroupKey = { - contentElementTypeKey: item.unique, - label: item.name, - icon: item.icon ?? undefined, - groupKey: blockGroup, - }; - return block; - }); - }); } connectedCallback() { @@ -80,10 +60,17 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< if (!this.data) return; this._openClipboard = this.data.openClipboard ?? false; - this._blocks = this.data.blocks ?? []; - this._blockGroups = this.data.blockGroups ?? []; - this.#itemManager.setUniques(this._blocks.map((x) => x.contentElementTypeKey)); + const blocks: Array = this.data.blocks ?? []; + const blockGroups: Array = this.data.blockGroups ?? []; + + const noGroupBlocks = blocks.filter((block) => !blockGroups.find((group) => group.key === block.groupKey)); + const grouped = blockGroups.map((group) => ({ + name: group.name ?? '', + blocks: blocks.filter((block) => block.groupKey === group.key), + })); + + this._groupedBlocks = [{ blocks: noGroupBlocks }, ...grouped]; } render() { @@ -107,15 +94,8 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< } #renderCreateEmpty() { - const blockArrays = groupBy(this._blocks, 'groupKey'); - - const mappedGroupsAndBlocks = Object.entries(blockArrays).map(([key, value]) => { - const group = this._blockGroups.find((group) => group.key === key); - return { name: group?.name, blocks: value }; - }); - return html` - ${mappedGroupsAndBlocks.map( + ${this._groupedBlocks.map( (group) => html` ${group.name ? html`

${group.name}

` : nothing}
@@ -141,12 +121,18 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< #renderViews() { return html` - (this._openClipboard = false)}> - Create Empty + (this._openClipboard = false)}> + Create Empty - (this._openClipboard = true)}> - Clipboard + (this._openClipboard = true)}> + Clipboard From 2d97e1ab6bcbc573100a8be5f8409adbf4dff0f8 Mon Sep 17 00:00:00 2001 From: Lone Iversen <108085781+loivsen@users.noreply.github.com> Date: Mon, 5 Feb 2024 15:15:28 +0100 Subject: [PATCH 780/786] remove leftovers --- .../block-catalogue/block-catalogue-modal.element.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index 6c65ce57e5..1beec67023 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -1,5 +1,4 @@ import { UMB_BLOCK_WORKSPACE_MODAL } from '../../workspace/index.js'; -import { DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '@umbraco-cms/backoffice/document-type'; import type { UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue, @@ -12,19 +11,12 @@ import { UmbModalBaseElement, UmbModalRouteRegistrationController, } from '@umbraco-cms/backoffice/modal'; -import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; @customElement('umb-block-catalogue-modal') export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< UmbBlockCatalogueModalData, UmbBlockCatalogueModalValue > { - #itemManager = new UmbRepositoryItemsManager( - this, - DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, - (x) => x.contentElementTypeKey, - ); - @state() private _groupedBlocks: Array<{ name?: string; blocks: Array }> = []; From 1e6736d19263175ea2d874bba7cdf93dae03e7f7 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 6 Feb 2024 10:55:16 +0000 Subject: [PATCH 781/786] Added mock API data/handler --- .../src/mocks/browser-handlers.ts | 2 ++ .../src/mocks/data/data-type/data-type.data.ts | 9 +++++++++ .../src/mocks/handlers/dynamic-root.handlers.ts | 15 +++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/handlers/dynamic-root.handlers.ts diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts index cde1bb1640..0cc2f7eb41 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -36,6 +36,7 @@ import { handlers as partialViewHandlers } from './handlers/partial-view/index.j import { handlers as tagHandlers } from './handlers/tag-handlers.js'; import { handlers as configHandlers } from './handlers/config.handlers.js'; import { handlers as scriptHandlers } from './handlers/script/index.js'; +import { handlers as dynamicRootHandlers } from './handlers/dynamic-root.handlers.js'; const handlers = [ serverHandlers.serverInformationHandler, @@ -46,6 +47,7 @@ const handlers = [ ...dictionaryHandlers, ...documentHandlers, ...documentTypeHandlers, + ...dynamicRootHandlers, ...examineManagementHandlers, ...healthCheckHandlers, ...installHandlers, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts index a9976a2bda..c7bb12cbcf 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.data.ts @@ -227,6 +227,15 @@ export const data: Array = [ value: { type: 'content', id: null, + dynamicRoot: { + originAlias: 'Root', + querySteps: [ + { + alias: 'FurthestAncestorOrSelf', + anyOfDocTypeKeys: ['all-property-editors-document-type-id'], + }, + ], + }, }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/dynamic-root.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dynamic-root.handlers.ts new file mode 100644 index 0000000000..c7c0072f06 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/dynamic-root.handlers.ts @@ -0,0 +1,15 @@ +import { umbDocumentMockDb } from '../data/document/document.db.js'; +import type { DynamicRootRequestModel } from '@umbraco-cms/backoffice/backend-api'; +import { umbracoPath } from '@umbraco-cms/backoffice/utils'; + +const { rest } = window.MockServiceWorker; + +export const handlers = [ + rest.post(umbracoPath('/dynamic-root/query'), async (req, res, ctx) => { + const response = umbDocumentMockDb.tree + .getRoot() + .items.map((item) => item.id) + .slice(0, 1); + return res(ctx.status(200), ctx.json(response)); + }), +]; From 51ac1b78b96494cfdc4312a57ce7053161deec50 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 6 Feb 2024 10:57:19 +0000 Subject: [PATCH 782/786] DynamicRoot: Amended repository/data-source pattern Following @iOvergaard's advice. --- .../repository/dynamic-root.repository.ts | 10 +++------ .../repository/dynamic-root.server.data.ts | 22 +++++-------------- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts index 5986cc8a1e..4134a427f1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.repository.ts @@ -1,7 +1,7 @@ import { UmbDynamicRootServerDataSource } from './dynamic-root.server.data.js'; import { UmbBaseController } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import type { DynamicRootRequestModel, DynamicRootResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { DynamicRootRequestModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbTreePickerDynamicRoot } from '@umbraco-cms/backoffice/components'; const GUID_EMPTY: string = '00000000-0000-0000-0000-000000000000'; @@ -35,12 +35,8 @@ export class UmbDynamicRootRepository extends UmbBaseController { }, }; - const result = (await this.#dataSource.postDynamicRootQuery(model)) as DynamicRootResponseModel; + const result = await this.#dataSource.postDynamicRootQuery(model); - return result.roots; - } - - async getQuerySteps() { - return this.#dataSource.getQuerySteps(); + return result?.roots; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts index bf8e66ea11..f5bc47fc30 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/repository/dynamic-root.server.data.ts @@ -1,6 +1,7 @@ -import { type DynamicRootRequestModel, DynamicRootResource } from '@umbraco-cms/backoffice/backend-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { DynamicRootResource } from '@umbraco-cms/backoffice/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; +import type { DynamicRootRequestModel, DynamicRootResponseModel } from '@umbraco-cms/backoffice/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbDynamicRootServerDataSource { #host: UmbControllerHost; @@ -9,7 +10,7 @@ export class UmbDynamicRootServerDataSource { this.#host = host; } - async postDynamicRootQuery(args: DynamicRootRequestModel) { + async postDynamicRootQuery(args: DynamicRootRequestModel): Promise { if (!args.context) throw new Error('Dynamic Root context is missing'); if (!args.query) throw new Error('Dynamic Root query is missing'); @@ -18,19 +19,8 @@ export class UmbDynamicRootServerDataSource { query: args.query, }; - const { data, error } = await tryExecuteAndNotify( - this.#host, - DynamicRootResource.postDynamicRootQuery({ requestBody }), - ); + const { data } = await tryExecuteAndNotify(this.#host, DynamicRootResource.postDynamicRootQuery({ requestBody })); - if (!error) { - return data; - } - - return { error }; - } - - async getQuerySteps() { - return await tryExecuteAndNotify(this.#host, DynamicRootResource.getDynamicRootSteps()); + return data; } } From 962ac5280f9ac99b9d74144f44e8aa34a27f714e Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 6 Feb 2024 10:58:09 +0000 Subject: [PATCH 783/786] DynamicRoot: Refactored to async/await pattern --- .../property-editor-ui-tree-picker.element.ts | 11 ++++---- ...ynamic-root-origin-picker-modal.element.ts | 25 +++++++++-------- ...ic-root-query-step-picker-modal.element.ts | 27 +++++++++---------- 3 files changed, 30 insertions(+), 33 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts index 15a9a7a6ec..ebfe63e0c8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/tree-picker/property-editor-ui-tree-picker.element.ts @@ -76,18 +76,17 @@ export class UmbPropertyEditorUITreePickerElement extends UmbLitElement implemen this.#setStartNodeId(); } - #setStartNodeId() { + async #setStartNodeId() { if (this.startNodeId) return; const entityId = this.#workspaceContext?.getEntityId(); // TODO: Awaiting the workspace context to have a parent entity ID value. [LK] // e.g. const parentEntityId = this.#workspaceContext?.getParentEntityId(); if (entityId && this.#dynamicRoot) { - this.#dynamicRootRepository.postDynamicRootQuery(this.#dynamicRoot, entityId).then((result) => { - if (result) { - this.startNodeId = result[0]; - } - }); + const result = await this.#dynamicRootRepository.postDynamicRootQuery(this.#dynamicRoot, entityId); + if (result && result.length > 0) { + this.startNodeId = result[0]; + } } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts index cd58d68968..c98490a93f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-origin-picker-modal.element.ts @@ -39,19 +39,18 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle this.modalContext?.reject(); } - #openDocumentPicker(originAlias: string) { - this.#documentPickerContext - .openPicker({ - hideTreeRoot: true, - }) - .then(() => { - const selectedItems = this.#documentPickerContext.getSelection(); - if (selectedItems.length !== 1) return; - this.#submit({ - originAlias, - originKey: selectedItems[0], - }); - }); + async #openDocumentPicker(originAlias: string) { + await this.#documentPickerContext.openPicker({ + hideTreeRoot: true, + }); + + const selectedItems = this.#documentPickerContext.getSelection(); + if (selectedItems.length !== 1) return; + + this.#submit({ + originAlias, + originKey: selectedItems[0], + }); } #submit(value: UmbTreePickerDynamicRoot) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts index b7d7dcd759..1a1eeb259b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dynamic-root/modals/dynamic-root-query-step-picker-modal.element.ts @@ -33,20 +33,19 @@ export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBase this.modalContext?.reject(); } - #openDocumentTypePicker(alias: string) { - this.#documentTypePickerContext - .openPicker({ - hideTreeRoot: true, - pickableFilter: (x) => x.isElement === false, - }) - .then(() => { - const selectedItems = this.#documentTypePickerContext.getSelection(); - this.#submit({ - unique: UmbId.new(), - alias: alias, - anyOfDocTypeKeys: selectedItems, - }); - }); + async #openDocumentTypePicker(alias: string) { + await this.#documentTypePickerContext.openPicker({ + hideTreeRoot: true, + pickableFilter: (x) => x.isElement === false, + }); + + const selectedItems = this.#documentTypePickerContext.getSelection(); + + this.#submit({ + unique: UmbId.new(), + alias: alias, + anyOfDocTypeKeys: selectedItems, + }); } #submit(value: UmbTreePickerDynamicRootQueryStep) { From 4c9a45d2f31df31eef329436bc485170ef792cff Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 6 Feb 2024 10:59:38 +0000 Subject: [PATCH 784/786] DocumentPickerRoot: Tidy-up + refactor Initial markup to ensure the Sorter can hook on to. --- .../input-document-picker-root.element.ts | 108 ++++++++---------- 1 file changed, 50 insertions(+), 58 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index f80ee6ac0e..3109d65a1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -14,9 +14,8 @@ import type { ManifestDynamicRootOrigin, ManifestDynamicRootQueryStep, } from '@umbraco-cms/backoffice/extension-registry'; -import type { UmbModalContext, UmbModalManagerContext } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalContext } from '@umbraco-cms/backoffice/modal'; import type { UmbTreePickerDynamicRoot, UmbTreePickerDynamicRootQueryStep } from '@umbraco-cms/backoffice/components'; -import { query } from '@umbraco-cms/backoffice/router'; @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { @@ -35,7 +34,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #dynamicRootOrigin?: { label: string; icon: string; description?: string }; - #modalContext?: UmbModalManagerContext; + #modalContext?: typeof UMB_MODAL_MANAGER_CONTEXT.TYPE; #openModal?: UmbModalContext; @@ -68,29 +67,24 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl this.#updateDynamicRootQuerySteps(this.data?.querySteps); } - #sorter?: UmbSorterController; - - #initSorter() { - this.#sorter = new UmbSorterController(this, { - getUniqueOfElement: (element) => { - return element.id; - }, - getUniqueOfModel: (modelEntry) => { - return modelEntry.unique; - }, - identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot', - itemSelector: 'uui-ref-node', - containerSelector: '#query-steps', - onChange: ({ model }) => { - if (this.data && this.data.querySteps) { - //const steps = [...this.data.querySteps]; - const querySteps = model; //.map((index) => steps[parseInt(index)]); - this.#updateDynamicRootQuerySteps(querySteps); - this.dispatchEvent(new UmbChangeEvent()); - } - }, - }); - } + #sorter = new UmbSorterController(this, { + getUniqueOfElement: (element) => { + return element.id; + }, + getUniqueOfModel: (modelEntry) => { + return modelEntry.unique; + }, + identifier: 'Umb.SorterIdentifier.InputDocumentPickerRoot', + itemSelector: 'uui-ref-node', + containerSelector: '#query-steps', + onChange: ({ model }) => { + if (this.data && this.data.querySteps) { + const querySteps = model; + this.#updateDynamicRootQuerySteps(querySteps); + this.dispatchEvent(new UmbChangeEvent()); + } + }, + }); #openDynamicRootOriginPicker() { this.#openModal = this.#modalContext?.open(UMB_DYNAMIC_ROOT_ORIGIN_PICKER_MODAL, {}); @@ -127,11 +121,6 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl #updateDynamicRootQuerySteps(querySteps?: Array) { if (!this.data) return; - if (!this.#sorter) { - // NOTE: The sorter controller can only be initialized when the `#query-steps` element is available. [LK] - this.#initSorter(); - } - if (querySteps) { // NOTE: Ensure that the `unique` ID is populated for each query step. [LK] querySteps = querySteps.map((item) => (item.unique ? item : { ...item, unique: UmbId.new() })); @@ -178,10 +167,15 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl } render() { - return html`${this.#renderButton()} ${this.#renderOrigin()}`; + return html` + ${this.#renderAddOriginButton()} + ${this.#renderOrigin()} + ${this.#renderQuerySteps()} + ${this.#renderAddQueryStepButton()} ${this.#renderClearButton()} + `; } - #renderButton() { + #renderAddOriginButton() { if (this.data?.originAlias) return; return html` - - - - - - - - - ${this.#renderQuerySteps()} ${this.#renderAddQueryStepButton()} + + + + + + + `; + } + #renderClearButton() { + if (!this.#dynamicRootOrigin) return; + return html` ${this.localize.term('buttons_clearSelection')} `; } #renderQuerySteps() { if (!this.data?.querySteps) return; - return html` - - ${repeat( - this.data.querySteps, - (item) => item.unique, - (item) => this.#renderQueryStep(item), - )} - - `; + return repeat( + this.data.querySteps, + (item) => item.unique, + (item) => this.#renderQueryStep(item), + ); } #renderQueryStep(item: UmbTreePickerDynamicRootQueryStep) { @@ -245,6 +236,7 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl } #renderAddQueryStepButton() { + if (!this.#dynamicRootOrigin) return; return html` Date: Tue, 6 Feb 2024 12:14:30 +0100 Subject: [PATCH 785/786] update --- src/Umbraco.Web.UI.Client/package-lock.json | 2187 +++++++++---------- src/Umbraco.Web.UI.Client/package.json | 4 +- 2 files changed, 1085 insertions(+), 1106 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index b303bab2c8..3b75add33c 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -12,8 +12,8 @@ "@openid/appauth": "^1.3.1", "@types/dompurify": "^3.0.5", "@types/uuid": "^9.0.8", - "@umbraco-ui/uui": "1.6.0-rc.3", - "@umbraco-ui/uui-css": "1.6.0-rc.3", + "@umbraco-ui/uui": "1.6.2", + "@umbraco-ui/uui-css": "1.6.0", "dompurify": "^3.0.6", "element-internals-polyfill": "^1.3.9", "lit": "^2.8.0", @@ -198,9 +198,9 @@ } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -208,11 +208,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -283,9 +283,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", - "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", + "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -323,9 +323,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -548,14 +548,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" @@ -576,9 +576,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -943,9 +943,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", - "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -1317,9 +1317,9 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", @@ -1734,9 +1734,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.8.tgz", - "integrity": "sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", + "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", @@ -1766,7 +1766,7 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", "@babel/plugin-transform-async-to-generator": "^7.23.3", "@babel/plugin-transform-block-scoped-functions": "^7.23.3", "@babel/plugin-transform-block-scoping": "^7.23.4", @@ -1788,7 +1788,7 @@ "@babel/plugin-transform-member-expression-literals": "^7.23.3", "@babel/plugin-transform-modules-amd": "^7.23.3", "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.23.3", @@ -1814,9 +1814,9 @@ "@babel/plugin-transform-unicode-regex": "^7.23.3", "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -2012,9 +2012,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", - "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2024,23 +2024,23 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.23.5", @@ -2049,8 +2049,8 @@ "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2059,9 +2059,9 @@ } }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", @@ -2123,9 +2123,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", "cpu": [ "ppc64" ], @@ -2629,31 +2629,31 @@ "dev": true }, "node_modules/@floating-ui/core": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.3.tgz", - "integrity": "sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", "dev": true, "dependencies": { - "@floating-ui/utils": "^0.2.0" + "@floating-ui/utils": "^0.2.1" } }, "node_modules/@floating-ui/dom": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.4.tgz", - "integrity": "sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.1.tgz", + "integrity": "sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ==", "dev": true, "dependencies": { - "@floating-ui/core": "^1.5.3", - "@floating-ui/utils": "^0.2.0" + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.1" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.6.tgz", - "integrity": "sha512-IB8aCRFxr8nFkdYZgH+Otd9EVQPJoynxeFRGTB8voPoZMRWo8XjYuCRgpI1btvuKY69XMiLnW+ym7zoBHM90Rw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", "dev": true, "dependencies": { - "@floating-ui/dom": "^1.5.4" + "@floating-ui/dom": "^1.6.1" }, "peerDependencies": { "react": ">=16.8.0", @@ -3107,9 +3107,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -3129,26 +3129,26 @@ "dev": true }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz", - "integrity": "sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", + "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" }, "node_modules/@lit/reactive-element": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.3.tgz", - "integrity": "sha512-e067EuTNNgOHm1tZcc0Ia7TCzD/9ZpoPegHKgesrGK6pSDRGkGDAQbYuQclqLPIoJ9eC8Kb9mYtGryWcM5AywA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", "dev": true, "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.1.2" + "@lit-labs/ssr-dom-shim": "^1.2.0" } }, "node_modules/@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "version": "2.3.12", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", + "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.5" }, "engines": { "node": ">= 0.4" @@ -3379,12 +3379,12 @@ } }, "node_modules/@playwright/test": { - "version": "1.41.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.1.tgz", - "integrity": "sha512-9g8EWTjiQ9yFBXc6HjCWe41msLpxEX0KhmfmPl9RPLJdfzL4F0lg2BdJ91O9azFdl11y1pmpwdjBiSxvqc+btw==", + "version": "1.41.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.2.tgz", + "integrity": "sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==", "dev": true, "dependencies": { - "playwright": "1.41.1" + "playwright": "1.41.2" }, "bin": { "playwright": "cli.js" @@ -5036,9 +5036,9 @@ } }, "node_modules/@storybook/cli/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5207,9 +5207,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", - "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", + "version": "18.19.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", + "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5356,9 +5356,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", - "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", + "version": "18.19.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.14.tgz", + "integrity": "sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5417,9 +5417,9 @@ } }, "node_modules/@storybook/core-server/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5966,9 +5966,9 @@ "dev": true }, "node_modules/@types/cookies": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.10.tgz", - "integrity": "sha512-hmUCjAk2fwZVPPkkPBcI7jGLIR5mg4OVoNMBwU6aVsMm/iNPY7z9/R+x2fSwLt/ZXoGua6C5Zy2k5xOo9jUyhQ==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", + "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", "dev": true, "dependencies": { "@types/connect": "*", @@ -6052,9 +6052,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", "dev": true, "dependencies": { "@types/node": "*", @@ -6222,9 +6222,9 @@ } }, "node_modules/@types/mdx": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.10.tgz", - "integrity": "sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.11.tgz", + "integrity": "sha512-HM5bwOaIQJIQbAYfax35HCKxx7a3KrK3nBtIqJgSOitivTD1y3oW9P3rxY9RkXYPUk7y/AjAohfHKmFpGE79zw==", "dev": true }, "node_modules/@types/mime": { @@ -6252,9 +6252,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", - "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", + "version": "20.11.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", + "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6307,9 +6307,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.48", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz", - "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==", + "version": "18.2.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz", + "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -6455,16 +6455,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", - "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/type-utils": "6.19.0", - "@typescript-eslint/utils": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -6502,9 +6502,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6523,15 +6523,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", - "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4" }, "engines": { @@ -6551,13 +6551,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", - "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -6568,13 +6568,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", - "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -6595,9 +6595,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -6608,13 +6608,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -6648,9 +6648,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6669,17 +6669,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", - "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", "semver": "^7.5.4" }, "engines": { @@ -6706,9 +6706,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6727,12 +6727,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/types": "6.21.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -6744,846 +6744,814 @@ } }, "node_modules/@umbraco-ui/uui": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.6.0-rc.3.tgz", - "integrity": "sha512-nOqoQ+U9X+oLWP62o3owXYuXQtVK8DRNpQsFPDkVjFtqsm/oKydt/PCQgEivwNptjOpA9Qea+8ZoPsg0FqEsNQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.6.2.tgz", + "integrity": "sha512-YX5/UuQPtdaiTKDyImNwcUf3am6Jaok8rTdJqDkURa8k/QLL9GHm7lUzgJftursNIyY+XGoO9b096pylf3G6MA==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.6.0-rc.3", - "@umbraco-ui/uui-avatar": "1.6.0-rc.3", - "@umbraco-ui/uui-avatar-group": "1.6.0-rc.3", - "@umbraco-ui/uui-badge": "1.6.0-rc.3", - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-boolean-input": "1.6.0-rc.3", - "@umbraco-ui/uui-box": "1.6.0-rc.3", - "@umbraco-ui/uui-breadcrumbs": "1.6.0-rc.3", - "@umbraco-ui/uui-button": "1.6.0-rc.3", - "@umbraco-ui/uui-button-group": "1.6.0-rc.3", - "@umbraco-ui/uui-button-inline-create": "1.6.0-rc.3", - "@umbraco-ui/uui-card": "1.6.0-rc.3", - "@umbraco-ui/uui-card-block-type": "1.6.0-rc.3", - "@umbraco-ui/uui-card-content-node": "1.6.0-rc.3", - "@umbraco-ui/uui-card-media": "1.6.0-rc.3", - "@umbraco-ui/uui-card-user": "1.6.0-rc.3", - "@umbraco-ui/uui-caret": "1.6.0-rc.3", - "@umbraco-ui/uui-checkbox": "1.6.0-rc.3", - "@umbraco-ui/uui-color-area": "1.6.0-rc.3", - "@umbraco-ui/uui-color-picker": "1.6.0-rc.3", - "@umbraco-ui/uui-color-slider": "1.6.0-rc.3", - "@umbraco-ui/uui-color-swatch": "1.6.0-rc.3", - "@umbraco-ui/uui-color-swatches": "1.6.0-rc.3", - "@umbraco-ui/uui-combobox": "1.6.0-rc.3", - "@umbraco-ui/uui-combobox-list": "1.6.0-rc.3", - "@umbraco-ui/uui-css": "1.6.0-rc.3", - "@umbraco-ui/uui-dialog": "1.6.0-rc.3", - "@umbraco-ui/uui-dialog-layout": "1.6.0-rc.3", - "@umbraco-ui/uui-file-dropzone": "1.6.0-rc.3", - "@umbraco-ui/uui-file-preview": "1.6.0-rc.3", - "@umbraco-ui/uui-form": "1.6.0-rc.3", - "@umbraco-ui/uui-form-layout-item": "1.6.0-rc.3", - "@umbraco-ui/uui-form-validation-message": "1.6.0-rc.3", - "@umbraco-ui/uui-icon": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3", - "@umbraco-ui/uui-input": "1.6.0-rc.3", - "@umbraco-ui/uui-input-file": "1.6.0-rc.3", - "@umbraco-ui/uui-input-lock": "1.6.0-rc.3", - "@umbraco-ui/uui-input-password": "1.6.0-rc.3", - "@umbraco-ui/uui-keyboard-shortcut": "1.6.0-rc.3", - "@umbraco-ui/uui-label": "1.6.0-rc.3", - "@umbraco-ui/uui-loader": "1.6.0-rc.3", - "@umbraco-ui/uui-loader-bar": "1.6.0-rc.3", - "@umbraco-ui/uui-loader-circle": "1.6.0-rc.3", - "@umbraco-ui/uui-menu-item": "1.6.0-rc.3", - "@umbraco-ui/uui-modal": "1.6.0-rc.3", - "@umbraco-ui/uui-pagination": "1.6.0-rc.3", - "@umbraco-ui/uui-popover": "1.6.0-rc.3", - "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", - "@umbraco-ui/uui-progress-bar": "1.6.0-rc.3", - "@umbraco-ui/uui-radio": "1.6.0-rc.3", - "@umbraco-ui/uui-range-slider": "1.6.0-rc.3", - "@umbraco-ui/uui-ref": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-list": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node-data-type": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node-document-type": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node-form": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node-member": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node-package": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node-user": "1.6.0-rc.3", - "@umbraco-ui/uui-scroll-container": "1.6.0-rc.3", - "@umbraco-ui/uui-select": "1.6.0-rc.3", - "@umbraco-ui/uui-slider": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-file": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-lock": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-more": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-sort": "1.6.0-rc.3", - "@umbraco-ui/uui-table": "1.6.0-rc.3", - "@umbraco-ui/uui-tabs": "1.6.0-rc.3", - "@umbraco-ui/uui-tag": "1.6.0-rc.3", - "@umbraco-ui/uui-textarea": "1.6.0-rc.3", - "@umbraco-ui/uui-toast-notification": "1.6.0-rc.3", - "@umbraco-ui/uui-toast-notification-container": "1.6.0-rc.3", - "@umbraco-ui/uui-toast-notification-layout": "1.6.0-rc.3", - "@umbraco-ui/uui-toggle": "1.6.0-rc.3", - "@umbraco-ui/uui-visually-hidden": "1.6.0-rc.3" + "@umbraco-ui/uui-action-bar": "1.6.0", + "@umbraco-ui/uui-avatar": "1.6.0", + "@umbraco-ui/uui-avatar-group": "1.6.0", + "@umbraco-ui/uui-badge": "1.6.0", + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-boolean-input": "1.6.0", + "@umbraco-ui/uui-box": "1.6.2", + "@umbraco-ui/uui-breadcrumbs": "1.6.0", + "@umbraco-ui/uui-button": "1.6.0", + "@umbraco-ui/uui-button-group": "1.6.0", + "@umbraco-ui/uui-button-inline-create": "1.6.0", + "@umbraco-ui/uui-card": "1.6.0", + "@umbraco-ui/uui-card-block-type": "1.6.0", + "@umbraco-ui/uui-card-content-node": "1.6.0", + "@umbraco-ui/uui-card-media": "1.6.0", + "@umbraco-ui/uui-card-user": "1.6.0", + "@umbraco-ui/uui-caret": "1.6.0", + "@umbraco-ui/uui-checkbox": "1.6.0", + "@umbraco-ui/uui-color-area": "1.6.0", + "@umbraco-ui/uui-color-picker": "1.6.0", + "@umbraco-ui/uui-color-slider": "1.6.0", + "@umbraco-ui/uui-color-swatch": "1.6.0", + "@umbraco-ui/uui-color-swatches": "1.6.0", + "@umbraco-ui/uui-combobox": "1.6.0", + "@umbraco-ui/uui-combobox-list": "1.6.0", + "@umbraco-ui/uui-css": "1.6.0", + "@umbraco-ui/uui-dialog": "1.6.2", + "@umbraco-ui/uui-dialog-layout": "1.6.0", + "@umbraco-ui/uui-file-dropzone": "1.6.0", + "@umbraco-ui/uui-file-preview": "1.6.0", + "@umbraco-ui/uui-form": "1.6.0", + "@umbraco-ui/uui-form-layout-item": "1.6.0", + "@umbraco-ui/uui-form-validation-message": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0", + "@umbraco-ui/uui-icon-registry": "1.6.0", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0", + "@umbraco-ui/uui-input": "1.6.0", + "@umbraco-ui/uui-input-file": "1.6.0", + "@umbraco-ui/uui-input-lock": "1.6.0", + "@umbraco-ui/uui-input-password": "1.6.0", + "@umbraco-ui/uui-keyboard-shortcut": "1.6.0", + "@umbraco-ui/uui-label": "1.6.0", + "@umbraco-ui/uui-loader": "1.6.0", + "@umbraco-ui/uui-loader-bar": "1.6.0", + "@umbraco-ui/uui-loader-circle": "1.6.0", + "@umbraco-ui/uui-menu-item": "1.6.0", + "@umbraco-ui/uui-modal": "1.6.0", + "@umbraco-ui/uui-pagination": "1.6.0", + "@umbraco-ui/uui-popover": "1.6.0", + "@umbraco-ui/uui-popover-container": "1.6.0", + "@umbraco-ui/uui-progress-bar": "1.6.0", + "@umbraco-ui/uui-radio": "1.6.0", + "@umbraco-ui/uui-range-slider": "1.6.0", + "@umbraco-ui/uui-ref": "1.6.0", + "@umbraco-ui/uui-ref-list": "1.6.0", + "@umbraco-ui/uui-ref-node": "1.6.0", + "@umbraco-ui/uui-ref-node-data-type": "1.6.0", + "@umbraco-ui/uui-ref-node-document-type": "1.6.0", + "@umbraco-ui/uui-ref-node-form": "1.6.0", + "@umbraco-ui/uui-ref-node-member": "1.6.0", + "@umbraco-ui/uui-ref-node-package": "1.6.0", + "@umbraco-ui/uui-ref-node-user": "1.6.0", + "@umbraco-ui/uui-scroll-container": "1.6.0", + "@umbraco-ui/uui-select": "1.6.0", + "@umbraco-ui/uui-slider": "1.6.0", + "@umbraco-ui/uui-symbol-expand": "1.6.0", + "@umbraco-ui/uui-symbol-file": "1.6.0", + "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0", + "@umbraco-ui/uui-symbol-folder": "1.6.0", + "@umbraco-ui/uui-symbol-lock": "1.6.0", + "@umbraco-ui/uui-symbol-more": "1.6.0", + "@umbraco-ui/uui-symbol-sort": "1.6.0", + "@umbraco-ui/uui-table": "1.6.0", + "@umbraco-ui/uui-tabs": "1.6.1", + "@umbraco-ui/uui-tag": "1.6.0", + "@umbraco-ui/uui-textarea": "1.6.0", + "@umbraco-ui/uui-toast-notification": "1.6.2", + "@umbraco-ui/uui-toast-notification-container": "1.6.2", + "@umbraco-ui/uui-toast-notification-layout": "1.6.2", + "@umbraco-ui/uui-toggle": "1.6.0", + "@umbraco-ui/uui-visually-hidden": "1.6.0" } }, "node_modules/@umbraco-ui/uui-action-bar": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.6.0-rc.3.tgz", - "integrity": "sha512-8tTgTQ7Qekifi098cRVmoLpx9IrWdVbs2Egv7toAkaEkGx4e195YVNVYc1nXhO/wbbMLe2rx2r765rsUXkAelw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.6.0.tgz", + "integrity": "sha512-4O5wiRxbi3kW9fiRbBBdRIYyvH0fM+roQAP/e24Tctcr+L/JzUIcGjJsVpvDe0uy4ERX4MjUjWVpTT3Gw+sMow==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-button-group": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-button-group": "1.6.0" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.6.0-rc.3.tgz", - "integrity": "sha512-iCSwVNCGk/I+febTD4Snvf5/kARawGJLkGR6Uy7WylEAvOhjWYdYg45d9kAjwQdEssCdKFy6DJ66NpDRxieneA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.6.0.tgz", + "integrity": "sha512-HOS9ksBuyRnIP+OM0gvGqyisfNzWEh1udb6KjTmlraco6OUw6D6CO9CYLT/SB34Tvqr59boIJROYxvcaCoC+Tg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.6.0-rc.3.tgz", - "integrity": "sha512-gG/nWjArhQxAos4hifh+NxZtobOQ7yu2CcEVzqlU+zRFm9ECp9DbrxrRIbhinJYSlWsz+89SrxyTaGOyC/mgQQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.6.0.tgz", + "integrity": "sha512-8X41hCoYac0/0tLNws1DtpNYvONdITVsoxPYWM4U/VmAAM/nERoNfYl11sx0f+s5Cq8QG4Bnmo7/DRZYPamPCA==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.6.0-rc.3", - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-avatar": "1.6.0", + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.6.0-rc.3.tgz", - "integrity": "sha512-3Zrx14sg6gNC8reYq8e+xHBMJBqlsU9jhC7eNnsfdMJ55le+62UtWMcd9NtlAdD6d6f8lChEkRaSHHRSvVztnA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.6.0.tgz", + "integrity": "sha512-1yR817zW8/CQZUulXVfzvQp6eeh8j59j1SMjSAwk3EmJ1aEwgkl0DdpT1NNsb0aqrFzitzLwhjdFACPk4j/jhQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.6.0-rc.3.tgz", - "integrity": "sha512-7oFba1uLM0Rlcdb9Vt5fR2WvT0w8e6kWTBGfqqmX+0qxWKhh7DEr0UnTHLUnEjxWCQnv5k+lYSRjsIy/LPnHCA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.6.0.tgz", + "integrity": "sha512-+Z4/rSf4zo+SLN0xN0bjjrSBO0UJ2DSySnJbv43k104hB7/pailwIzgjF/4fWvF4RtDANxRq/MZWHApVWdSFhA==", "dependencies": { "lit": "^2.3.1" } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.6.0-rc.3.tgz", - "integrity": "sha512-K+qQ3rSlNd0J9ax4Hs0d03c+w1Hf2V+BjdRLzgqn4quUwo0zTW+F5wgBKI3fYTKweIOh6MpWasvN8CewWj3w6g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.6.0.tgz", + "integrity": "sha512-xhumvCyKrH/BcprTuoIYH0HzDPgH5nCqZjBCxV42WacSDLKDno1jxbaGIiCYlDTDgjSayB6Hpn8pxaWAVd7t9g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.6.0-rc.3.tgz", - "integrity": "sha512-XGEiKar1hzLDzRpU3c1eX6GmoUdB//4TGE1V1mIgnzUQm6FZTHTQx0t3BeGhveU9UN0d2yh4sFmR97+B9ZhXng==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.6.2.tgz", + "integrity": "sha512-NOmZLxbo5gga3xVCe1qjvIIoitNmUTcrKbI4zR65lOOuja0gdHD1ym6rOKpYBf0vYlbe11L8DZbGsiXDRZqJcg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-css": "1.4.0" - } - }, - "node_modules/@umbraco-ui/uui-box/node_modules/@umbraco-ui/uui-css": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.4.0.tgz", - "integrity": "sha512-HBCFPuXJijeZbjnjdqmg3oqOGB3RmpQKT/s/Uy0TSJfaQGfz0e73o2eRghYHWF2rdqHw6brKFrZTZHBVvCE/xA==", - "dependencies": { - "lit": "^2.2.2" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-css": "1.6.0" } }, "node_modules/@umbraco-ui/uui-breadcrumbs": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.6.0-rc.3.tgz", - "integrity": "sha512-ZA2+WwXPLErcvvlWrTXsKgWIrKBPZh57TIq2cFxVu46eGGobi8u7DLpvFETJFOVJWz3bLiFfPluf76vvkAfLPw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.6.0.tgz", + "integrity": "sha512-HDEooGvMkQAqndSm3SUT/kRY6nm4zzU2IqRcs8Qj8kY7Zfel/Uj+tE9nTRXyJE91POAkS0/iYrHw20rAY4wHFA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.6.0-rc.3.tgz", - "integrity": "sha512-0VEaOoQGPZYqSQG5seRx9bS5iXWINUNIKB3C02D9LhhSANkWXfpShC2TLqT7SWIdYvgTd24EFB4mda+UNCitPA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.6.0.tgz", + "integrity": "sha512-cSTQn2CjfUCE3Ft1I0kOSailuKD3NKxHD0HET8h7CJQbVr/R974vMNxLd82OWIwh/O+fyW4MUjKlw38T6W9o0A==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0" } }, "node_modules/@umbraco-ui/uui-button-group": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.6.0-rc.3.tgz", - "integrity": "sha512-rp//K2LdGrTVi0dfgwy4SCCMdZkUoJZ6/I/wnRCDRcR9L6rSJmR14PQVcV3OCt4yY4rxBdVIzP8FUff46qDryg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.6.0.tgz", + "integrity": "sha512-ecuBV/+y9wn3lm2WaqgEOx6iB+m+351JwTGN0ZhQjGqH/0X2kSWeLIWbqa8JBXSvjKVyaxNwPZLuwV6QU3STkA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.6.0-rc.3.tgz", - "integrity": "sha512-UJ2NA5AV1EDU/q2rT5kWWepln0xbUZfvAN3P492aB59cM+yfl8j6eWUZRak/+pf02BhCKdQn0nd+IQUqRYKCXA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.6.0.tgz", + "integrity": "sha512-rrsAFj48mELkVNeqL6bgUrfzs7QUuOxqFJo7Ffa6K+WDrqNNYQokO6YHjncU/J/lYDduFY/qhMyfgzYgZgDgWA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.6.0-rc.3.tgz", - "integrity": "sha512-U7Odx6mmS3gHa7eeWMPdwLUKy3nnqoAGK+ZREAKZvOcHOMklaHBRxcAXZfAuXD60saPJAGCeX4hPvQLbx5J2/g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.6.0.tgz", + "integrity": "sha512-v5NWiY3NOTaGQJt6zc/3rrLDy4gIileySwttGJD4+Fg8x5g2tS0igdiYZlqu6feieuTfw7HxUVvwK9mC81neAA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-card-block-type": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.6.0-rc.3.tgz", - "integrity": "sha512-9BbzD0uHLw1uqVth7lcDxlPiEFFDi/Rw4o1h27FosrV0satvKr4G3FKXlVbJm8ECOdsvkYaUzHTcHJK5tgmURw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.6.0.tgz", + "integrity": "sha512-2c4QV4PlmqwYYiTBDkyq2xDPrTh7U5iosZQNtEvNul6/+nbHitMlbC8KkbRz6D9K97iyEMHWifEeioA6uygBCA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-card": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-card": "1.6.0" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.6.0-rc.3.tgz", - "integrity": "sha512-BEk+TsaFbohZCwjPEUlzqGrtGAAbM93j4yQPF2qH+5BrWHlSwCl5icwtDZjzSyM/X7GkZCOnLdEg/7Km+4GjoA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.6.0.tgz", + "integrity": "sha512-MiZz6Postf+1JE43+4IDrQEqiVhf76lkfWcdD2rb2sao+PzCL0DLiRWzvVZ4NoyOen/5tYgBHTQsBHDXYLtloQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-card": "1.6.0-rc.3", - "@umbraco-ui/uui-icon": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-card": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0" } }, "node_modules/@umbraco-ui/uui-card-media": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.6.0-rc.3.tgz", - "integrity": "sha512-rubexgXf/ocdGQ46yU3cFZVeNaTp6tuplDQwIAP8+KG4HMrdnsp/rP2udAKDey1/ecFtbWJT+Re1K/I4As1oxQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.6.0.tgz", + "integrity": "sha512-y569vkxLkkgAcjOVvh5AdGE+S49Oha/evKh9EPUcq0ZhZHiZ0JjHIHRDlGcviQq7co9ThCLXVzWjA8Mm+MlXdg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-card": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-file": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-card": "1.6.0", + "@umbraco-ui/uui-symbol-file": "1.6.0", + "@umbraco-ui/uui-symbol-folder": "1.6.0" } }, "node_modules/@umbraco-ui/uui-card-user": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.6.0-rc.3.tgz", - "integrity": "sha512-a7xdnfTSUtVBDMhKdyiZULQi4gr15aGBCaAxN1ZNXOYDIxaOL3jrkq3VEskjKvgtUMSa4+jR/8wVePHJ55U0NQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.6.0.tgz", + "integrity": "sha512-4pNUmtzIXqalnU4rZ5qPPZ8PT8dwT/VaZTLHqzRMZ8v0FXK0qCks4E3qw7zm5xB9dWKsxxN2v9c/B8yeRavNmQ==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.6.0-rc.3", - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-card": "1.6.0-rc.3" + "@umbraco-ui/uui-avatar": "1.6.0", + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-card": "1.6.0" } }, "node_modules/@umbraco-ui/uui-caret": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.6.0-rc.3.tgz", - "integrity": "sha512-O1fbSI3FK8BfP/L9FVjUpC9ZJrUPM00+FYL0YXXQr2hsfp+EbwDbY9cD5Kwngk3+INzM+4vlKb56gf+i/hITKw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.6.0.tgz", + "integrity": "sha512-gwXtT0/R/Okgae+4t7ZP5QgEayIKhKPu7rMeUe6DcVi29o06vKsnmHubfAVva+E11DfO2tb1JDHDaV6h014LVA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.6.0-rc.3.tgz", - "integrity": "sha512-LsiW20ZU4QAwZRuT6fEjEQxfWjbt4M7ZBI4152OrueyLgcFX060qVgWItLszGNPlrVYAVIHYNf2jdYF6JEfudA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.6.0.tgz", + "integrity": "sha512-5X/V3D+MrIul3D+sqaGgZmFNUflsMwH9NYfxrRcxV1juNkaoHXDf+AGJNB0VWwKrMwCzv64rf+bVyFaOkZ3kyg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-boolean-input": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-boolean-input": "1.6.0", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0" } }, "node_modules/@umbraco-ui/uui-color-area": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.6.0-rc.3.tgz", - "integrity": "sha512-rlol64MAtE0DvXUaC4hXncwH9H7iMIpHu4BJVUnVOWz4esEo+TnaKRPqXKZfnE/ZJR40JafwkHBaA1bkXtQqnw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.6.0.tgz", + "integrity": "sha512-xeIiLx1NOOdGfAb195BydRAKMXcWzW1gfSdoHFGAty+5Vg1IVtVymg643wHgySYeaxfyJwQtB3PQscGRodrL3w==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", + "@umbraco-ui/uui-base": "1.6.0", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-picker": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.6.0-rc.3.tgz", - "integrity": "sha512-PFYWxzKUJPNCxI48rWzBs3KVJNATjuK9z1hjjSLCM8xUL79UoG2dnL6JZEgAqWQ28jIxcAMaCl2zQu/68NzR1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.6.0.tgz", + "integrity": "sha512-kOgKAxT7b/OfUItDmU2zf67RZyl4hkzXn4oyGJln+5mCu3RCzD0fJnHE8pdna9lBBNTGeklgUm/OFgokmhIBDw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-popover-container": "1.6.0", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-slider": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.6.0-rc.3.tgz", - "integrity": "sha512-njepSEiDyxOsl20wIGMXJCBSbuYqcvHoLhZhLhL8SmGiw0oC9OFS7dDi1Kbhu0lyrhafHaFg2RxO42VpqkyG0g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.6.0.tgz", + "integrity": "sha512-D32sdaaw9v2V5su5DyyGI+lMc3UGUZkSNfh6SEAt9sHKzR/xIysdPu88DX4MsBAik/D1RxlgGIxGH5sqsePj5g==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-color-swatch": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.6.0-rc.3.tgz", - "integrity": "sha512-ThfJ4ygFp3JM2gb7oIjttOvI1yGgkksVgZvVPBKnPwQwmQp1bR6exnxRCdDOUL0n4bfT6DM/mrpE5LeQMIlSfw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.6.0.tgz", + "integrity": "sha512-8PRXImQ4gHFU7jU0azpN+z/ej9ad4lqQHpHn5mS7gzoKYcYY60k567JHQk3cBNbthrzHXrFxpNGC/TkLApGWhQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3", + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-swatches": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.6.0-rc.3.tgz", - "integrity": "sha512-+J6VBf+amU9c2EiMPqSVmWcpZ9aKh9mQHOecgRlfcGlhDgT+H57krbM3Lz7ZBPHl4AIDQaSBO+ouxBAW2Q4B/g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.6.0.tgz", + "integrity": "sha512-M7acW/G0FskxDFU5B88KVMNmdso2rIbrl6vHk/bGZG7h1wElCDTseGRWGnGxVu4vHdvetLs6m5u7kjdXCqX3TA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-color-swatch": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-color-swatch": "1.6.0" } }, "node_modules/@umbraco-ui/uui-combobox": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.6.0-rc.3.tgz", - "integrity": "sha512-c3NUkUtr4IeZitZlmYkIbvkB4nPtiICAxgBkZTzfdjqLSjzB+LAFn0rIew9qq1k+2SI5ZwyD5vb7sYRKfP3oIA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.6.0.tgz", + "integrity": "sha512-AihlfdfUZ7+wY2fRKtlDIC5s018t+kEpkEXSqbsX/srRKt8SrHyrPROH4QNtzfqEjzWUGHdl+Jdqt1zP9ObLyA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-button": "1.6.0-rc.3", - "@umbraco-ui/uui-combobox-list": "1.6.0-rc.3", - "@umbraco-ui/uui-icon": "1.6.0-rc.3", - "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", - "@umbraco-ui/uui-scroll-container": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-button": "1.6.0", + "@umbraco-ui/uui-combobox-list": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0", + "@umbraco-ui/uui-popover-container": "1.6.0", + "@umbraco-ui/uui-scroll-container": "1.6.0", + "@umbraco-ui/uui-symbol-expand": "1.6.0" } }, "node_modules/@umbraco-ui/uui-combobox-list": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.6.0-rc.3.tgz", - "integrity": "sha512-5aCold3zI2hoZ/CK2hzS+kuGUdpmoUz9jf/93D4yBbz8GTf2wDxsmslUuhDnzJ8pIg22+osYT01k4R8lRpchOA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.6.0.tgz", + "integrity": "sha512-zBUbJ61OWgmKYF7I8gGj1fUh8d98js1mzVedzuzHDIfYJbuNB0Vgr+3GJ9rt2p0zRxYzEDO+dX+QSU6EDdnXLA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.6.0-rc.3.tgz", - "integrity": "sha512-9AxeLE+yHmDHagpB1sO++l5mHuj5iFi7dz+JwFG9UxXzII+wvCkpWSlgH55+fyh5eEGkyXqZWA50/ismUytw/A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.6.0.tgz", + "integrity": "sha512-mvepeDyrEixPQhTL39MPCzV+t1KZUEaYPdGfQVqNdf9qtH8YN2mXfDwanxMNDSvwDl+bl4A6hisGc4LYn6hL4w==", "dependencies": { "lit": "^2.2.2" } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.6.0-rc.3.tgz", - "integrity": "sha512-oPVdMZt4TxgnTdeMApQz4qMGLDbF65mYQH2qhro+SU7379ftGNO9euv2SmZGDDKT8/1iI0nS8AuD8m1TBwZ+PQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.6.2.tgz", + "integrity": "sha512-D75CcXZU0YsHO0gsLqJqWCTLBSjNQQXMNJPIru9ilDPs/A5E+n1EjKVRetWJAmpPWn9it4bWaoZvH549vKesHA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-css": "1.4.0" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-css": "1.6.0" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.6.0-rc.3.tgz", - "integrity": "sha512-7rnywVNdShFHAWPkylQIieD2s2Vy53u/ZINCK2HuG0XmMDVxRbG9q3Tpn09vqOxGmI+4/SBO0UkJoq+yPNe+bA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.6.0.tgz", + "integrity": "sha512-nB4KrZ5qLZv3Kbn5KOtOUSdH6Y7fjjeD862N0kNOPA66f4mEA4XcJa6vyCxIK/fFv9e8mxCllJxtx3K3D8gEhQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" - } - }, - "node_modules/@umbraco-ui/uui-dialog/node_modules/@umbraco-ui/uui-css": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.4.0.tgz", - "integrity": "sha512-HBCFPuXJijeZbjnjdqmg3oqOGB3RmpQKT/s/Uy0TSJfaQGfz0e73o2eRghYHWF2rdqHw6brKFrZTZHBVvCE/xA==", - "dependencies": { - "lit": "^2.2.2" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-file-dropzone": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.6.0-rc.3.tgz", - "integrity": "sha512-clBeuuCTQmx2Jh2gApLBSHAfhRkdx1VZxRqvMlkjggcxIEVYc7joIRApOrL1Ea0u/vg9ZP3v3Wos4P5OQ4BTcA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.6.0.tgz", + "integrity": "sha512-CJhPinKKSMtGcjoaaPwR89tF9e1CM7GgzHxW44zwPiX/raQt1aMafRfqLG5zOWzwhkzb346HXy8n/ufhVRdzKQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-symbol-file-dropzone": "1.6.0" } }, "node_modules/@umbraco-ui/uui-file-preview": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.6.0-rc.3.tgz", - "integrity": "sha512-sJv0qDdNFfc3koY38VO0NJYcSf5Ydoqq86I+4dzBZZYzXXsxkJlPdwgpLIwz/klJOqmwZLNZRl7IivqVRiIcMA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.6.0.tgz", + "integrity": "sha512-Wq7FGjYsXfPbuyNc9jDkf7wRm3G9ffX/pv3W69OVNCOwW1bWOfXg6ZrCA44wso1wfh4Bp3srBw93uBLe7SO0NQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-file": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-folder": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-symbol-file": "1.6.0", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.6.0", + "@umbraco-ui/uui-symbol-folder": "1.6.0" } }, "node_modules/@umbraco-ui/uui-form": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.6.0-rc.3.tgz", - "integrity": "sha512-NGx/pN98Iu301wXDA8Qh6liOA0AMmDKtfvcVNkbB33pq05IAkPKYZx2M6IbyFyxPPnoTuZfibRzforoS3943PQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.6.0.tgz", + "integrity": "sha512-KU1Y/ol3ltEsGMNDsUuC/QoaWs23QVboIY8qGRDElDF42n17XDq4Z59Y8Z7AKIxA9zhS8waJpZW2wjnkVAg5BQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.6.0-rc.3.tgz", - "integrity": "sha512-x5jjkbGra1y5rALXO0LB6J359mj+6uvYqPgkyVzWwclPdTb4zmK/ysS3ZmzablGocrs3iw2g5oXWi3qS7s5FVA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.6.0.tgz", + "integrity": "sha512-raCu2MeJchmHXeb9GwIriRurR5zivG/3V89Vfo4pB06Qu64jf1fVNhDSGe/em8lzXjIZJfDe6k5/OnvvLBx6rg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-form-validation-message": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-form-validation-message": "1.6.0" } }, "node_modules/@umbraco-ui/uui-form-validation-message": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.6.0-rc.3.tgz", - "integrity": "sha512-Dk5WTy5uUmxOj85d381YJYYFMJJ4CAIq2N7Gww02xZ+hY/I2fg6KJMkx1E49SPqXCMSX4zFZKktjhZ54s11Law==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.6.0.tgz", + "integrity": "sha512-ghy+FusI2mFLKF/wMaZ0TtJqRKhrqnaBdB9Ae6c+Y7mN9Bs8mphTMyO7CNyLJkCenUiwqPu4Aof4N2aALcekwA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.6.0-rc.3.tgz", - "integrity": "sha512-AMTV58MIjELlNe/BQPsvvjxrt8IARL0yHr6J9RobiUQ/AzkFWKdbTMHzYvt+qzYHfTeV8Cvgj7lej82Adlo34Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.6.0.tgz", + "integrity": "sha512-nlKs+ANdGMw4nOsdq1hXCZpiuE189ufm0dtmoTUvetDozeb7ghvsqjqR8eRz4UXI2jzPeHkK3nE1Gd93aE7AcA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.6.0-rc.3.tgz", - "integrity": "sha512-3HNv+Z2La1ijxvX03E8ICN/S1xvW3EQ4ln7ZFI3QVP5iCrcqXjbBGF3n+G0jjQpKkPqq0ZJOTltIba9wYLUPRw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.6.0.tgz", + "integrity": "sha512-oTwGsPxaG5eQInmwwf31FZWi9zawW+9YHjLPmGE+z8Chy+L+EaB0c1oABqVR2c/j5wlOnEiv06Itlz2uKXzILg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-icon": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0" } }, "node_modules/@umbraco-ui/uui-icon-registry-essential": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.6.0-rc.3.tgz", - "integrity": "sha512-N2ZKpFRhwa+qud83ca3SV5OeIQ6mF0DpwhVGmX1ZdxObFLPrjz3Mh0oi+PhWqPXAG5c+4GPwAxYSJD8sHVR/RQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.6.0.tgz", + "integrity": "sha512-Fhoa2Ll1ZttdNnXHPj+87+Y/aFjb2CoTKWPLdLY22901Z23vB4fpJPaijP9osmC7wvorSPD+u9RmHZQom5zC0w==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-icon-registry": "1.6.0" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.6.0-rc.3.tgz", - "integrity": "sha512-4EWPpzNi4HTex9uE7Rc2ePhinDwHPj0U1qThLsr7orbvnlS+v3eHNXQ+g8HwOApgRwvqr5yk5D/cxydQ77G2vQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.6.0.tgz", + "integrity": "sha512-eoJkK7DXVTNpdfJ1P6Epc/HieU9njjRk15xhUKAkwIZxAzMRPHq870hHvtbIzGfNPzHJ3OaI+qRLeIqusNfrdg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.6.0-rc.3.tgz", - "integrity": "sha512-YrFipURVGvEAGiIEX3zaaqDt5FGz5DLYyuydld5Mrbd0EJbxJDttosrtWor0XkmRStyOBycLxT8NK7FCuaCHBA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.6.0.tgz", + "integrity": "sha512-Lcgm46iQi8TBv3CVTd+5THcg3TLA9zj5wgbqgAS2ccu66ZGna4L7LLI7U1WaDN0CCtun3MlkgKh5xPXaayCvhA==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.6.0-rc.3", - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-button": "1.6.0-rc.3", - "@umbraco-ui/uui-file-dropzone": "1.6.0-rc.3", - "@umbraco-ui/uui-icon": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" + "@umbraco-ui/uui-action-bar": "1.6.0", + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-button": "1.6.0", + "@umbraco-ui/uui-file-dropzone": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0" } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.6.0-rc.3.tgz", - "integrity": "sha512-5oIAOqwkJi6OXmh8laF/6+0zK76nXXSD/IiWMUauup7YUyu29Ocak8TUF+d5F8123aBjdcCvvzd7ExMXEpTAIQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.6.0.tgz", + "integrity": "sha512-PABZV0EoynQulo7rC9quXdEjgEtVM7tTCRlm6hx7cU0o6l6RvLJ4E6uoEDTpB1F4IocaZvPQsw7JvykCORAoxg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-button": "1.6.0-rc.3", - "@umbraco-ui/uui-icon": "1.6.0-rc.3", - "@umbraco-ui/uui-input": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-button": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0", + "@umbraco-ui/uui-input": "1.6.0" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.6.0-rc.3.tgz", - "integrity": "sha512-2YOBq26v/d4DXsEY4BXjpQhzCtt5+5Rwp1n5wK4IL33hTvR4XbPHu0mFFFMFSjimc2QaWCz5niF9ihpBkJlqrg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.6.0.tgz", + "integrity": "sha512-y0YipO+8Sxkk80o17KDwYJ+ZD9BVLFzOkFNhAxqtkV2j7wJA3KgVLQu3gcOi52rpne/9way1a3kijtc0eWMomw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3", - "@umbraco-ui/uui-input": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0", + "@umbraco-ui/uui-input": "1.6.0" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.6.0-rc.3.tgz", - "integrity": "sha512-trIbq4rceeXgoAeqj0ScQZ8vZWCTgecF6sWWkA53ThXbLBTk/C1GerrzO8KFHGgO9hVmsBwHmEk39+yD9sHmnQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.6.0.tgz", + "integrity": "sha512-ZDVNlrE19RNl2m7NA3CnNNWoWMOmm2iZMEhxy/3DSo4BcFQpknNrsc3IvDhZpXlFh5rA1+D9J+Zo3V7B3ZqSvQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.6.0-rc.3.tgz", - "integrity": "sha512-cudhsbX8wSnBWKoWZFpIbm56gHpRkXU4Q4egtxtjV2pLBnCN/GybqNn9wYqcgNc6lDKyvxXXSEFoOeA5ElQmQg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.6.0.tgz", + "integrity": "sha512-QU9MyxzwrvpRncZKUYbx4xMlD4TOmJA2XSAKkAyQpVOjJW79ZjzdQa2QfhVEHja/7FuUyQtVUMfBJ9rjjbp9GA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.6.0-rc.3.tgz", - "integrity": "sha512-dRUBwZvybwUr/UdB5a7YqINICQxRrmToU7mlFutzUdzDSLMqJR6+nfML0iTncKwzPrk21NDbbxrvQkINN/g9ww==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.6.0.tgz", + "integrity": "sha512-Xlq8jfB5PPNw1F7Q14FkKJAvEi3uY5W3rGlRH73zcRC1gdaT7Uxqj29/eJ33kpwEgEl3c36psW+OYDceAVHZ+w==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.6.0-rc.3.tgz", - "integrity": "sha512-vJPzJnX2UUQNdhHZQGy1w4jR06FRuQnx4hhvJAt3/k9KFM4PqqJHeuTfuc0U4+du9mjvuR4gqEHvLauVdlX2Iw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.6.0.tgz", + "integrity": "sha512-yAcn8m6z675pRZLbBrQC9D18a+hSKGjr0EaGF4LzhwwuRO9ylVUtWnhat8CzhFUWxc4DbhblPwUrZC51BCYwXA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.6.0-rc.3.tgz", - "integrity": "sha512-FICgVN69gjSqK47RGJOA8oPwyD6BOF/Xm82P7OHxubWLG0T0SFJDQbNoD5p/44hsWxkQG0zRWt7uo+Uv4/14xA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.6.0.tgz", + "integrity": "sha512-00aK+OH1s1I4y5vzZ2o/TLHoIpk9tBsamgjAm4ZtwLNE2KCSalOwBnuh57vLta7so9fvI26KNwAV0ICpvIEx6Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.6.0-rc.3.tgz", - "integrity": "sha512-krHWAaGIbSI8HmxpqpJGsSLL7GGvlLEqjdXoCXHVQ5S9F8FO3ylq14pYnZrxpHrE7bcwqzju9GjZCZiZWg4dyw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.6.0.tgz", + "integrity": "sha512-ffAlyqMyrMYr8uR9uEP0/vYAQYvC+5F2KHnEH5b8Li78qHG6R6+4m9lgAi+q+OUuM0AAtjQtmXM/7QFEmqEgvw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-loader-bar": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-expand": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-loader-bar": "1.6.0", + "@umbraco-ui/uui-symbol-expand": "1.6.0" } }, "node_modules/@umbraco-ui/uui-modal": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.6.0-rc.3.tgz", - "integrity": "sha512-HljQtu2JKHrwyuB79bS4WlfFh/egUttfHPplteI/LCSjQWncGOIy/ofXzst7HMGyfCGDHRxvOczGoYoqw0uMTw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.6.0.tgz", + "integrity": "sha512-coIJllr4kfzBOoc/2GKbLzyDJGcW3JMU1s/YgErVl7AnMOzeMWcc1SDhiL7LpntH3YJpKjswu7Ef0mBip2Toxw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-pagination": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.6.0-rc.3.tgz", - "integrity": "sha512-jSuEn5KCcsExlQ8sgG51lzGXruybuz/0gp4Y7pQxX7wwaRn43NxCQx4gLjZedleMDn2KLNV+DI+gnpx5jZMqiQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.6.0.tgz", + "integrity": "sha512-o9+nsZaDbuDRD8GblisjFRLl6rL978FDPP3Idgd08Sr+RMpObDYXayluCZo/aKxuiuFBFl59KnFWVfVp57mueg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-button": "1.6.0-rc.3", - "@umbraco-ui/uui-button-group": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-button": "1.6.0", + "@umbraco-ui/uui-button-group": "1.6.0" } }, "node_modules/@umbraco-ui/uui-popover": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.6.0-rc.3.tgz", - "integrity": "sha512-Q162ZlzGTAMvsNBzG4m0tCMkKhHMvEnosLnk9as0B1Q7WeiZ0TWDoY/a5clMZkj1EoctNC2FGfoNpSCV0niP7g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.6.0.tgz", + "integrity": "sha512-iqpgoOi7O4/GzHUzOAybaGrwAIBhtZjDKSwSw4sKzxs61ogsh009PlQiPp1VoLa8kCD7VWKaaF2nKbPsVJQtqQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-popover-container": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.6.0-rc.3.tgz", - "integrity": "sha512-PV111jFIu65DcTVboA4T5GKl3vNnH9VHLYgru0uJv5Nl/MGtKYsHG+C/9lGTxM4IxFvBq84pNHhGHZgBYGid9g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.6.0.tgz", + "integrity": "sha512-0SNxUdTsOH8WCIsl4MSgkoNdUO66BgO4Pkv5/o0p+NqSvsBoRdc/11lqCD9ghTTJ80TjEYFXTqaI8SrZu1Pmpg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.6.0-rc.3.tgz", - "integrity": "sha512-sJBo1QKn9OQK3Gc+tfMxgpmZSJn56scmEd137P5izCOyq5p8yBp2dIbT2P4VwnYxs4N3S5X55ZH1mzjNDWR5jw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.6.0.tgz", + "integrity": "sha512-dSa+WycxnQt3wvBxZONVjA7MtJ8/1r8Nzlh58xJytPLPpIbKKlpbU3GGf2is3zfJBun2mPn1F87EE2ZsBtsAXA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.6.0-rc.3.tgz", - "integrity": "sha512-gcb43tYoOMvk9utMel7aqpe1lrzXIc8VcDnLpG1YSObfby/XV6HKDEGHF7vBg0mCpOj4u+CXuwsigFuvUUbl8g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.6.0.tgz", + "integrity": "sha512-rQpaCnL9T7kAtbNk4UwaZTDQvltw1louZYOKwrcDm06GvTar42B6VD8Oz5fBUrWXfjhzbv0eOxZTpO4+cHPojA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-range-slider": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.6.0-rc.3.tgz", - "integrity": "sha512-RRKZPPBtT44qLRH7N3y0duHfD24Lzuv01J/MMfFNdlzwyJL5n3+hJL1NuEmp7W/G1dCgujmJ2DaZPTcY/M5Yww==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.6.0.tgz", + "integrity": "sha512-kiz66NLoq4p7ITO7/bTXPvpfptVWjtYgjPoH9vR2xC/mVMrmkxYoMbbgBMYGmiAEn8iRO9P+eNEb80L4abONfA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.6.0-rc.3.tgz", - "integrity": "sha512-k2pnhlvOyxVJSvfsTqhfVvxLRbYsfQ2Ap5KvEoWKQMR1sNYYav0Fdl8bzJV8Okhlzl4O7iQhMiw4q2f6cmAMdg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.6.0.tgz", + "integrity": "sha512-/YakDo/4owjRcsprnkCcZTfF0blz1JqDOlLystte4rRdQxbf/Z9dTGD/dBHyf5AmkvXQtSAGMXMKintIGzK1dg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.6.0-rc.3.tgz", - "integrity": "sha512-WF87gkCC8Uj1xof7uLpO9P1kBJ6HJDAhDd7JM4CvQrAqagdS9Wedlx9tgQV9ca+9z5B0jhUwYJEO2QfWCdngig==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.6.0.tgz", + "integrity": "sha512-DFwGyYhKLhMfTp3XGwmkYrgsdgj3TAqoODyQettrKZQG93h20hPyGcEGxPWg++RU/LdrvXv3YUbzeZP3LilHwA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.6.0-rc.3.tgz", - "integrity": "sha512-oII0lxJMtDpTvT+buUuCtjN62k7SsY4xClcUnqy/hvDY1d59GNnIgLN2pz5Kpn/k+jsTfHp+zGNpjquhhvRWlg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.6.0.tgz", + "integrity": "sha512-J5VsIOLw9gvC27BpapCZ1x4xY6I+6HaZb1G6qrbNlCioqlMSLcBsicdeDxmFJTq/95NbXTqRdVnUtVBisL4Ovw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-icon": "1.6.0-rc.3", - "@umbraco-ui/uui-ref": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0", + "@umbraco-ui/uui-ref": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-node-data-type": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.6.0-rc.3.tgz", - "integrity": "sha512-OdzFdK10rkCaQS25ti7J7IBG+o7tGrtZoXj5I5nAqTf8UOFOTYKGjKzmmykOuAg7ViT7gWgi+OV5GqONhSTNzg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.6.0.tgz", + "integrity": "sha512-c7RFW8+4+j7PSVjEpvf1ZYDTBVDBKreNnxZas5CB50SkYUpZoSVx3iDrJEjUK4tMkcvv+f80lGwQ1DroC4oVOw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-ref-node": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-node-document-type": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.6.0-rc.3.tgz", - "integrity": "sha512-93xgPScBCa07mTQC17v+kTX76BOgqcWS6eLW93eBQYQLGCRU6EWPt0rSPLg6Fb5gCVg3mdY5wHtsIvJapfthTg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.6.0.tgz", + "integrity": "sha512-96FC2X4SMPcaZUarFgKii9IrYSCmMRhiWMzySI2ILkLLz4rasfhQ5S5mTy80YecdY52ozaR55lEUwWXyBZcEIg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-ref-node": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-node-form": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.6.0-rc.3.tgz", - "integrity": "sha512-lrjr+gOlEXavMbmw63TmcxbrxpdJUTVhhPETX3eVzc+kMLBsKi0wKlXKhY7AjaaqCDBCiz6M5IiSNaKg84GExw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.6.0.tgz", + "integrity": "sha512-wdnwu5I975FxcfXzHrxgn0JDCzHuhom47k4JeY4EeZ+dYkI9uQY4PgYqbWulhFzFoSNC3s03lAB5z9iIn5Dwfw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-ref-node": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-node-member": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.6.0-rc.3.tgz", - "integrity": "sha512-dvXt1ldRcpY3NGiqe+u3J/+xQo85cW3cv9VEBxQIAt3ox5ndLsVhWdKCfRhbz+RWMj5IQ7szl/gEqm5QGj619g==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.6.0.tgz", + "integrity": "sha512-PbvGbaMUl7H77psYwDNJdU50sdw/IQYFgnHvpoIAla9se0ZylmlkzU9PNBGOPWbba5fjINCwJ8sYLAWJ4ak1Rg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-ref-node": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-node-package": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.6.0-rc.3.tgz", - "integrity": "sha512-92c0/zZrsoxXtW5MF+p9J+MjMQ7oZrYAayKFjEYCW91o8DECfFPM0lAXvbMJcCuDFMQJ5fcjlZz/ERA5s3exXQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.6.0.tgz", + "integrity": "sha512-f71HUf537F+OvQzdbKydtGKgAqrLSP92NwBfY/FUc9jQJP79IM5m6TWsq0LR62NsZokNH4FUwU8aWhQ5IbKgrA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-ref-node": "1.6.0" } }, "node_modules/@umbraco-ui/uui-ref-node-user": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.6.0-rc.3.tgz", - "integrity": "sha512-AyaMMYvtI2g91TuAe8aAjVVFHI0h3hPU6X8dGT/90ogDppiUBuQ++aVsK2HpmmkX2M8l+IF8JpBuxnfBhbJScQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.6.0.tgz", + "integrity": "sha512-J4gVUwzSX6AhKzny3JTeujV9w8PFL9ud/T564YajsK/FMurEMKskW1KWl4L9Oe0A1WYaxV50PJ8SutuZhC/d/w==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-ref-node": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-ref-node": "1.6.0" } }, "node_modules/@umbraco-ui/uui-scroll-container": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.6.0-rc.3.tgz", - "integrity": "sha512-R4T4ehbMpZEfDornwzyejk8i1UdeMfURe5PQn8EEhkAIX7u4roaTdb8cC7075WfC2qlkbRnrLHsFtPVF73yuyQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.6.0.tgz", + "integrity": "sha512-KuMRRJ3CfFXgES1pqSetExOqDrUGGVQkEY1rLJzd7rgAxS6ZU8A17xqQsLZ9PVPokcK1i27gsUHYDveT+swmlA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.6.0-rc.3.tgz", - "integrity": "sha512-BmwOcFUlpPrLN43C7/vTrMJhmzMFqzSgsUG5pqZfb0XS9egAZx4SondKcANubuLARIhTbRSCFuFkLgQTQ21kwA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.6.0.tgz", + "integrity": "sha512-HCXbMEMEumz0WJMgvjtMzxnGsLqMrsSN0dVJrw0UnF0ZAOYzTwyJuPv1QkritTfcNSLEi0/Kysn3e0mXybBDvA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.6.0-rc.3.tgz", - "integrity": "sha512-E0MzOkw80/z4rQ0lc26kOTx+zFIz3TZz+5lQSjluS8TY+260CwhROBziGKkm9YAgH+9FIH4D8vArQtMoXJ5TYg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.6.0.tgz", + "integrity": "sha512-+zLW3FPBVmcfdT9Tbe/z6lFd1HTgE46Rlp72lJRvKDCtPJIkcsharLnpxDBn4A+dlXeuAvqRJoyqLa7LyPJXMw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.6.0-rc.3.tgz", - "integrity": "sha512-Tqq0lmALnUJPgDo8HbFD5y9rUrcGQlPbURaqjJrhcz4WrpG/TAYwD0Dby7dBktIR0xzWse0kmz7Ib/SKKafMxA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.6.0.tgz", + "integrity": "sha512-tyotRdhTQjemaDqMMM3pdRvliFLaeRal34fTICAPtZT698LxeoK4Xt9EezB0rdeyOrvAVEuwv2b4PIsTe9YiXA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.6.0-rc.3.tgz", - "integrity": "sha512-R9ruwkQD951/SdBewahdPe/7zoBoGq6PoDY0JXPsvOCYnAaElkYkkj8sipsOO1EJj202FHJhlpVttZGdliKlpA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.6.0.tgz", + "integrity": "sha512-tlfMLbhRo1CAopt2MmX3E6Ej/l91NNBZ52BvPeAhf5UjthRkRnbrS4hArE1B2XDX5jm2olkfEY23aYl1GTYL5A==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.6.0-rc.3.tgz", - "integrity": "sha512-HMXLzNowrwYC8iLBLsmhbUGIw2GFH/ko+0SH0B0lJyHIGiKgZa++WsTVVw7Egz2zUS6V3YbvvwbijoJoAM7vUA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.6.0.tgz", + "integrity": "sha512-NiZyMBP3Hjb6bU6DFnNEuyZC0Sdxd4eRq40/RhjSCFplGOD2701mBJukn10OhKVGRc7FmEIvW7he1curkVbDLQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.6.0-rc.3.tgz", - "integrity": "sha512-zRsByLRBaZq3fUKnVG5ynzy24ppOpyJ/kHTdi7p5pvFtJJ8qOYXkxqLF4AdgUlhdaZwjP50hIWo4+TIOghSVZA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.6.0.tgz", + "integrity": "sha512-1XEss/T/KWr+T9KBjWEDAMvyjJ3pTwiSYoLQ9AHjaYoLR8Ei+oiv6Set+usJ+rZ/FtsE3rYBVLbtBJe6zRHDEA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.6.0-rc.3.tgz", - "integrity": "sha512-PF80tL4D8+PcCofBljaT/FR1lxP0bOZ5Lhtp5f/7jJmjqssVs9kSYy9YKhuCtB0GqEqML8FEK21XAIUM7ZAh+w==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.6.0.tgz", + "integrity": "sha512-2slK864CuD1zcxU9OB8H2dDfmWzJC4hdesZ63/TnulH+DSZTZ/HLxmrNww9cqLOcuFCv4VNfamPdc7yMtzzjvQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.6.0-rc.3.tgz", - "integrity": "sha512-X2Ebkuw//fjEd6ob2erd+L1hojpi9BvebzClEJVzJGR5nIHneZy3c/hwq2IPaeAJFQFyTIEKlGBrujvaFdxz+A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.6.0.tgz", + "integrity": "sha512-OC9niXXM43AuH7kzlxoR77vkE7Acy93t2bgy+GA6M1+HkyQksYLUM+cs0HeritcAw8pwxGcY3NU31fu+3nP7LQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.6.0-rc.3.tgz", - "integrity": "sha512-UkW8aP/gM6WAZ+L5mHzzDvaJNmE7RR3a/pU9vc/IxmKCzAqExIpACNBTE5e9TmzWwND6SwwswtxX/s9PsAnWEg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.6.0.tgz", + "integrity": "sha512-IM/FeymrKw4DEvEDxEJ26tC3Gsa/MLFI/cJeiZ9eOPwEuS3H5OhdB+jl2xZWWx0l+fo3acW4g2vr1UZ+bU+gJQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.6.0-rc.3.tgz", - "integrity": "sha512-IKhGb4vgOSdhzHeRF76UWzPJ0g7jf/lKaMupKdTzs4UJbpICrsO6fiygzHLwl1XMNJtjXxOq8CYRGOxWxPkLjw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.6.0.tgz", + "integrity": "sha512-9niaAMqx/2CoY8D60xZs379pzWkcK4/LD4oWwBGy0ym+AFNon3Fc9sqRhLTucTqECwP7NMI6Jrxe3oohpYZ1uw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.6.0-rc.3.tgz", - "integrity": "sha512-ftB+4EyYtqtJ/SocbvyZgob3kWQvSi/3pk6X5zQwe4q8WSwR5UnF6zwt0AQIQsHxCCAgmXTBFl4RvCUtNksJ7w==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.6.0.tgz", + "integrity": "sha512-D/LqbDEjVKP84+mIbTnnExpXeaL/pi+j77WnvH/sASYCQtiq5RufvzgC0lvBr8aS8hvdWv+mTV2hEt9b9GIlnA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.6.0-rc.3.tgz", - "integrity": "sha512-oNp8DjsUse285BicsSPSHqeKvPDJzcjjRXJr2U1ipwqYALSXldxaGBmhHe96NHhB0aJH2Ej1XT+fjU7lw8KJyQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.6.1.tgz", + "integrity": "sha512-LfV4LckIGwE9+JsjxLu0oXq93umDzngPht+7Mm8lqqHBl03R2GgogYmVvMklyaBbt0Uv0SuoIlh3tn1NVgAVxQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-button": "1.6.0-rc.3", - "@umbraco-ui/uui-popover-container": "1.6.0-rc.3", - "@umbraco-ui/uui-symbol-more": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-button": "1.6.0", + "@umbraco-ui/uui-popover-container": "1.6.0", + "@umbraco-ui/uui-symbol-more": "1.6.0" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.6.0-rc.3.tgz", - "integrity": "sha512-dsa+zakx9A4jkbU+H71UEM0fe8nAS1wr3mTm/iIyUZMtpfrWiWL8aF4fbhNHdg3bm3yV61OHAhXMpezqlrs5vQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.6.0.tgz", + "integrity": "sha512-k0NLdlu8QrQhyUQTZton3c8ELp1+HQBcF8T3LlDGE1eEItZIR6KzszBKBjCB8I4s2bjuXDPTv4FWE09s0vunJQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.6.0-rc.3.tgz", - "integrity": "sha512-AaWEW0C8dXaywap0PjQ+bgXqHXKdTDIjOxS+HjK9DnbvmuFkmYglUtsKNsNNR4ld9NBusvh7t+pupjcVdF9asw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.6.0.tgz", + "integrity": "sha512-VKCziqPPReeI6GAlrz/FQq+3pzN9boqUZ3jtg4PTRH04uDt9MCI2ZV/Y7lxNOcb214Q2EWsG/yJiiQgnI2R8Aw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.6.0-rc.3.tgz", - "integrity": "sha512-2HmYxlpRxIJYd84mvF5RF+GVhVO0muVWUivSUyaOL8j5eK+dFH6W8UPrLaxODDRCz5ueLH+s6Dh+EpXmHLO6+g==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.6.2.tgz", + "integrity": "sha512-L8ITXHwvLVE9CImpSATa9B9sZYFfOrW3dS/Jait4w1EWdTzgXjQprgQEcWNqJCM+7yTjnwJN47KCRr4moijfwQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-button": "1.6.0-rc.3", - "@umbraco-ui/uui-css": "1.4.0", - "@umbraco-ui/uui-icon": "1.6.0-rc.3", - "@umbraco-ui/uui-icon-registry-essential": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-button": "1.6.0", + "@umbraco-ui/uui-css": "1.6.0", + "@umbraco-ui/uui-icon": "1.6.0", + "@umbraco-ui/uui-icon-registry-essential": "1.6.0" } }, "node_modules/@umbraco-ui/uui-toast-notification-container": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.6.0-rc.3.tgz", - "integrity": "sha512-2T8AeIwItjWz4w5FjhMe4j9zjPsbBGWNy4zOSi/PuAU1W6CEMEfyDPx1N1QH+5ub+gnviaT4q649VXbaYBhzHA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.6.2.tgz", + "integrity": "sha512-mmqN2vrnyZEi3Us+kEMAUbRCaQNN7qCmTe49mumCSg8C11nTAAiubAwJ8fBF0P8sK85Ntv5pdxJ2zDdjDR2LFA==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-toast-notification": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-toast-notification": "1.6.2" } }, "node_modules/@umbraco-ui/uui-toast-notification-layout": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.6.0-rc.3.tgz", - "integrity": "sha512-IrSQ0UeM0zI39EShmW2ya+3ljv0KfXMzPrkDnqPoZcnNRFR/gu6mhOLOmdJx1z71byyvE7koi4Ygatw6e6aUtQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.6.2.tgz", + "integrity": "sha512-h7VG+Jn7loxt51RB64DkSv146OLEmTkMsK38OPhGKFLcL35qEfPmRLNTFHFE6eI88vjfGow0vuHFJhcZUZBKYw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-css": "1.4.0" - } - }, - "node_modules/@umbraco-ui/uui-toast-notification-layout/node_modules/@umbraco-ui/uui-css": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.4.0.tgz", - "integrity": "sha512-HBCFPuXJijeZbjnjdqmg3oqOGB3RmpQKT/s/Uy0TSJfaQGfz0e73o2eRghYHWF2rdqHw6brKFrZTZHBVvCE/xA==", - "dependencies": { - "lit": "^2.2.2" - } - }, - "node_modules/@umbraco-ui/uui-toast-notification/node_modules/@umbraco-ui/uui-css": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.4.0.tgz", - "integrity": "sha512-HBCFPuXJijeZbjnjdqmg3oqOGB3RmpQKT/s/Uy0TSJfaQGfz0e73o2eRghYHWF2rdqHw6brKFrZTZHBVvCE/xA==", - "dependencies": { - "lit": "^2.2.2" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-css": "1.6.0" } }, "node_modules/@umbraco-ui/uui-toggle": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.6.0-rc.3.tgz", - "integrity": "sha512-UN5IRUjrLITaQjCAnPDg1is7hJva3RU6Hie1bjYVH/qDc21Ew6Rr2T+5E1D+AJDJjbm6ZAhpbxzAJiUqjJMfvg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.6.0.tgz", + "integrity": "sha512-uklbHJ6seRoqU6eGwnUiIPBiA7IN7xS/2PhYa3NGCzrLrB8bjv+lhIE95s/qHWKILjE7nVPkKIu5JWmDNeNBHg==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3", - "@umbraco-ui/uui-boolean-input": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0", + "@umbraco-ui/uui-boolean-input": "1.6.0" } }, "node_modules/@umbraco-ui/uui-visually-hidden": { - "version": "1.6.0-rc.3", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.6.0-rc.3.tgz", - "integrity": "sha512-P9e+aa4qndDdo2KYHJJCzFoTT/vo9tnD86G1d2rTsUfkoUvOXDQDwNvxVXJSbzL6lj6yWh6McM9Xk3oBAStwUg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.6.0.tgz", + "integrity": "sha512-MtoX8AjrH/+SsHrAi1IpMScVlDKvuKvn6szSE81Iif99vWzsf3QD3jP1ECFN2rf4E+fdwGukv3jVX9jrvQVnZw==", "dependencies": { - "@umbraco-ui/uui-base": "1.6.0-rc.3" + "@umbraco-ui/uui-base": "1.6.0" } }, "node_modules/@ungap/structured-clone": { @@ -7614,15 +7582,15 @@ } }, "node_modules/@web/dev-server": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.1.tgz", - "integrity": "sha512-GHeyH8MBZQpODFiHiXAdX4hOVbeDyD/DUermUinh/nexWAZUcXyXa200RItuAL6b25MQ3D/5hKNDypujSvXxiw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.2.tgz", + "integrity": "sha512-5IS2Rev+DRqIPtIiecOumoj+GZ4volRS6BeX+3mvuMF0OA51pCGhOozqUMVFFpAVuhHScihqIGk1gnHhw9d9kQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", "@web/config-loader": "^0.3.0", - "@web/dev-server-core": "^0.7.0", + "@web/dev-server-core": "^0.7.1", "@web/dev-server-rollup": "^0.6.1", "camelcase": "^6.2.0", "command-line-args": "^5.1.1", @@ -7643,9 +7611,9 @@ } }, "node_modules/@web/dev-server-core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.0.tgz", - "integrity": "sha512-1FJe6cJ3r0x0ZmxY/FnXVduQD4lKX7QgYhyS6N+VmIpV+tBU4sGRbcrmeoYeY+nlnPa6p2oNuonk3X5ln/W95g==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.1.tgz", + "integrity": "sha512-alHd2j0f4e1ekqYDR8lWScrzR7D5gfsUZq3BP3De9bkFWM3AELINCmqqlVKmCtlkAdEc9VyQvNiEqrxraOdc2A==", "dev": true, "dependencies": { "@types/koa": "^2.11.6", @@ -7708,14 +7676,15 @@ } }, "node_modules/@web/dev-server-esbuild": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-esbuild/-/dev-server-esbuild-1.0.1.tgz", - "integrity": "sha512-EoLLFuv5Y47pqY1IJBcGZswzkqJd+/vN4BDI3oYq8p9dDE9EuQVkC7vweAUkH7vDzI7xUp+f0UzJeQcj9t7zNQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@web/dev-server-esbuild/-/dev-server-esbuild-1.0.2.tgz", + "integrity": "sha512-ak5mKt7L0H/Fa470Ku7p9A1eI32DNyFGM83jDkJviBO8r3lM00O5hVFW1K+UIYNC5EyanLyPxTqgtIuQEyMYcQ==", "dev": true, "dependencies": { "@mdn/browser-compat-data": "^4.0.0", "@web/dev-server-core": "^0.7.0", - "esbuild": "^0.19.5", + "esbuild": "^0.19.11", + "get-tsconfig": "^4.7.2", "parse5": "^6.0.1", "ua-parser-js": "^1.0.33" }, @@ -7724,9 +7693,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", "cpu": [ "arm" ], @@ -7740,9 +7709,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", "cpu": [ "arm64" ], @@ -7756,9 +7725,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", "cpu": [ "x64" ], @@ -7772,9 +7741,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", "cpu": [ "arm64" ], @@ -7788,9 +7757,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", "cpu": [ "x64" ], @@ -7804,9 +7773,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", "cpu": [ "arm64" ], @@ -7820,9 +7789,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", "cpu": [ "x64" ], @@ -7836,9 +7805,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", "cpu": [ "arm" ], @@ -7852,9 +7821,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", "cpu": [ "arm64" ], @@ -7868,9 +7837,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", "cpu": [ "ia32" ], @@ -7884,9 +7853,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", "cpu": [ "loong64" ], @@ -7900,9 +7869,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", "cpu": [ "mips64el" ], @@ -7916,9 +7885,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", "cpu": [ "ppc64" ], @@ -7932,9 +7901,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", "cpu": [ "riscv64" ], @@ -7948,9 +7917,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", "cpu": [ "s390x" ], @@ -7964,9 +7933,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", "cpu": [ "x64" ], @@ -7980,9 +7949,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", "cpu": [ "x64" ], @@ -7996,9 +7965,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", "cpu": [ "x64" ], @@ -8012,9 +7981,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", "cpu": [ "x64" ], @@ -8028,9 +7997,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", "cpu": [ "arm64" ], @@ -8044,9 +8013,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", "cpu": [ "ia32" ], @@ -8060,9 +8029,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", "cpu": [ "x64" ], @@ -8076,9 +8045,9 @@ } }, "node_modules/@web/dev-server-esbuild/node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, "bin": { @@ -8088,29 +8057,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" } }, "node_modules/@web/dev-server-import-maps": { @@ -8664,13 +8633,16 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8728,17 +8700,36 @@ "node": ">=8" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "node_modules/array.prototype.filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", + "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", + "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8784,17 +8775,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -8865,9 +8857,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", + "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", "dev": true, "engines": { "node": ">= 0.4" @@ -9053,13 +9045,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", - "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.4", + "@babel/helper-define-polyfill-provider": "^0.5.0", "semver": "^6.3.1" }, "peerDependencies": { @@ -9067,25 +9059,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", - "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4" + "@babel/helper-define-polyfill-provider": "^0.5.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -9303,9 +9295,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", "dev": true, "funding": [ { @@ -9322,8 +9314,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -9417,14 +9409,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", + "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.3", + "set-function-length": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9468,9 +9464,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "version": "1.0.30001584", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz", + "integrity": "sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==", "dev": true, "funding": [ { @@ -10209,9 +10205,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", + "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", "dev": true, "dependencies": { "browserslist": "^4.22.2" @@ -10375,14 +10371,15 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", + "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -10681,9 +10678,9 @@ } }, "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.1.tgz", + "integrity": "sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==", "dev": true, "engines": { "node": ">=12" @@ -10771,9 +10768,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.637", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.637.tgz", - "integrity": "sha512-G7j3UCOukFtxVO1vWrPQUoDk3kL70mtvjc/DC/k2o7lE0wAdq+Vwp1ipagOow+BH0uVztFysLWbkM/RTIrbK3w==", + "version": "1.4.657", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.657.tgz", + "integrity": "sha512-On2ymeleg6QbRuDk7wNgDdXtNqlJLM2w4Agx1D/RiTmItiL+a9oq5p7HUa2ZtkAtGBe/kil2dq/7rPfkbe0r5w==", "dev": true }, "node_modules/element-internals-polyfill": { @@ -10831,9 +10828,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -10910,6 +10907,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -11012,9 +11024,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -11296,9 +11308,9 @@ } }, "node_modules/eslint-plugin-lit-a11y": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.1.tgz", - "integrity": "sha512-PTUEwTMMtbZccrGQUPFfWI3Ope8oF8XEMLUckNbV0IvDTkEbXYlYlvNrkzI92gYKAVaVlNi2QZ/0n8Q3YiOBUg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.2.tgz", + "integrity": "sha512-otrF1Q0uv6RUz/AflVgnf1rVzbfQJfgUmnB+xBl71IR8EwtJGEOrqGs3Ky/4APMda+maF6bsZLctppcz16m7Hw==", "dev": true, "dependencies": { "aria-query": "^5.1.3", @@ -11497,9 +11509,9 @@ } }, "node_modules/eslint-plugin-storybook/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -12033,9 +12045,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -12352,9 +12364,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.226.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.226.0.tgz", - "integrity": "sha512-YlH+Y/P/5s0S7Vg14RwXlJMF/JsGfkG7gcKB/zljyoqaPNX9YVsGzx+g6MLTbhZaWbPhs4347aTpmSb9GgiPtw==", + "version": "0.228.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.228.0.tgz", + "integrity": "sha512-xPWkzCO07AnS8X+fQFpWm+tJ+C7aeaiVzJ+rSepbkCXUvUJ6l6squEl63axoMcixyH4wLjmypOzq/+zTD0O93w==", "dev": true, "engines": { "node": ">=0.4.0" @@ -12605,16 +12617,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12671,13 +12687,13 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.1.tgz", + "integrity": "sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -13052,12 +13068,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -13249,9 +13265,9 @@ ] }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -13413,12 +13429,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -13498,14 +13514,16 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13922,12 +13940,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -14111,9 +14129,9 @@ } }, "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -15159,9 +15177,9 @@ "dev": true }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -15238,9 +15256,9 @@ } }, "node_modules/markdown-to-jsx": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.0.tgz", - "integrity": "sha512-zilc+MIkVVXPyTb4iIUTIz9yyqfcWjszGXnwF9K/aiBWcHXFcmdEMTkG01/oQhwSCH7SY1BnG6+ev5BzWmbPrg==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.1.tgz", + "integrity": "sha512-GbrbkTnHp9u6+HqbPRFJbObi369AgJNXi/sGqq5HRsoZW063xR1XDCaConqq+whfEIAlzB1YPnOgsPc7B7bc/A==", "dev": true, "engines": { "node": ">= 10" @@ -15250,9 +15268,9 @@ } }, "node_modules/marked": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-11.1.1.tgz", - "integrity": "sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-11.2.0.tgz", + "integrity": "sha512-HR0m3bvu0jAPYiIvLUUQtdg1g6D247//lvcekpHO1WMvbwDlwSkZAX9Lw4F4YHE1T0HaaNve0tuAWuV1UJ6vtw==", "bin": { "marked": "bin/marked.js" }, @@ -16588,34 +16606,6 @@ "node": ">= 12" } }, - "node_modules/node-plop/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/node-plop/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/node-plop/node_modules/globby": { "version": "13.2.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", @@ -16636,18 +16626,18 @@ } }, "node_modules/node-plop/node_modules/inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "version": "9.2.14", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz", + "integrity": "sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==", "dev": true, "dependencies": { - "@ljharb/through": "^2.3.11", + "@ljharb/through": "^2.3.12", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^5.0.0", + "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -16658,19 +16648,7 @@ "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/node-plop/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, "node_modules/node-plop/node_modules/mkdirp": { @@ -16767,14 +16745,14 @@ } }, "node_modules/nypm": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.4.tgz", - "integrity": "sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.6.tgz", + "integrity": "sha512-2CATJh3pd6CyNfU5VZM7qSwFu0ieyabkEdnogE30Obn1czrmOYiZ8DOZLe1yBdLKWoyD3Mcy2maUs+0MR3yVjQ==", "dev": true, "dependencies": { "citty": "^0.1.5", "execa": "^8.0.1", - "pathe": "^1.1.1", + "pathe": "^1.1.2", "ufo": "^1.3.2" }, "bin": { @@ -17003,15 +16981,16 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", + "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "array.prototype.filter": "^1.0.3", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0" } }, "node_modules/object.map": { @@ -17544,9 +17523,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -17639,12 +17618,12 @@ } }, "node_modules/playwright": { - "version": "1.41.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.1.tgz", - "integrity": "sha512-gdZAWG97oUnbBdRL3GuBvX3nDDmUOuqzV/D24dytqlKt+eI5KbwusluZRGljx1YoJKZ2NRPaeWiFTeGZO7SosQ==", + "version": "1.41.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.2.tgz", + "integrity": "sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==", "dev": true, "dependencies": { - "playwright-core": "1.41.1" + "playwright-core": "1.41.2" }, "bin": { "playwright": "cli.js" @@ -17657,9 +17636,9 @@ } }, "node_modules/playwright-core": { - "version": "1.41.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.41.1.tgz", - "integrity": "sha512-/KPO5DzXSMlxSX77wy+HihKGOunh3hqndhqeo/nMxfigiKzogn8kfL0ZBDu0L1RKgan5XHCPmn6zXd2NUJgjhg==", + "version": "1.41.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.41.2.tgz", + "integrity": "sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -17879,9 +17858,9 @@ } }, "node_modules/plop/node_modules/string-width": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz", - "integrity": "sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz", + "integrity": "sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==", "dev": true, "dependencies": { "emoji-regex": "^10.3.0", @@ -17911,9 +17890,9 @@ } }, "node_modules/polished": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", - "integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", + "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", "dev": true, "dependencies": { "@babel/runtime": "^7.17.8" @@ -17967,9 +17946,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.34", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz", + "integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==", "dev": true, "funding": [ { @@ -18964,9 +18943,9 @@ } }, "node_modules/rollup-plugin-esbuild": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.0.tgz", - "integrity": "sha512-HPpXU65V8bSpW8eSYPahtUJaJHmbxJGybuf/M8B3bz/6i11YaYHlNNJIQ38gSEV0FyohQOgVxJ2YMEEZtEmwvA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.1.tgz", + "integrity": "sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.5", @@ -19370,9 +19349,9 @@ } }, "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -19543,9 +19522,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", + "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -19630,9 +19609,9 @@ "dev": true }, "node_modules/streamx": { - "version": "2.15.6", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", - "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "version": "2.15.7", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.7.tgz", + "integrity": "sha512-NPEKS5+yjyo597eafGbKW5ujh7Sm6lDLHZQd/lRSz6S0VarpADBJItqfB4PnwpS+472oob1GX5cCY9vzfJpHUA==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", @@ -19922,9 +19901,9 @@ } }, "node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, "dependencies": { "b4a": "^1.6.4", @@ -20340,9 +20319,9 @@ } }, "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "dev": true, "funding": { "type": "github", @@ -20350,12 +20329,12 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.0.tgz", + "integrity": "sha512-d+3WxW4r8WQy2cZWpNRPPGExX8ffOLGcIhheUANKbL5Sqjbhkneki76fRAWeXkaslV2etTb4tSJBSxOsH5+CJw==", "dev": true, "engines": { - "node": ">=16.13.0" + "node": ">=18" }, "peerDependencies": { "typescript": ">=4.2.0" @@ -20674,9 +20653,9 @@ } }, "node_modules/typescript-json-schema/node_modules/@types/node": { - "version": "16.18.71", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.71.tgz", - "integrity": "sha512-ARO+458bNJQeNEFuPyT6W+q9ULotmsQzhV3XABsFSxEvRMUYENcBsNAHWYPlahU+UHa5gCVwyKT1Z3f1Wwr26Q==", + "version": "16.18.79", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.79.tgz", + "integrity": "sha512-Qd7jdLR5zmnIyMhfDrfPqN5tUCvreVpP3Qrf2oSM+F7SNzlb/MwHISGUkdFHtevfkPJ3iAGyeQI/jsbh9EStgQ==", "dev": true }, "node_modules/typescript-json-schema/node_modules/brace-expansion": { @@ -20767,9 +20746,9 @@ } }, "node_modules/ufo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", - "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", + "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==", "dev": true }, "node_modules/uglify-js": { @@ -20994,12 +20973,12 @@ } }, "node_modules/unplugin": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz", - "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.7.1.tgz", + "integrity": "sha512-JqzORDAPxxs8ErLV4x+LL7bk5pk3YlcWqpSNsIkAZj972KzFZLClc/ekppahKkOczGkwIG6ElFgdOgOlK4tXZw==", "dev": true, "dependencies": { - "acorn": "^8.11.2", + "acorn": "^8.11.3", "chokidar": "^3.5.3", "webpack-sources": "^3.2.3", "webpack-virtual-modules": "^0.6.1" @@ -21365,9 +21344,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", "cpu": [ "arm" ], @@ -21381,9 +21360,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", "cpu": [ "arm64" ], @@ -21397,9 +21376,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", "cpu": [ "x64" ], @@ -21413,9 +21392,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", "cpu": [ "arm64" ], @@ -21429,9 +21408,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", "cpu": [ "x64" ], @@ -21445,9 +21424,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", "cpu": [ "arm64" ], @@ -21461,9 +21440,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", "cpu": [ "x64" ], @@ -21477,9 +21456,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", "cpu": [ "arm" ], @@ -21493,9 +21472,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", "cpu": [ "arm64" ], @@ -21509,9 +21488,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", "cpu": [ "ia32" ], @@ -21525,9 +21504,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", "cpu": [ "loong64" ], @@ -21541,9 +21520,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", "cpu": [ "mips64el" ], @@ -21557,9 +21536,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", "cpu": [ "ppc64" ], @@ -21573,9 +21552,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", "cpu": [ "riscv64" ], @@ -21589,9 +21568,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", "cpu": [ "s390x" ], @@ -21605,9 +21584,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", "cpu": [ "x64" ], @@ -21621,9 +21600,9 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", "cpu": [ "x64" ], @@ -21637,9 +21616,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", "cpu": [ "x64" ], @@ -21653,9 +21632,9 @@ } }, "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", "cpu": [ "x64" ], @@ -21669,9 +21648,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", "cpu": [ "arm64" ], @@ -21685,9 +21664,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", "cpu": [ "ia32" ], @@ -21701,9 +21680,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", "cpu": [ "x64" ], @@ -21717,9 +21696,9 @@ } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, "bin": { @@ -21729,29 +21708,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" } }, "node_modules/walker": { @@ -21895,16 +21874,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.1" }, "engines": { "node": ">= 0.4" diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 73ce5263a3..834e0bfb0d 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -140,8 +140,8 @@ "@openid/appauth": "^1.3.1", "@types/dompurify": "^3.0.5", "@types/uuid": "^9.0.8", - "@umbraco-ui/uui": "1.6.0-rc.3", - "@umbraco-ui/uui-css": "1.6.0-rc.3", + "@umbraco-ui/uui": "1.6.2", + "@umbraco-ui/uui-css": "1.6.0", "dompurify": "^3.0.6", "element-internals-polyfill": "^1.3.9", "lit": "^2.8.0", From 2f035436f3c1d27e15943d0cc90eee5c007d39d6 Mon Sep 17 00:00:00 2001 From: JesmoDev Date: Tue, 6 Feb 2024 12:24:12 +0100 Subject: [PATCH 786/786] fix types --- .../components/dropdown/dropdown.element.ts | 20 ++++++------------- .../models/workspace-action.model.ts | 6 +++--- .../log-viewer-level-tag.element.ts | 8 ++++---- .../src/packages/user/utils.test.ts | 4 ++-- .../src/packages/user/utils.ts | 6 +++--- 5 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts index eb0cab0379..dc38b830b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/dropdown/dropdown.element.ts @@ -1,20 +1,12 @@ import type { - InterfaceColor, - InterfaceLook, + UUIInterfaceColor, + UUIInterfaceLook, PopoverContainerPlacement, UUIPopoverContainerElement, } from '@umbraco-cms/backoffice/external/uui'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import type { - PropertyValueMap} from '@umbraco-cms/backoffice/external/lit'; -import { - css, - html, - customElement, - property, - query, - when, -} from '@umbraco-cms/backoffice/external/lit'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, property, query, when } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; // TODO: maybe move this to UI Library. @@ -29,10 +21,10 @@ export class UmbDropdownElement extends UmbLitElement { label = ''; @property() - look: InterfaceLook = 'default'; + look: UUIInterfaceLook = 'default'; @property() - color: InterfaceColor = 'default'; + color: UUIInterfaceColor = 'default'; @property() placement: PopoverContainerPlacement = 'bottom-start'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-action.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-action.model.ts index 331e258137..9c97a33ca5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-action.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/workspace-action.model.ts @@ -1,5 +1,5 @@ import type { ConditionTypes } from '../conditions/types.js'; -import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInterfaceColor, UUIInterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api'; import type { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; @@ -12,6 +12,6 @@ export interface ManifestWorkspaceAction export interface MetaWorkspaceAction { label?: string; //TODO: Use or implement additional label-key - look?: InterfaceLook; - color?: InterfaceColor; + look?: UUIInterfaceLook; + color?: UUIInterfaceColor; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts index be4e236222..2ff8e0d56d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-level-tag.element.ts @@ -1,10 +1,10 @@ -import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; -import { css, html, LitElement, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import type { UUIInterfaceColor, UUIInterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import { html, LitElement, ifDefined, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import type { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; interface LevelMapStyles { - look?: InterfaceLook; - color?: InterfaceColor; + look?: UUIInterfaceLook; + color?: UUIInterfaceColor; style?: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts b/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts index 636a87e5e5..e38b8d6ae8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/utils.test.ts @@ -1,11 +1,11 @@ import { expect } from '@open-wc/testing'; import { getDisplayStateFromUserStatus } from './utils.js'; -import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInterfaceColor, UUIInterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; describe('UmbUserExtensions', () => { it('returns correct look and color from a status string', () => { - const testCases: { status: UserStateModel; look: InterfaceLook; color: InterfaceColor }[] = [ + const testCases: { status: UserStateModel; look: UUIInterfaceLook; color: UUIInterfaceColor }[] = [ { status: UserStateModel.ACTIVE, look: 'primary', color: 'positive' }, { status: UserStateModel.INACTIVE, look: 'primary', color: 'warning' }, { status: UserStateModel.INVITED, look: 'primary', color: 'warning' }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts index e94253c37d..a85969f1ae 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/utils.ts @@ -1,9 +1,9 @@ -import type { InterfaceColor, InterfaceLook } from '@umbraco-cms/backoffice/external/uui'; +import type { UUIInterfaceColor, UUIInterfaceLook } from '@umbraco-cms/backoffice/external/uui'; import type { UserStateModel } from '@umbraco-cms/backoffice/backend-api'; interface DisplayStatus { - look: InterfaceLook; - color: InterfaceColor; + look: UUIInterfaceLook; + color: UUIInterfaceColor; key: string; } const userStates: DisplayStatus[] = [