From f9284cf36f66045cbf90cc7a448faf46a225795c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 14:55:09 +0200 Subject: [PATCH 001/177] remove document delete action --- .../documents/documents/entity-actions/manifests.ts | 13 ------------- 1 file changed, 13 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 36d9a0cf3e..7455fc7762 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 @@ -7,19 +7,6 @@ import { manifests as cultureAndHostnamesManifests } from './culture-and-hostnam import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ - { - type: 'entityAction', - kind: 'delete', - alias: 'Umb.EntityAction.Document.Delete', - name: 'Delete Document Entity Action', - weight: 1100, - forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], - meta: { - deleteRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, - itemRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, - pickerModalAlias: UMB_DOCUMENT_PICKER_MODAL, - }, - }, { type: 'entityAction', kind: 'default', From 69d0bc0618dd116a2c75db3c7ffeb567d079d4b1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 14:55:21 +0200 Subject: [PATCH 002/177] rename property --- .../core/extension-registry/models/entity-action.model.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c5ddd408fa..ae8066a9ab 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 @@ -63,7 +63,7 @@ export interface ManifestEntityActionTrashKind extends ManifestEntityAction Date: Tue, 2 Apr 2024 14:55:37 +0200 Subject: [PATCH 003/177] remove user permission condition --- .../documents/recycle-bin/entity-action/manifests.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index 2c654126d5..dec1ebb439 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -12,11 +12,5 @@ export const manifests = [ itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, trashRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, }, - conditions: [ - { - alias: 'Umb.Condition.UserPermission', - match: 'Umb.UserPermission.Document.Delete', - }, - ], }, ]; From ff317d67792279344e7a70bea46e7d266157e470 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 16:03:05 +0200 Subject: [PATCH 004/177] update trash action --- .../common/trash/trash.action.kind.ts | 6 +- .../common/trash/trash.action.ts | 59 +++++++++++-------- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts index beb3103a7b..53a7273139 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts @@ -11,13 +11,13 @@ export const manifest: UmbBackofficeManifestKind = { type: 'entityAction', kind: 'trash', api: () => import('./trash.action.js'), - weight: 900, + weight: 1100, forEntityTypes: [], meta: { icon: 'icon-trash', - label: 'Trash', + label: 'Trash...', itemRepositoryAlias: '', - trashRepositoryAlias: '', + recycleBinRepositoryAlias: '', }, }, }; 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 3c4fc550c3..14ab66edb3 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,34 +1,45 @@ import { UmbEntityActionBase } from '../../entity-action-base.js'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -//import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; +import { UmbRequestReloadStructureForEntityEvent } from '../../request-reload-structure-for-entity.event.js'; +import { createExtensionApiByAlias, type MetaEntityActionDeleteKind } from '@umbraco-cms/backoffice/extension-registry'; +import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; +import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; -export class UmbTrashEntityAction extends UmbEntityActionBase { - constructor(host: UmbControllerHost, args: any) { - super(host, args); - } +export class UmbDeleteEntityAction extends UmbEntityActionBase { + // TODO: make base type for item and detail models async execute() { - console.log(`execute trash for: ${this.args.unique}`); - /* - if (!this.unique) throw new Error('Unique is not available'); - if (!this.repository) return; + if (!this.args.unique) throw new Error('Cannot trash an item without a unique identifier.'); - const { data } = await this.repository.requestItems([this.unique]); + const itemRepository = await createExtensionApiByAlias>( + this, + this.args.meta.itemRepositoryAlias, + ); - if (data) { - const item = data[0]; + const { data } = await itemRepository.requestItems([this.args.unique]); + const item = data?.[0]; + if (!item) throw new Error('Item not found.'); - await umbConfirmModal(this._host, { - headline: `Trash ${item.name}`, - content: 'Are you sure you want to move this item to the recycle bin?', - color: 'danger', - confirmLabel: 'Trash', - }); + // TODO: handle items with variants + await umbConfirmModal(this._host, { + headline: `Trash`, + content: `Are you sure you want to move ${item.name} to the recycle bin?`, + color: 'danger', + confirmLabel: 'Trash', + }); - this.repository?.trash(this.unique); - } - */ + const recycleBinRepository = await createExtensionApiByAlias(this, this.args.meta.recycleBinRepositoryAlias); + await recycleBinRepository.trash(this.args.unique); + + const actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); + const event = new UmbRequestReloadStructureForEntityEvent({ + unique: this.args.unique, + entityType: this.args.entityType, + }); + + actionEventContext.dispatchEvent(event); + + // TODO: reload destination } } - -export default UmbTrashEntityAction; +export default UmbDeleteEntityAction; From ddb0b704e4ea1499c7f50eb38aa0517096ba7d2d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 16:03:30 +0200 Subject: [PATCH 005/177] work in progress repository --- .../recycle-bin/entity-action/manifests.ts | 5 ++- .../documents/recycle-bin/manifests.ts | 7 ++-- .../recycle-bin/repository/constants.ts | 1 + .../document-recycle-bin.repository.ts | 30 ++++++++++++++ ...document-recycle-bin.server.data-source.ts | 39 +++++++++++++++++++ .../documents/recycle-bin/repository/index.ts | 1 + .../recycle-bin/repository/manifests.ts | 11 ++++++ .../documents/recycle-bin/repository/types.ts | 0 8 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/constants.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index dec1ebb439..4c6a590d4c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -1,5 +1,6 @@ import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; -import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; export const manifests = [ { @@ -10,7 +11,7 @@ export const manifests = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, - trashRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts index 38ee0700be..1277abe4c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts @@ -1,5 +1,6 @@ -import { manifests as treeManifests } from './tree/manifests.js'; -import { manifests as menuItemManifests } from './menu-item/manifests.js'; import { manifests as entityActionManifests } from './entity-action/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; -export const manifests = [...treeManifests, ...menuItemManifests, ...entityActionManifests]; +export const manifests = [...treeManifests, ...menuItemManifests, ...entityActionManifests, ...repositoryManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/constants.ts new file mode 100644 index 0000000000..f350dc5e9d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/constants.ts @@ -0,0 +1 @@ +export const UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS = 'Umb.Repository.Document.RecycleBin'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts new file mode 100644 index 0000000000..44a4f60478 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts @@ -0,0 +1,30 @@ +import { UmbDocumentRecycleBinServerDataSource } from './document-recycle-bin.server.data-source.js'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; + +export class UmbDocumentRecycleBinRepository extends UmbRepositoryBase { + #recycleBinSource: UmbDocumentRecycleBinServerDataSource; + + constructor(host: UmbControllerHost) { + super(host); + this.#recycleBinSource = new UmbDocumentRecycleBinServerDataSource(this); + } + + async requestTrash(args) { + return this.#recycleBinSource.trash(args); + } + + async requestRestore(args) { + return this.#recycleBinSource.restore(args); + } + + async requestEmptyBin() { + return this.#recycleBinSource.emptyBin(); + } + + async requestOriginalParent(args) { + return this.#recycleBinSource.getOriginalParent(args); + } +} + +export { UmbDocumentRecycleBinRepository as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts new file mode 100644 index 0000000000..3a4d74b20d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts @@ -0,0 +1,39 @@ +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export class UmbDocumentRecycleBinServerDataSource { + #host: UmbControllerHost; + + constructor(host: UmbControllerHost) { + this.#host = host; + } + + trash(args: { unique: string }) { + return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdMoveToRecycleBin({ id: args.unique })); + } + + async restore(args: { unique: string; target: { unique: string | null } }) { + return tryExecuteAndNotify(this.#host, DocumentResource.putRecycleBinDocumentByIdRestore({ id: args.unique })); + } + + emptyBin() { + return tryExecuteAndNotify(this.#host, DocumentResource); + } + + async getOriginalParent(args: { unique: string }) { + const { data, error } = await tryExecuteAndNotify( + this.#host, + DocumentResource.getRecycleBinDocumentByIdOriginalParent({ id: args.unique }), + ); + + if (data) { + const mappedData = { + unique: data.id, + }; + + return { data: mappedData }; + } + + return { error }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/index.ts new file mode 100644 index 0000000000..50bcc134af --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/index.ts @@ -0,0 +1 @@ +export { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from './constants.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/manifests.ts new file mode 100644 index 0000000000..b2b0b2ac63 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/manifests.ts @@ -0,0 +1,11 @@ +import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from './constants.js'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +const queryRepository: ManifestRepository = { + type: 'repository', + alias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, + name: 'Document Recycle Bin Repository', + api: () => import('./document-recycle-bin.repository.js'), +}; + +export const manifests = [queryRepository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/types.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/types.ts new file mode 100644 index 0000000000..e69de29bb2 From 81ee95a7185cabf709af9a9873395087525aba5a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 16:15:17 +0200 Subject: [PATCH 006/177] use correct method --- .../repository/document-recycle-bin.server.data-source.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts index 3a4d74b20d..3e00d33711 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts @@ -1,4 +1,5 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; export class UmbDocumentRecycleBinServerDataSource { @@ -17,7 +18,7 @@ export class UmbDocumentRecycleBinServerDataSource { } emptyBin() { - return tryExecuteAndNotify(this.#host, DocumentResource); + return tryExecuteAndNotify(this.#host, DocumentResource.deleteRecycleBinDocument()); } async getOriginalParent(args: { unique: string }) { From 0ae27a683380d14a4914154d23778fd35ce276a9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 16:15:35 +0200 Subject: [PATCH 007/177] move import --- .../documents/documents/recycle-bin/entity-action/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index 4c6a590d4c..d665404052 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -1,6 +1,6 @@ +import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; -import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; export const manifests = [ { From c722eb48edef7d913a14400c967b5a80f1a4bbe1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 16:15:56 +0200 Subject: [PATCH 008/177] use correct method name on repo --- .../core/entity-action/common/trash/trash.action.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 14ab66edb3..94e2da1304 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,12 @@ import { UmbEntityActionBase } from '../../entity-action-base.js'; import { UmbRequestReloadStructureForEntityEvent } from '../../request-reload-structure-for-entity.event.js'; -import { createExtensionApiByAlias, type MetaEntityActionDeleteKind } from '@umbraco-cms/backoffice/extension-registry'; +import type { MetaEntityActionTrashKind } from '@umbraco-cms/backoffice/extension-registry'; +import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; -export class UmbDeleteEntityAction extends UmbEntityActionBase { +export class UmbTrashEntityAction extends UmbEntityActionBase { // TODO: make base type for item and detail models async execute() { @@ -28,8 +29,8 @@ export class UmbDeleteEntityAction extends UmbEntityActionBase(this, this.args.meta.recycleBinRepositoryAlias); + await recycleBinRepository.requestTrash({ unique: this.args.unique }); const actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); const event = new UmbRequestReloadStructureForEntityEvent({ @@ -42,4 +43,4 @@ export class UmbDeleteEntityAction extends UmbEntityActionBase Date: Tue, 2 Apr 2024 16:46:57 +0200 Subject: [PATCH 009/177] register workspace for documents in recycle bin --- .../documents/recycle-bin/manifests.ts | 9 +++- .../recycle-bin/workspace/constants.ts | 1 + ...nt-recycle-bin-workspace-editor.element.ts | 45 +++++++++++++++++++ ...ent-recycle-bin-workspace.context-token.ts | 12 +++++ .../document-recycle-bin-workspace.context.ts | 34 ++++++++++++++ .../documents/recycle-bin/workspace/index.ts | 1 + .../recycle-bin/workspace/manifests.ts | 14 ++++++ 7 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts index 1277abe4c1..96b9d4b78a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts @@ -2,5 +2,12 @@ import { manifests as entityActionManifests } from './entity-action/manifests.js import { manifests as menuItemManifests } from './menu-item/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; -export const manifests = [...treeManifests, ...menuItemManifests, ...entityActionManifests, ...repositoryManifests]; +export const manifests = [ + ...entityActionManifests, + ...menuItemManifests, + ...repositoryManifests, + ...treeManifests, + ...workspaceManifests, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts new file mode 100644 index 0000000000..61e0e19e34 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts @@ -0,0 +1 @@ +export const UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_ALIAS = 'Umb.Workspace.Document.RecycleBin'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts new file mode 100644 index 0000000000..7477cf00d0 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts @@ -0,0 +1,45 @@ +import { UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT } from './document-recycle-bin-workspace.context-token.js'; +import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; + +const elementName = 'umb-document-recycle-bin-editor'; + +@customElement(elementName) +export class UmbDocumentRecycleBinWorkspaceEditorElement extends UmbLitElement { + @property({ attribute: false }) + manifest?: ManifestWorkspace; + + #workspaceContext?: typeof UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT.TYPE; + + constructor() { + super(); + + this.consumeContext(UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT, (workspaceContext) => { + this.#workspaceContext = workspaceContext; + debugger; + }); + } + + render() { + return html`
Document Recycle Bin
`; + } + + static styles = [ + css` + :host { + display: block; + width: 100%; + height: 100%; + } + `, + ]; +} + +export { UmbDocumentRecycleBinWorkspaceEditorElement as element }; + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbDocumentRecycleBinWorkspaceEditorElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts new file mode 100644 index 0000000000..51b8c272eb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts @@ -0,0 +1,12 @@ +import type { UmbDocumentRecycleBinWorkspaceContext } from './document-recycle-bin-workspace.context.js'; +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; + +export const UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT = new UmbContextToken< + UmbWorkspaceContext, + UmbDocumentRecycleBinWorkspaceContext +>( + 'UmbWorkspaceContext', + undefined, + (context): context is UmbDocumentRecycleBinWorkspaceContext => context.getEntityType?.() === 'document-recycle-bin', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts new file mode 100644 index 0000000000..65163ed83f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts @@ -0,0 +1,34 @@ +import { UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_ALIAS } from './constants.js'; +import { UmbDocumentRecycleBinWorkspaceEditorElement } from './document-recycle-bin-workspace-editor.element.js'; +import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbRoutableWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; +import { UmbWorkspaceRouteManager } from '@umbraco-cms/backoffice/workspace'; + +export class UmbDocumentRecycleBinWorkspaceContext extends UmbControllerBase implements UmbRoutableWorkspaceContext { + public readonly workspaceAlias = UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_ALIAS; + public readonly routes = new UmbWorkspaceRouteManager(this); + + constructor(host: UmbControllerHost) { + super(host, 'Umb.Workspace.Document.RecycleBin'); + + this.routes.setRoutes([ + { + path: 'edit/:unique', + component: UmbDocumentRecycleBinWorkspaceEditorElement, + setup: (_component, info) => { + const unique = info.match.params.unique; + console.log('unique', unique); + }, + }, + ]); + } + + getEntityType() { + return 'document-recycle-bin'; + } + + destroy(): void {} +} + +export { UmbDocumentRecycleBinWorkspaceContext as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts @@ -0,0 +1 @@ + diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts new file mode 100644 index 0000000000..cd04c18b64 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts @@ -0,0 +1,14 @@ +import type { ManifestWorkspaces } from '@umbraco-cms/backoffice/extension-registry'; + +const workspace: ManifestWorkspaces = { + type: 'workspace', + kind: 'routable', + alias: 'Umb.Workspace.Document.RecycleBin', + name: 'Document Recycle Bin Workspace', + api: () => import('./document-recycle-bin-workspace.context.js'), + meta: { + entityType: 'document-recycle-bin', + }, +}; + +export const manifests = [workspace]; From d485ac05e94033175dbca5e3c893aee1ef83a54a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 19:09:27 +0200 Subject: [PATCH 010/177] call delete document end point when deleting a document --- .../repository/detail/document-detail.server.data-source.ts | 4 +--- 1 file changed, 1 insertion(+), 3 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 e8fb1638a3..aa8516e2b5 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 @@ -199,8 +199,6 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource Date: Tue, 2 Apr 2024 19:09:45 +0200 Subject: [PATCH 011/177] add delete entity action for documents in recycle bin --- .../documents/entity-actions/manifests.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 7455fc7762..b6d153fe5c 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,12 +1,24 @@ -import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_PICKER_MODAL } from '../modals/index.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE } from '../recycle-bin/index.js'; import { manifests as createManifests } from './create/manifests.js'; import { manifests as publicAccessManifests } from './public-access/manifests.js'; import { manifests as cultureAndHostnamesManifests } from './culture-and-hostnames/manifests.js'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ + { + type: 'entityAction', + kind: 'delete', + alias: 'Umb.EntityAction.Document.Delete', + name: 'Delete Document Entity Action', + forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], + meta: { + detailRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, + }, + }, { type: 'entityAction', kind: 'default', From ad843fb1b2045b562f8d691ff3e51e5187b0e946 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 19:11:54 +0200 Subject: [PATCH 012/177] move registration to recycle bin --- .../documents/entity-actions/manifests.ts | 14 +------------- .../recycle-bin/entity-action/manifests.ts | 14 +++++++++++++- 2 files changed, 14 insertions(+), 14 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 b6d153fe5c..7455fc7762 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,24 +1,12 @@ -import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../repository/index.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_PICKER_MODAL } from '../modals/index.js'; -import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE } from '../recycle-bin/index.js'; import { manifests as createManifests } from './create/manifests.js'; import { manifests as publicAccessManifests } from './public-access/manifests.js'; import { manifests as cultureAndHostnamesManifests } from './culture-and-hostnames/manifests.js'; import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ - { - type: 'entityAction', - kind: 'delete', - alias: 'Umb.EntityAction.Document.Delete', - name: 'Delete Document Entity Action', - forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], - meta: { - detailRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, - itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, - }, - }, { type: 'entityAction', kind: 'default', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index d665404052..4dad984bbc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -1,6 +1,7 @@ import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; -import { UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE } from '../entity.js'; export const manifests = [ { @@ -14,4 +15,15 @@ export const manifests = [ recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, }, }, + { + type: 'entityAction', + kind: 'delete', + alias: 'Umb.EntityAction.Document.Delete', + name: 'Delete Document Entity Action', + forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], + meta: { + itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, + detailRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + }, + }, ]; From 19fdafa852a83329e4b93fd3b384574bc458232c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 19:14:38 +0200 Subject: [PATCH 013/177] explicit naming --- .../recycle-bin/entity-action/manifests.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index 4dad984bbc..5ff1a0ed33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -7,7 +7,7 @@ export const manifests = [ { type: 'entityAction', kind: 'trash', - alias: 'Umb.EntityAction.Document.Trash', + alias: 'Umb.EntityAction.Document.RecycleBin.Trash', name: 'Trash Document Entity Action', forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { @@ -18,8 +18,19 @@ export const manifests = [ { type: 'entityAction', kind: 'delete', - alias: 'Umb.EntityAction.Document.Delete', - name: 'Delete Document Entity Action', + alias: 'Umb.EntityAction.Document.RecycleBin.Delete', + name: 'Delete Document From Recycle Bin Entity Action', + forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], + meta: { + itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, + detailRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + }, + }, + { + type: 'entityAction', + kind: 'restoreFromRecycleBin', + alias: 'Umb.EntityAction.Document.RecycleBin.Restore', + name: 'Restore Document From Recycle Bin Entity Action', forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], meta: { itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, From 86462af1145b76837710a006b7942018ade3ee87 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 20:54:28 +0200 Subject: [PATCH 014/177] add type --- .../documents/documents/recycle-bin/entity-action/manifests.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index 5ff1a0ed33..03ba4b98dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -2,8 +2,9 @@ import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.j import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE } from '../entity.js'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; -export const manifests = [ +export const manifests: Array = [ { type: 'entityAction', kind: 'trash', From 7b7c3e2d2e417675601489088ddddc76114e5aa4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 21:03:57 +0200 Subject: [PATCH 015/177] register restore from recycle bin kind --- .../restore-from-recycle-bin/manifests.ts | 3 +++ .../restore-from-recycle-bin.action.kind.ts | 21 +++++++++++++++++++ .../restore-from-recycle-bin.action.ts | 11 ++++++++++ .../packages/core/entity-action/manifests.ts | 2 ++ .../models/entity-action.model.ts | 13 ++++++++++++ .../core/extension-registry/models/index.ts | 14 +++++++------ 6 files changed, 58 insertions(+), 6 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/manifests.ts new file mode 100644 index 0000000000..6a25de540f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/manifests.ts @@ -0,0 +1,3 @@ +import { manifest as restoreFromRecycleBinKindManifest } from './restore-from-recycle-bin.action.kind.js'; + +export const manifests = [restoreFromRecycleBinKindManifest]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts new file mode 100644 index 0000000000..2ac61e4679 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts @@ -0,0 +1,21 @@ +import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../default/default.action.kind.js'; +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.EntityAction.RecycleBin.Restore', + matchKind: 'restoreFromRecycleBin', + matchType: 'entityAction', + manifest: { + ...UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST.manifest, + type: 'entityAction', + kind: 'restoreFromRecycleBin', + api: () => import('./restore-from-recycle-bin.action.js'), + weight: 100, + forEntityTypes: [], + meta: { + icon: 'icon-undo', + label: 'Restore...', + }, + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.ts new file mode 100644 index 0000000000..5c791ea562 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.ts @@ -0,0 +1,11 @@ +import { UmbEntityActionBase } from '../../entity-action-base.js'; +import type { MetaEntityActionRestoreFromRecycleBinKind } from '@umbraco-cms/backoffice/extension-registry'; + +export class UmbRestoreFromRecycleBinEntityAction extends UmbEntityActionBase { + async execute() { + debugger; + console.log(`execute sort for: ${this.args.unique}`); + } +} + +export { UmbRestoreFromRecycleBinEntityAction as api }; 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 index dcdfb2d4b3..8d36e21f1a 100644 --- 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 @@ -4,6 +4,7 @@ import { manifests as duplicateEntityActionManifests } from './common/duplicate/ import { manifests as moveEntityActionManifests } from './common/move/manifests.js'; import { manifests as trashEntityActionManifests } from './common/trash/manifests.js'; import { manifests as sortChildrenOfEntityActionManifests } from './common/sort-children-of/manifests.js'; +import { manifests as restoreFromRecycleBinEntityActionManifests } from './common/restore-from-recycle-bin/manifests.js'; export const manifests = [ ...defaultEntityActionManifests, @@ -12,4 +13,5 @@ export const manifests = [ ...moveEntityActionManifests, ...trashEntityActionManifests, ...sortChildrenOfEntityActionManifests, + ...restoreFromRecycleBinEntityActionManifests, ]; 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 ae8066a9ab..7930417432 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 @@ -67,6 +67,19 @@ export interface MetaEntityActionTrashKind extends MetaEntityActionDefaultKind { itemRepositoryAlias: string; } +// RESTORE FROM RECYCLE BIN + +export interface ManifestEntityActionRestoreFromRecycleBinKind + extends ManifestEntityAction { + type: 'entityAction'; + kind: 'restoreFromRecycleBin'; +} + +export interface MetaEntityActionRestoreFromRecycleBinKind extends MetaEntityActionDefaultKind { + recycleBinRepositoryAlias: string; + itemRepositoryAlias: string; +} + // RENAME export interface ManifestEntityActionRenameServerFileKind extends ManifestEntityAction { 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 df4635f601..2c31df1873 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 @@ -15,6 +15,7 @@ import type { ManifestEntityActionDeleteFolderKind, ManifestEntityActionDefaultKind, ManifestEntityActionTrashKind, + ManifestEntityActionRestoreFromRecycleBinKind, } from './entity-action.model.js'; import type { ManifestDynamicRootOrigin, ManifestDynamicRootQueryStep } from './dynamic-root.model.js'; import type { ManifestEntityBulkAction } from './entity-bulk-action.model.js'; @@ -105,16 +106,17 @@ export type * from './workspace.model.js'; export type ManifestEntityActions = | ManifestEntityAction + | ManifestEntityActionCreateFolderKind | ManifestEntityActionDefaultKind + | ManifestEntityActionDeleteFolderKind | ManifestEntityActionDeleteKind - | ManifestEntityActionRenameServerFileKind - | ManifestEntityActionReloadTreeItemChildrenKind | ManifestEntityActionDuplicateKind | ManifestEntityActionMoveKind - | ManifestEntityActionCreateFolderKind - | ManifestEntityActionUpdateFolderKind - | ManifestEntityActionDeleteFolderKind - | ManifestEntityActionTrashKind; + | ManifestEntityActionReloadTreeItemChildrenKind + | ManifestEntityActionRenameServerFileKind + | ManifestEntityActionRestoreFromRecycleBinKind + | ManifestEntityActionTrashKind + | ManifestEntityActionUpdateFolderKind; export type ManifestWorkspaceFooterApps = | ManifestWorkspaceFooterApp From eef66e29148920277efbbdd7c5aae622a4763121 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 21:25:17 +0200 Subject: [PATCH 016/177] register entity action for empty recycle bin --- .../empty-recycle-bin.action.kind.ts | 21 +++++++++++++++++++ .../empty-recycle-bin.action.ts | 11 ++++++++++ .../common/empty-recycle-bin/manifests.ts | 3 +++ .../core/entity-action/common/index.ts | 3 +++ .../packages/core/entity-action/manifests.ts | 2 ++ .../models/entity-action.model.ts | 11 ++++++++++ .../core/extension-registry/models/index.ts | 2 ++ .../recycle-bin/entity-action/manifests.ts | 16 +++++++++++--- 8 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts new file mode 100644 index 0000000000..afa76d64e2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts @@ -0,0 +1,21 @@ +import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../default/default.action.kind.js'; +import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifest: UmbBackofficeManifestKind = { + type: 'kind', + alias: 'Umb.Kind.EntityAction.RecycleBin.Empty', + matchKind: 'emptyRecycleBin', + matchType: 'entityAction', + manifest: { + ...UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST.manifest, + type: 'entityAction', + kind: 'emptyRecycleBin', + api: () => import('./empty-recycle-bin.action.js'), + weight: 100, + forEntityTypes: [], + meta: { + icon: 'icon-trash', + label: 'Empty...', + }, + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts new file mode 100644 index 0000000000..7e711e2cfc --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts @@ -0,0 +1,11 @@ +import { UmbEntityActionBase } from '../../entity-action-base.js'; +import type { MetaEntityActionEmptyRecycleBinKind } from '@umbraco-cms/backoffice/extension-registry'; + +export class UmbEmptyRecycleBinEntityAction extends UmbEntityActionBase { + async execute() { + debugger; + console.log(`execute empty for: ${this.args.unique}`); + } +} + +export { UmbEmptyRecycleBinEntityAction as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/manifests.ts new file mode 100644 index 0000000000..89241384bb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/manifests.ts @@ -0,0 +1,3 @@ +import { manifest as emptyRecycleBinKindManifest } from './empty-recycle-bin.action.kind.js'; + +export const manifests = [emptyRecycleBinKindManifest]; 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 b597275cdd..7a060051a3 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,6 @@ 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 { UmbRestoreFromRecycleBinEntityAction } from './restore-from-recycle-bin/restore-from-recycle-bin.action.js'; +export { UmbEmptyRecycleBinEntityAction } from './empty-recycle-bin/empty-recycle-bin.action.js'; 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 index 8d36e21f1a..1d4111b74e 100644 --- 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 @@ -5,6 +5,7 @@ import { manifests as moveEntityActionManifests } from './common/move/manifests. import { manifests as trashEntityActionManifests } from './common/trash/manifests.js'; import { manifests as sortChildrenOfEntityActionManifests } from './common/sort-children-of/manifests.js'; import { manifests as restoreFromRecycleBinEntityActionManifests } from './common/restore-from-recycle-bin/manifests.js'; +import { manifests as emptyRecycleBinEntityActionManifests } from './common/empty-recycle-bin/manifests.js'; export const manifests = [ ...defaultEntityActionManifests, @@ -14,4 +15,5 @@ export const manifests = [ ...trashEntityActionManifests, ...sortChildrenOfEntityActionManifests, ...restoreFromRecycleBinEntityActionManifests, + ...emptyRecycleBinEntityActionManifests, ]; 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 7930417432..6a17e1e326 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 @@ -80,6 +80,17 @@ export interface MetaEntityActionRestoreFromRecycleBinKind extends MetaEntityAct itemRepositoryAlias: string; } +// EMPTY RECYCLE BIN +export interface ManifestEntityActionEmptyRecycleBinKind + extends ManifestEntityAction { + type: 'entityAction'; + kind: 'emptyRecycleBin'; +} + +export interface MetaEntityActionEmptyRecycleBinKind extends MetaEntityActionDefaultKind { + recycleBinRepositoryAlias: string; +} + // RENAME export interface ManifestEntityActionRenameServerFileKind extends ManifestEntityAction { 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 2c31df1873..2517521319 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 @@ -16,6 +16,7 @@ import type { ManifestEntityActionDefaultKind, ManifestEntityActionTrashKind, ManifestEntityActionRestoreFromRecycleBinKind, + ManifestEntityActionEmptyRecycleBinKind, } from './entity-action.model.js'; import type { ManifestDynamicRootOrigin, ManifestDynamicRootQueryStep } from './dynamic-root.model.js'; import type { ManifestEntityBulkAction } from './entity-bulk-action.model.js'; @@ -111,6 +112,7 @@ export type ManifestEntityActions = | ManifestEntityActionDeleteFolderKind | ManifestEntityActionDeleteKind | ManifestEntityActionDuplicateKind + | ManifestEntityActionEmptyRecycleBinKind | ManifestEntityActionMoveKind | ManifestEntityActionReloadTreeItemChildrenKind | ManifestEntityActionRenameServerFileKind diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index 03ba4b98dc..e5da085471 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; -import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE } from '../entity.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ @@ -24,7 +24,7 @@ export const manifests: Array = [ forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], meta: { itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, - detailRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + recycleBinRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, }, }, { @@ -35,7 +35,17 @@ export const manifests: Array = [ forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], meta: { itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, - detailRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, + }, + }, + { + type: 'entityAction', + kind: 'emptyRecycleBin', + alias: 'Umb.EntityAction.Document.RecycleBin.Empty', + name: 'Empty Document Recycle Bin Entity Action', + forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE], + meta: { + recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, }, }, ]; From 02140ce0c650d1033ad617172227418bc787f3ee Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 21:34:47 +0200 Subject: [PATCH 017/177] simplify method names --- .../empty-recycle-bin.action.kind.ts | 2 +- .../empty-recycle-bin.action.ts | 27 ++++++++++++++++--- .../document-recycle-bin.repository.ts | 10 +++---- ...document-recycle-bin.server.data-source.ts | 4 +-- 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts index afa76d64e2..bfba1de2a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-trash', - label: 'Empty...', + label: 'Empty Recycle Bin...', }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts index 7e711e2cfc..f095c0fbe8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts @@ -1,10 +1,31 @@ import { UmbEntityActionBase } from '../../entity-action-base.js'; -import type { MetaEntityActionEmptyRecycleBinKind } from '@umbraco-cms/backoffice/extension-registry'; +import { UmbRequestReloadStructureForEntityEvent } from '../../request-reload-structure-for-entity.event.js'; +import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; +import { + createExtensionApiByAlias, + type MetaEntityActionEmptyRecycleBinKind, +} from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; export class UmbEmptyRecycleBinEntityAction extends UmbEntityActionBase { async execute() { - debugger; - console.log(`execute empty for: ${this.args.unique}`); + await umbConfirmModal(this._host, { + headline: `Empty Recycle Bin`, + content: `When items are deleted from the recycle bin, they will be gone forever.`, + color: 'danger', + confirmLabel: 'Empty Recycle Bin', + }); + + const recycleBinRepository = await createExtensionApiByAlias(this, this.args.meta.recycleBinRepositoryAlias); + await recycleBinRepository.requestEmpty(); + + const actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); + const event = new UmbRequestReloadStructureForEntityEvent({ + unique: this.args.unique, + entityType: this.args.entityType, + }); + + actionEventContext.dispatchEvent(event); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts index 44a4f60478..44759d1e75 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts @@ -10,19 +10,19 @@ export class UmbDocumentRecycleBinRepository extends UmbRepositoryBase { this.#recycleBinSource = new UmbDocumentRecycleBinServerDataSource(this); } - async requestTrash(args) { + async requestTrash(args: any) { return this.#recycleBinSource.trash(args); } - async requestRestore(args) { + async requestRestore(args: any) { return this.#recycleBinSource.restore(args); } - async requestEmptyBin() { - return this.#recycleBinSource.emptyBin(); + async requestEmpty() { + return this.#recycleBinSource.empty(); } - async requestOriginalParent(args) { + async requestOriginalParent(args: any) { return this.#recycleBinSource.getOriginalParent(args); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts index 3e00d33711..2b67253d6c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts @@ -13,11 +13,11 @@ export class UmbDocumentRecycleBinServerDataSource { return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdMoveToRecycleBin({ id: args.unique })); } - async restore(args: { unique: string; target: { unique: string | null } }) { + restore(args: { unique: string; target: { unique: string | null } }) { return tryExecuteAndNotify(this.#host, DocumentResource.putRecycleBinDocumentByIdRestore({ id: args.unique })); } - emptyBin() { + empty() { return tryExecuteAndNotify(this.#host, DocumentResource.deleteRecycleBinDocument()); } From 755028866bd876b6a3b88cb4304efbd4e3fe405c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 2 Apr 2024 21:42:22 +0200 Subject: [PATCH 018/177] export repository response types --- src/Umbraco.Web.UI.Client/src/packages/core/repository/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0002dac5a9..7557680428 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 @@ -7,4 +7,4 @@ export * from './detail/index.js'; export type { UmbDataSourceResponse, UmbDataSourceErrorResponse } from './data-source-response.interface.js'; export type { UmbMoveDataSource, UmbMoveRepository } from './move/index.js'; export type { UmbDuplicateDataSource, UmbDuplicateRepository } from './duplicate/index.js'; -export type { UmbPagedModel } from './types.js'; +export type { UmbPagedModel, UmbRepositoryResponse, UmbRepositoryErrorResponse } from './types.js'; From 89c8bf7a5a053d38c063a6748f26e7aa001b7480 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 08:53:39 +0200 Subject: [PATCH 019/177] add recycle bin core module --- src/Umbraco.Web.UI.Client/package.json | 1 + src/Umbraco.Web.UI.Client/tsconfig.json | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index b8c968c82c..ce6aa21b9a 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -61,6 +61,7 @@ "./property-action": "./dist-cms/packages/core/property-action/index.js", "./property-editor": "./dist-cms/packages/core/property-editor/index.js", "./property": "./dist-cms/packages/core/property/index.js", + "./recycle-bin": "./dist-cms/packages/core/recycle-bin/index.js", "./relation-type": "./dist-cms/packages/relations/relation-types/index.js", "./relations": "./dist-cms/packages/relations/relations/index.js", "./repository": "./dist-cms/packages/core/repository/index.js", diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 33bf53145e..1ef7e39c5b 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -79,6 +79,7 @@ "@umbraco-cms/backoffice/property-action": ["./src/packages/core/property-action/index.ts"], "@umbraco-cms/backoffice/property-editor": ["./src/packages/core/property-editor/index.ts"], "@umbraco-cms/backoffice/property": ["./src/packages/core/property/index.ts"], + "@umbraco-cms/backoffice/recycle-bin": ["./src/packages/core/recycle-bin/index.ts"], "@umbraco-cms/backoffice/relation-type": ["./src/packages/relations/relation-types/index.ts"], "@umbraco-cms/backoffice/relations": ["./src/packages/relations/relations/index.ts"], "@umbraco-cms/backoffice/repository": ["./src/packages/core/repository/index.ts"], From 95bd7beedfdcbc2ad023b8a5fc25b5e4b5962861 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 08:54:00 +0200 Subject: [PATCH 020/177] add interface + repo base --- .../src/packages/core/recycle-bin/index.ts | 4 ++ .../recycle-bin-data-source.interface.ts | 12 +++++ .../recycle-bin-repository-base.ts | 53 +++++++++++++++++++ .../recycle-bin-repository.interface.ts | 9 ++++ 4 files changed, 78 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts new file mode 100644 index 0000000000..bae80c5872 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts @@ -0,0 +1,4 @@ +export { UmbRecycleBinRepositoryBase } from './recycle-bin-repository-base.js'; + +export type { UmbRecycleBinDataSource } from './recycle-bin-data-source.interface.js'; +export type { UmbRecycleBinRepository } from './recycle-bin-repository.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts new file mode 100644 index 0000000000..1781308748 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts @@ -0,0 +1,12 @@ +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; + +export interface UmbRecycleBinDataSourceConstructor { + new (host: UmbControllerHost): UmbRecycleBinDataSource; +} + +export interface UmbRecycleBinDataSource { + trash(args: any): Promise; + restore(args: any): Promise; + empty(): Promise; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts new file mode 100644 index 0000000000..01483486e9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts @@ -0,0 +1,53 @@ +import type { UmbRecycleBinRepository } from './recycle-bin-repository.interface.js'; +import type { + UmbRecycleBinDataSource, + UmbRecycleBinDataSourceConstructor, +} from './recycle-bin-data-source.interface.js'; +import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; + +export abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryBase implements UmbRecycleBinRepository { + #recycleBinSource: UmbRecycleBinDataSource; + + constructor(host: UmbControllerHost, recycleBinSource: UmbRecycleBinDataSourceConstructor) { + super(host); + this.#recycleBinSource = new recycleBinSource(this); + } + + async requestTrash(args: any) { + const { error } = await this.#recycleBinSource.trash(args); + + if (!error) { + const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT); + const notification = { data: { message: `Trashed` } }; + notificationContext.peek('positive', notification); + } + + return { error }; + } + + async requestRestore(args: any) { + const { error } = await this.#recycleBinSource.restore(args); + + if (!error) { + const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT); + const notification = { data: { message: `Restored` } }; + notificationContext.peek('positive', notification); + } + + return { error }; + } + + async requestEmpty() { + const { error } = await this.#recycleBinSource.empty(); + + if (!error) { + const notificationContext = await this.getContext(UMB_NOTIFICATION_CONTEXT); + const notification = { data: { message: `Recycle Bin Emptied` } }; + notificationContext.peek('positive', notification); + } + + return this.#recycleBinSource.empty(); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts new file mode 100644 index 0000000000..bda95673f6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts @@ -0,0 +1,9 @@ +import type { UmbRepositoryBase } from '../repository/repository-base.js'; +import type { UmbRepositoryErrorResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; + +export interface UmbRecycleBinRepository extends UmbRepositoryBase, UmbApi { + requestTrash(args: any): Promise; + requestRestore(args: any): Promise; + requestEmpty(): Promise; +} From d8e10b055b38b9156e8a53e66b5aaf4f68ecb101 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 08:55:21 +0200 Subject: [PATCH 021/177] extend recycle bin repo base --- .../document-recycle-bin.repository.ts | 25 +++---------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts index 44759d1e75..2a33cafed8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts @@ -1,29 +1,10 @@ +import { UmbRecycleBinRepositoryBase } from '@umbraco-cms/backoffice/recycle-bin'; import { UmbDocumentRecycleBinServerDataSource } from './document-recycle-bin.server.data-source.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; - -export class UmbDocumentRecycleBinRepository extends UmbRepositoryBase { - #recycleBinSource: UmbDocumentRecycleBinServerDataSource; +export class UmbDocumentRecycleBinRepository extends UmbRecycleBinRepositoryBase { constructor(host: UmbControllerHost) { - super(host); - this.#recycleBinSource = new UmbDocumentRecycleBinServerDataSource(this); - } - - async requestTrash(args: any) { - return this.#recycleBinSource.trash(args); - } - - async requestRestore(args: any) { - return this.#recycleBinSource.restore(args); - } - - async requestEmpty() { - return this.#recycleBinSource.empty(); - } - - async requestOriginalParent(args: any) { - return this.#recycleBinSource.getOriginalParent(args); + super(host, UmbDocumentRecycleBinServerDataSource); } } From 66bb43438b562c77259cb19508d35473ab58d248 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 08:55:47 +0200 Subject: [PATCH 022/177] remove method from source --- ...document-recycle-bin.server.data-source.ts | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts index 2b67253d6c..2b4585adff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts @@ -1,8 +1,9 @@ +import type { UmbRecycleBinDataSource } from '@umbraco-cms/backoffice/recycle-bin'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -export class UmbDocumentRecycleBinServerDataSource { +export class UmbDocumentRecycleBinServerDataSource implements UmbRecycleBinDataSource { #host: UmbControllerHost; constructor(host: UmbControllerHost) { @@ -20,21 +21,4 @@ export class UmbDocumentRecycleBinServerDataSource { empty() { return tryExecuteAndNotify(this.#host, DocumentResource.deleteRecycleBinDocument()); } - - async getOriginalParent(args: { unique: string }) { - const { data, error } = await tryExecuteAndNotify( - this.#host, - DocumentResource.getRecycleBinDocumentByIdOriginalParent({ id: args.unique }), - ); - - if (data) { - const mappedData = { - unique: data.id, - }; - - return { data: mappedData }; - } - - return { error }; - } } From 6a2aa103fa530e62de30673c80ca13b1ec404a85 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 11:03:39 +0200 Subject: [PATCH 023/177] use document entity type for recycle bin items --- .../documents/entity-actions/manifests.ts | 13 +++++- .../recycle-bin/entity-action/manifests.ts | 15 +------ .../documents/documents/recycle-bin/entity.ts | 1 - .../documents/recycle-bin/manifests.ts | 9 +--- .../recycle-bin/menu-item/manifests.ts | 5 ++- .../documents/recycle-bin/tree/constants.ts | 3 ++ ...ent-recycle-bin-tree.server.data-source.ts | 21 ++++++++- .../documents/recycle-bin/tree/index.ts | 2 +- .../documents/recycle-bin/tree/manifests.ts | 17 +++---- .../reload-tree-item-children/manifests.ts | 4 +- .../documents/recycle-bin/tree/types.ts | 5 ++- .../recycle-bin/workspace/constants.ts | 1 - ...nt-recycle-bin-workspace-editor.element.ts | 45 ------------------- ...ent-recycle-bin-workspace.context-token.ts | 12 ----- .../document-recycle-bin-workspace.context.ts | 34 -------------- .../documents/recycle-bin/workspace/index.ts | 1 - .../recycle-bin/workspace/manifests.ts | 14 ------ 17 files changed, 55 insertions(+), 147 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/constants.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts 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 7455fc7762..a2f1beea81 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_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js'; +import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_PICKER_MODAL } from '../modals/index.js'; import { manifests as createManifests } from './create/manifests.js'; @@ -7,6 +7,17 @@ import { manifests as cultureAndHostnamesManifests } from './culture-and-hostnam import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ + { + type: 'entityAction', + kind: 'delete', + alias: 'Umb.EntityAction.Document.Delete', + name: 'Delete Document Entity Action', + forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], + meta: { + itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, + detailRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, + }, + }, { type: 'entityAction', kind: 'default', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index e5da085471..41af2a423c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; -import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ @@ -16,23 +16,12 @@ export const manifests: Array = [ recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, }, }, - { - type: 'entityAction', - kind: 'delete', - alias: 'Umb.EntityAction.Document.RecycleBin.Delete', - name: 'Delete Document From Recycle Bin Entity Action', - forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], - meta: { - itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, - recycleBinRepositoryAlias: UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, - }, - }, { type: 'entityAction', kind: 'restoreFromRecycleBin', alias: 'Umb.EntityAction.Document.RecycleBin.Restore', name: 'Restore Document From Recycle Bin Entity Action', - forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], + forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity.ts index 5751458ba0..1e39a86afa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity.ts @@ -1,2 +1 @@ export const UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE = 'document-recycle-bin-root'; -export const UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE = 'document-recycle-bin'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts index 96b9d4b78a..423a1afcc2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/manifests.ts @@ -2,12 +2,5 @@ import { manifests as entityActionManifests } from './entity-action/manifests.js import { manifests as menuItemManifests } from './menu-item/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; -import { manifests as workspaceManifests } from './workspace/manifests.js'; -export const manifests = [ - ...entityActionManifests, - ...menuItemManifests, - ...repositoryManifests, - ...treeManifests, - ...workspaceManifests, -]; +export const manifests = [...entityActionManifests, ...menuItemManifests, ...repositoryManifests, ...treeManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts index 60699a97fa..418ed9c109 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/menu-item/manifests.ts @@ -1,14 +1,15 @@ import { UMB_CONTENT_MENU_ALIAS } from '../../menu/manifests.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_TREE_ALIAS } from '../tree/index.js'; import type { ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extension-registry'; const menuItem: ManifestMenuItemTreeKind = { type: 'menuItem', kind: 'tree', - alias: 'Umb.MenuItem.DocumentRecycleBin', + alias: 'Umb.MenuItem.Document.RecycleBin', name: 'Document Recycle Bin Menu Item', weight: 100, meta: { - treeAlias: 'Umb.Tree.DocumentRecycleBin', + treeAlias: UMB_DOCUMENT_RECYCLE_BIN_TREE_ALIAS, label: 'Recycle Bin', icon: 'icon-trash', menus: [UMB_CONTENT_MENU_ALIAS], diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/constants.ts new file mode 100644 index 0000000000..492e6f36ed --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/constants.ts @@ -0,0 +1,3 @@ +export const UMB_DOCUMENT_RECYCLE_BIN_TREE_REPOSITORY_ALIAS = 'Umb.Repository.Document.RecycleBin.Tree'; +export const UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS = 'Umb.Store.Document.RecycleBin.Tree'; +export const UMB_DOCUMENT_RECYCLE_BIN_TREE_ALIAS = 'Umb.Tree.Document.RecycleBin'; 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 d5a1ee2f36..4fa19adbd0 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,3 +1,4 @@ +import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import type { UmbDocumentRecycleBinTreeItemModel } from './types.js'; import type { DocumentRecycleBinItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api'; @@ -61,9 +62,25 @@ const mapper = (item: DocumentRecycleBinItemResponseModel): UmbDocumentRecycleBi return { unique: item.id, parentUnique: item.parent ? item.parent.id : null, - entityType: 'document-recycle-bin', + entityType: UMB_DOCUMENT_ENTITY_TYPE, + noAccess: false, + isTrashed: true, hasChildren: item.hasChildren, - isFolder: false, + isProtected: false, + documentType: { + unique: item.documentType.id, + icon: item.documentType.icon, + collection: item.documentType.collection ? { unique: item.documentType.collection.id } : null, + }, + variants: item.variants.map((variant) => { + return { + name: variant.name, + culture: variant.culture || null, + segment: null, // TODO: add segment to the backend API? + 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/recycle-bin/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/index.ts index 995f0b5ebf..1c6d9bc43c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/tree/index.ts @@ -3,7 +3,7 @@ export { UMB_DOCUMENT_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS, UMB_DOCUMENT_RECYCLE_BIN_TREE_ALIAS, -} from './manifests.js'; +} from './constants.js'; export { UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT } from './document-recycle-bin-tree.store.js'; export { type UmbDocumentRecycleBinTreeStore } from './document-recycle-bin-tree.store.js'; export * from './types.js'; 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 0b7795f149..69c76b9235 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,4 +1,9 @@ -import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; +import { + UMB_DOCUMENT_RECYCLE_BIN_TREE_ALIAS, + UMB_DOCUMENT_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, + UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS, +} from './constants.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'; @@ -9,10 +14,6 @@ import type { ManifestTreeStore, } from '@umbraco-cms/backoffice/extension-registry'; -export const UMB_DOCUMENT_RECYCLE_BIN_TREE_REPOSITORY_ALIAS = 'Umb.Repository.DocumentRecycleBin.Tree'; -export const UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS = 'Umb.Store.DocumentRecycleBin.Tree'; -export const UMB_DOCUMENT_RECYCLE_BIN_TREE_ALIAS = 'Umb.Tree.DocumentRecycleBin'; - const treeRepository: ManifestRepository = { type: 'repository', alias: UMB_DOCUMENT_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, @@ -40,9 +41,9 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', kind: 'default', - alias: 'Umb.TreeItem.DocumentRecycleBin', - name: 'DocumentRecycleBin Tree Item', - forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE], + alias: 'Umb.TreeItem.Document.RecycleBin', + name: 'Document Recycle Bin Tree Item', + forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE], }; 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 index 9b90625f81..35463faee4 100644 --- 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 @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../../entity.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ @@ -7,6 +7,6 @@ export const manifests: Array = [ kind: 'reloadTreeItemChildren', alias: 'Umb.EntityAction.DocumentRecycleBin.Tree.ReloadChildrenOf', name: 'Reload Document Recycle Bin Tree Item Children Entity Action', - forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ENTITY_TYPE, UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE], + forEntityTypes: [UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE], }, ]; 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 5c67491e8e..d84c7821f1 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,6 @@ -import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; +import type { UmbDocumentTreeItemModel } from '../../tree/index.js'; +import type { UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; -export interface UmbDocumentRecycleBinTreeItemModel extends UmbUniqueTreeItemModel {} +export interface UmbDocumentRecycleBinTreeItemModel extends UmbDocumentTreeItemModel {} export interface UmbDocumentRecycleBinTreeRootModel extends UmbUniqueTreeRootModel {} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts deleted file mode 100644 index 61e0e19e34..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_ALIAS = 'Umb.Workspace.Document.RecycleBin'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts deleted file mode 100644 index 7477cf00d0..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace-editor.element.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT } from './document-recycle-bin-workspace.context-token.js'; -import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extension-registry'; - -const elementName = 'umb-document-recycle-bin-editor'; - -@customElement(elementName) -export class UmbDocumentRecycleBinWorkspaceEditorElement extends UmbLitElement { - @property({ attribute: false }) - manifest?: ManifestWorkspace; - - #workspaceContext?: typeof UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT.TYPE; - - constructor() { - super(); - - this.consumeContext(UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT, (workspaceContext) => { - this.#workspaceContext = workspaceContext; - debugger; - }); - } - - render() { - return html`
Document Recycle Bin
`; - } - - static styles = [ - css` - :host { - display: block; - width: 100%; - height: 100%; - } - `, - ]; -} - -export { UmbDocumentRecycleBinWorkspaceEditorElement as element }; - -declare global { - interface HTMLElementTagNameMap { - [elementName]: UmbDocumentRecycleBinWorkspaceEditorElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts deleted file mode 100644 index 51b8c272eb..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context-token.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { UmbDocumentRecycleBinWorkspaceContext } from './document-recycle-bin-workspace.context.js'; -import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import type { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; - -export const UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_CONTEXT = new UmbContextToken< - UmbWorkspaceContext, - UmbDocumentRecycleBinWorkspaceContext ->( - 'UmbWorkspaceContext', - undefined, - (context): context is UmbDocumentRecycleBinWorkspaceContext => context.getEntityType?.() === 'document-recycle-bin', -); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts deleted file mode 100644 index 65163ed83f..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/document-recycle-bin-workspace.context.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_ALIAS } from './constants.js'; -import { UmbDocumentRecycleBinWorkspaceEditorElement } from './document-recycle-bin-workspace-editor.element.js'; -import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbRoutableWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; -import { UmbWorkspaceRouteManager } from '@umbraco-cms/backoffice/workspace'; - -export class UmbDocumentRecycleBinWorkspaceContext extends UmbControllerBase implements UmbRoutableWorkspaceContext { - public readonly workspaceAlias = UMB_DOCUMENT_RECYCLE_BIN_WORKSPACE_ALIAS; - public readonly routes = new UmbWorkspaceRouteManager(this); - - constructor(host: UmbControllerHost) { - super(host, 'Umb.Workspace.Document.RecycleBin'); - - this.routes.setRoutes([ - { - path: 'edit/:unique', - component: UmbDocumentRecycleBinWorkspaceEditorElement, - setup: (_component, info) => { - const unique = info.match.params.unique; - console.log('unique', unique); - }, - }, - ]); - } - - getEntityType() { - return 'document-recycle-bin'; - } - - destroy(): void {} -} - -export { UmbDocumentRecycleBinWorkspaceContext as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts deleted file mode 100644 index 8b13789179..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/index.ts +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts deleted file mode 100644 index cd04c18b64..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/workspace/manifests.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { ManifestWorkspaces } from '@umbraco-cms/backoffice/extension-registry'; - -const workspace: ManifestWorkspaces = { - type: 'workspace', - kind: 'routable', - alias: 'Umb.Workspace.Document.RecycleBin', - name: 'Document Recycle Bin Workspace', - api: () => import('./document-recycle-bin-workspace.context.js'), - meta: { - entityType: 'document-recycle-bin', - }, -}; - -export const manifests = [workspace]; From fcad6f6cb1bc7ee0a5ac2145c62ceb012d96c19b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 11:05:43 +0200 Subject: [PATCH 024/177] align delete and trash weights --- .../core/entity-action/common/delete/delete.action.kind.ts | 2 +- .../core/entity-action/common/trash/trash.action.kind.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts index bf2f0136f6..12e5b0c6c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts @@ -11,7 +11,7 @@ export const manifest: UmbBackofficeManifestKind = { type: 'entityAction', kind: 'delete', api: () => import('./delete.action.js'), - weight: 900, + weight: 1100, forEntityTypes: [], meta: { icon: 'icon-trash', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts index 53a7273139..317632b65b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts @@ -11,7 +11,7 @@ export const manifest: UmbBackofficeManifestKind = { type: 'entityAction', kind: 'trash', api: () => import('./trash.action.js'), - weight: 1100, + weight: 1050, forEntityTypes: [], meta: { icon: 'icon-trash', From 1cf7b495eb81a9f1fa901cd6908d8490f4db644e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 12:09:36 +0200 Subject: [PATCH 025/177] move entity actions to recycle bin module --- .../src/packages/core/entity-action/common/index.ts | 4 ---- .../src/packages/core/entity-action/manifests.ts | 6 ------ .../empty-recycle-bin/empty-recycle-bin.action.kind.ts | 2 +- .../empty-recycle-bin/empty-recycle-bin.action.ts | 4 ++-- .../entity-action}/empty-recycle-bin/manifests.ts | 0 .../src/packages/core/recycle-bin/entity-action/index.ts | 3 +++ .../entity-action}/restore-from-recycle-bin/manifests.ts | 0 .../restore-from-recycle-bin.action.kind.ts | 2 +- .../restore-from-recycle-bin.action.ts | 2 +- .../entity-action}/trash/manifests.ts | 0 .../entity-action}/trash/trash.action.kind.ts | 2 +- .../entity-action}/trash/trash.action.ts | 4 ++-- .../src/packages/core/recycle-bin/index.ts | 5 +++++ .../src/packages/core/recycle-bin/manifests.ts | 9 +++++++++ 14 files changed, 25 insertions(+), 18 deletions(-) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/empty-recycle-bin/empty-recycle-bin.action.kind.ts (83%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/empty-recycle-bin/empty-recycle-bin.action.ts (83%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/empty-recycle-bin/manifests.ts (100%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/index.ts rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/restore-from-recycle-bin/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts (83%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/restore-from-recycle-bin/restore-from-recycle-bin.action.ts (81%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/trash/manifests.ts (100%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/trash/trash.action.kind.ts (83%) rename src/Umbraco.Web.UI.Client/src/packages/core/{entity-action/common => recycle-bin/entity-action}/trash/trash.action.ts (88%) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/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 7a060051a3..005791ff7b 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 @@ -2,7 +2,3 @@ export * from './duplicate/duplicate.action.js'; 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 { UmbRestoreFromRecycleBinEntityAction } from './restore-from-recycle-bin/restore-from-recycle-bin.action.js'; -export { UmbEmptyRecycleBinEntityAction } from './empty-recycle-bin/empty-recycle-bin.action.js'; 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 index 1d4111b74e..bbe018524f 100644 --- 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 @@ -2,18 +2,12 @@ import { manifests as defaultEntityActionManifests } from './default/manifests.j import { manifests as deleteEntityActionManifests } from './common/delete/manifests.js'; import { manifests as duplicateEntityActionManifests } from './common/duplicate/manifests.js'; import { manifests as moveEntityActionManifests } from './common/move/manifests.js'; -import { manifests as trashEntityActionManifests } from './common/trash/manifests.js'; import { manifests as sortChildrenOfEntityActionManifests } from './common/sort-children-of/manifests.js'; -import { manifests as restoreFromRecycleBinEntityActionManifests } from './common/restore-from-recycle-bin/manifests.js'; -import { manifests as emptyRecycleBinEntityActionManifests } from './common/empty-recycle-bin/manifests.js'; export const manifests = [ ...defaultEntityActionManifests, ...deleteEntityActionManifests, ...duplicateEntityActionManifests, ...moveEntityActionManifests, - ...trashEntityActionManifests, ...sortChildrenOfEntityActionManifests, - ...restoreFromRecycleBinEntityActionManifests, - ...emptyRecycleBinEntityActionManifests, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.kind.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.kind.ts index bfba1de2a0..de15a8826a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.kind.ts @@ -1,4 +1,4 @@ -import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../default/default.action.kind.js'; +import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../../entity-action/default/default.action.kind.js'; import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; export const manifest: UmbBackofficeManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts index f095c0fbe8..c718739f1b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/empty-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts @@ -1,5 +1,5 @@ -import { UmbEntityActionBase } from '../../entity-action-base.js'; -import { UmbRequestReloadStructureForEntityEvent } from '../../request-reload-structure-for-entity.event.js'; +import { UmbEntityActionBase } from '../../../entity-action/entity-action-base.js'; +import { UmbRequestReloadStructureForEntityEvent } from '../../../entity-action/request-reload-structure-for-entity.event.js'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; import { createExtensionApiByAlias, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/empty-recycle-bin/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/index.ts new file mode 100644 index 0000000000..df73603f45 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/index.ts @@ -0,0 +1,3 @@ +export { UmbTrashEntityAction } from './trash/trash.action.js'; +export { UmbRestoreFromRecycleBinEntityAction } from './restore-from-recycle-bin/restore-from-recycle-bin.action.js'; +export { UmbEmptyRecycleBinEntityAction } from './empty-recycle-bin/empty-recycle-bin.action.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts index 2ac61e4679..3be8eeefcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts @@ -1,4 +1,4 @@ -import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../default/default.action.kind.js'; +import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../../entity-action/default/default.action.kind.js'; import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; export const manifest: UmbBackofficeManifestKind = { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts similarity index 81% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts index 5c791ea562..c15e204383 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/restore-from-recycle-bin/restore-from-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts @@ -1,4 +1,4 @@ -import { UmbEntityActionBase } from '../../entity-action-base.js'; +import { UmbEntityActionBase } from '../../../entity-action/entity-action-base.js'; import type { MetaEntityActionRestoreFromRecycleBinKind } from '@umbraco-cms/backoffice/extension-registry'; export class UmbRestoreFromRecycleBinEntityAction extends UmbEntityActionBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/manifests.ts similarity index 100% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/manifests.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts similarity index 83% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts index 317632b65b..fa78c1185b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts @@ -1,4 +1,4 @@ -import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../default/default.action.kind.js'; +import { UMB_ENTITY_ACTION_DEFAULT_KIND_MANIFEST } from '../../../entity-action/default/default.action.kind.js'; import type { UmbBackofficeManifestKind } from '@umbraco-cms/backoffice/extension-registry'; export const manifest: UmbBackofficeManifestKind = { 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/recycle-bin/entity-action/trash/trash.action.ts similarity index 88% rename from src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.ts rename to src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts index 94e2da1304..09d8f6c08a 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/recycle-bin/entity-action/trash/trash.action.ts @@ -1,5 +1,5 @@ -import { UmbEntityActionBase } from '../../entity-action-base.js'; -import { UmbRequestReloadStructureForEntityEvent } from '../../request-reload-structure-for-entity.event.js'; +import { UmbEntityActionBase } from '../../../entity-action/entity-action-base.js'; +import { UmbRequestReloadStructureForEntityEvent } from '../../../entity-action/request-reload-structure-for-entity.event.js'; import type { MetaEntityActionTrashKind } from '@umbraco-cms/backoffice/extension-registry'; import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts index bae80c5872..49cec0d017 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts @@ -1,4 +1,9 @@ export { UmbRecycleBinRepositoryBase } from './recycle-bin-repository-base.js'; +export { + UmbTrashEntityAction, + UmbRestoreFromRecycleBinEntityAction, + UmbEmptyRecycleBinEntityAction, +} from './entity-action/index.js'; export type { UmbRecycleBinDataSource } from './recycle-bin-data-source.interface.js'; export type { UmbRecycleBinRepository } from './recycle-bin-repository.interface.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/manifests.ts new file mode 100644 index 0000000000..49e2d1fd73 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/manifests.ts @@ -0,0 +1,9 @@ +import { manifests as trashEntityActionManifests } from '../recycle-bin/entity-action/trash/manifests.js'; +import { manifests as restoreFromRecycleBinEntityActionManifests } from '../recycle-bin/entity-action/restore-from-recycle-bin/manifests.js'; +import { manifests as emptyRecycleBinEntityActionManifests } from '../recycle-bin/entity-action/empty-recycle-bin/manifests.js'; + +export const manifests = [ + ...trashEntityActionManifests, + ...restoreFromRecycleBinEntityActionManifests, + ...emptyRecycleBinEntityActionManifests, +]; From ec2befe77b3db8a9e55ff6e850e8fdd8d622509f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 12:11:58 +0200 Subject: [PATCH 026/177] register recycle bin manifests --- src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts index 66d11f9961..620b0e6c1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts @@ -8,6 +8,7 @@ import { manifests as localizationManifests } from './localization/manifests.js' import { manifests as modalManifests } from './modal/common/manifests.js'; import { manifests as propertyActionManifests } from './property-action/manifests.js'; import { manifests as propertyEditorManifests } from './property-editor/manifests.js'; +import { manifests as recycleBinManifests } from './recycle-bin/manifests.js'; import { manifests as sectionManifests } from './section/manifests.js'; import { manifests as serverFileSystemManifests } from './server-file-system/manifests.js'; import { manifests as settingsManifests } from './settings/manifests.js'; @@ -28,6 +29,7 @@ export const manifests: Array = [ ...modalManifests, ...propertyActionManifests, ...propertyEditorManifests, + ...recycleBinManifests, ...sectionManifests, ...serverFileSystemManifests, ...settingsManifests, From 43f91defd7eac67be9293bfef784ca9801c1af6c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 12:24:36 +0200 Subject: [PATCH 027/177] reload children when recycle bin is emptied --- .../empty-recycle-bin/empty-recycle-bin.action.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts index c718739f1b..9c1868b53e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts @@ -6,6 +6,7 @@ import { type MetaEntityActionEmptyRecycleBinKind, } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; +import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; export class UmbEmptyRecycleBinEntityAction extends UmbEntityActionBase { async execute() { @@ -20,7 +21,7 @@ export class UmbEmptyRecycleBinEntityAction extends UmbEntityActionBase Date: Wed, 3 Apr 2024 12:27:30 +0200 Subject: [PATCH 028/177] set children flag based on server result --- .../core/tree/tree-item/tree-item-base/tree-item-context-base.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts index 05ff0d5a58..ac71003504 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts @@ -171,6 +171,7 @@ export abstract class UmbTreeItemContextBase 0); this.pagination.setTotalItems(data.total); } From c9b117665e355bb715734b3bdb02b14ee89b4460 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 12:28:01 +0200 Subject: [PATCH 029/177] don't observe store for children --- .../tree-item-base/tree-item-context-base.ts | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts index ac71003504..09e8ce9c90 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.ts @@ -41,7 +41,6 @@ export abstract class UmbTreeItemContextBase { @@ -300,28 +295,6 @@ export abstract class UmbTreeItemContextBase children.length > 0), - ); - - // observe if any children will be added runtime to a tree item. Nested items/folders etc. - this.observe(hasChildrenObservable, (hasChildren) => { - /* 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.setValue(hasChildren); - } - this.#hasChildrenInitValueFlag = true; - }); - } - #onReloadRequest = (event: UmbEntityActionEvent) => { if (event.getUnique() !== this.unique) return; if (event.getEntityType() !== this.entityType) return; From bdf591ac9c660fd372df10f9d22f3d17e5c5682f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 12:43:14 +0200 Subject: [PATCH 030/177] remove unused --- .../documents/documents/recycle-bin/entity-action/manifests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index 41af2a423c..1fc4073ffd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -1,6 +1,6 @@ import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; -import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; From 55168364291d7cff654426dda100aefaee7d6227 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 15:29:46 +0200 Subject: [PATCH 031/177] register tree item for document root --- .../packages/documents/documents/tree/manifests.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 281c0d85a7..5b964c6b94 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 @@ -42,7 +42,15 @@ const treeItem: ManifestTreeItem = { name: 'Document Tree Item', element: () => import('./tree-item/document-tree-item.element.js'), api: UmbDocumentTreeItemContext, - forEntityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE], + forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], }; -export const manifests = [...reloadTreeItemChildrenManifests, tree, treeItem, treeRepository, treeStore]; +const rootTreeItem: ManifestTreeItem = { + type: 'treeItem', + kind: 'default', + alias: 'Umb.TreeItem.Document.Root', + name: 'Document Tree Item', + forEntityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE], +}; + +export const manifests = [...reloadTreeItemChildrenManifests, tree, treeItem, rootTreeItem, treeRepository, treeStore]; From 83d7e55ce779d46e600f22a964964d26762219e0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 16:12:30 +0200 Subject: [PATCH 032/177] add method to get original parent to repo + data source --- .../recycle-bin-data-source.interface.ts | 1 + .../recycle-bin/recycle-bin-repository-base.ts | 4 ++++ .../recycle-bin-repository.interface.ts | 3 ++- .../document-recycle-bin.server.data-source.ts | 17 +++++++++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts index 1781308748..b0de7b0ab9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts @@ -9,4 +9,5 @@ export interface UmbRecycleBinDataSource { trash(args: any): Promise; restore(args: any): Promise; empty(): Promise; + getOriginalParent(args: any): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts index 01483486e9..ac12e66d1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts @@ -50,4 +50,8 @@ export abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryBase impl return this.#recycleBinSource.empty(); } + + async requestOriginalParent(args: any) { + return this.#recycleBinSource.getOriginalParent(args); + } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts index bda95673f6..cda0a2448a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts @@ -1,9 +1,10 @@ import type { UmbRepositoryBase } from '../repository/repository-base.js'; -import type { UmbRepositoryErrorResponse } from '@umbraco-cms/backoffice/repository'; +import type { UmbRepositoryErrorResponse, UmbRepositoryResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbRecycleBinRepository extends UmbRepositoryBase, UmbApi { requestTrash(args: any): Promise; requestRestore(args: any): Promise; requestEmpty(): Promise; + requestOriginalParent(args: any): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts index 2b4585adff..7d59389943 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts @@ -21,4 +21,21 @@ export class UmbDocumentRecycleBinServerDataSource implements UmbRecycleBinDataS empty() { return tryExecuteAndNotify(this.#host, DocumentResource.deleteRecycleBinDocument()); } + + async getOriginalParent(args: { unique: string }) { + const { data, error } = await tryExecuteAndNotify( + this.#host, + DocumentResource.getRecycleBinDocumentByIdOriginalParent({ id: args.unique }), + ); + + if (data) { + const mappedData = { + unique: data.id, + }; + + return { data: mappedData }; + } + + return { error }; + } } From 63dcfa5955482429eb2c3b8f5fcbd3eda9a6f7e3 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 16:12:55 +0200 Subject: [PATCH 033/177] wip restore modal --- .../models/entity-action.model.ts | 1 + .../empty-recycle-bin.action.ts | 6 +- .../restore-from-recycle-bin/manifests.ts | 12 +- .../restore-from-recycle-bin/modal/index.ts | 2 + .../restore-from-recycle-bin-modal.element.ts | 123 ++++++++++++++++++ .../restore-from-recycle-bin-modal.token.ts | 25 ++++ .../restore-from-recycle-bin.action.kind.ts | 1 + .../restore-from-recycle-bin.action.ts | 29 ++++- .../entity-action/trash/trash.action.ts | 5 +- .../recycle-bin/entity-action/manifests.ts | 2 + 10 files changed, 200 insertions(+), 6 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts 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 6a17e1e326..3be5173679 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 @@ -78,6 +78,7 @@ export interface ManifestEntityActionRestoreFromRecycleBinKind export interface MetaEntityActionRestoreFromRecycleBinKind extends MetaEntityActionDefaultKind { recycleBinRepositoryAlias: string; itemRepositoryAlias: string; + pickerModal: UmbModalToken | string; } // EMPTY RECYCLE BIN diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts index 9c1868b53e..d2059161be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts @@ -1,5 +1,6 @@ import { UmbEntityActionBase } from '../../../entity-action/entity-action-base.js'; import { UmbRequestReloadStructureForEntityEvent } from '../../../entity-action/request-reload-structure-for-entity.event.js'; +import type { UmbRecycleBinRepository } from '../../recycle-bin-repository.interface.js'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; import { createExtensionApiByAlias, @@ -17,7 +18,10 @@ export class UmbEmptyRecycleBinEntityAction extends UmbEntityActionBase(this, this.args.meta.recycleBinRepositoryAlias); + const recycleBinRepository = await createExtensionApiByAlias( + this, + this.args.meta.recycleBinRepositoryAlias, + ); await recycleBinRepository.requestEmpty(); const actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/manifests.ts index 6a25de540f..09766fef9c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/manifests.ts @@ -1,3 +1,11 @@ -import { manifest as restoreFromRecycleBinKindManifest } from './restore-from-recycle-bin.action.kind.js'; +import { manifest as kindManifest } from './restore-from-recycle-bin.action.kind.js'; -export const manifests = [restoreFromRecycleBinKindManifest]; +export const manifests = [ + kindManifest, + { + type: 'modal', + alias: 'Umb.Modal.RecycleBin.Restore', + name: 'Restore From Recycle Bin Modal', + js: () => import('./modal/restore-from-recycle-bin-modal.element.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/index.ts new file mode 100644 index 0000000000..b4d1511566 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/index.ts @@ -0,0 +1,2 @@ +export * from './restore-from-recycle-bin-modal.token.js'; +export * from './restore-from-recycle-bin-modal.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts new file mode 100644 index 0000000000..85d45dee42 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -0,0 +1,123 @@ +import type { UmbRecycleBinRepository } from '../../../recycle-bin-repository.interface.js'; +import type { + UmbRestoreFromRecycleBinModalData, + UmbRestoreFromRecycleBinModalValue, +} from './restore-from-recycle-bin-modal.token.js'; +import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state, nothing, css } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UMB_MODAL_MANAGER_CONTEXT, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry'; +import { UMB_DOCUMENT_PICKER_MODAL } from '@umbraco-cms/backoffice/document'; +import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; + +const elementName = 'umb-restore-from-recycle-bin-modal'; + +@customElement(elementName) +export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< + UmbRestoreFromRecycleBinModalData, + UmbRestoreFromRecycleBinModalValue +> { + @state() + _customSelectDestination = false; + + @state() + _destinationItem: any; + + constructor() { + super(); + } + + protected async firstUpdated(_changedProperties: PropertyValueMap | Map): Promise { + super.firstUpdated(_changedProperties); + + const restoreDestination = await this.#requestRestoreDestination(); + + if (!restoreDestination) { + this._customSelectDestination = true; + this.requestUpdate(); + return; + } + } + + async #requestRestoreDestination(): Promise { + if (!this.data?.unique) throw new Error('Cannot restore an item without a unique identifier.'); + if (!this.data?.recycleBinRepositoryAlias) + throw new Error('Cannot restore an item without a recycle bin repository alias.'); + + const recycleBinRepository = await createExtensionApiByAlias( + this, + this.data.recycleBinRepositoryAlias, + ); + + const { data } = await recycleBinRepository.requestOriginalParent({ + unique: this.data.unique, + }); + + // The original parent is still available. We will restore to that + if (data) { + return data.unique; + } + + return undefined; + } + + async #onSelectCustomDestination() { + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modal = modalManager.open(this, UMB_DOCUMENT_PICKER_MODAL, { + data: { + multiple: false, + }, + }); + + const { selection } = await modal.onSubmit(); + + if (selection.length > 0) { + const destinationUnique = selection[0]; + + console.log(data); + debugger; + } + } + + async requestDestinationItem(unique: string | null) { + if (!this.data?.itemRepositoryAlias) throw new Error('Cannot restore an item without an item repository alias.'); + + const itemRepository = await createExtensionApiByAlias>(this, this.data.itemRepositoryAlias); + const { data } = await itemRepository.requestItems([unique]); + } + + render() { + return html` + + + ${this._customSelectDestination + ? html` +

Cannot automatically restore this item.

+

+ There is no location where this item can be automatically restored. You can select a new location + below. +

+ + Select location + ` + : nothing} +
+
+ `; + } + + #renderDestination() {} + + #renderCustomSelection() {} + + static styles = [UmbTextStyles, css``]; +} + +export default UmbRestoreFromRecycleBinModalElement; + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbRestoreFromRecycleBinModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts new file mode 100644 index 0000000000..0ef015f444 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts @@ -0,0 +1,25 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export interface UmbRestoreFromRecycleBinModalData { + unique: string; + entityType: string; + recycleBinRepositoryAlias: string; + itemRepositoryAlias: string; +} + +export interface UmbRestoreFromRecycleBinModalValue { + destination: { + unique: string; + entityType: string; + }; +} + +export const UMB_RESTORE_FROM_RECYCLE_BIN_MODAL = new UmbModalToken< + UmbRestoreFromRecycleBinModalData, + UmbRestoreFromRecycleBinModalValue +>('Umb.Modal.RecycleBin.Restore', { + modal: { + type: 'sidebar', + size: 'small', + }, +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts index 3be8eeefcc..18edd68da0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.kind.ts @@ -16,6 +16,7 @@ export const manifest: UmbBackofficeManifestKind = { meta: { icon: 'icon-undo', label: 'Restore...', + pickerModal: '', }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts index c15e204383..2aac69acc9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts @@ -1,10 +1,35 @@ import { UmbEntityActionBase } from '../../../entity-action/entity-action-base.js'; +import { UMB_RESTORE_FROM_RECYCLE_BIN_MODAL } from './modal/restore-from-recycle-bin-modal.token.js'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import { UmbRequestReloadStructureForEntityEvent } from '@umbraco-cms/backoffice/entity-action'; +import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; import type { MetaEntityActionRestoreFromRecycleBinKind } from '@umbraco-cms/backoffice/extension-registry'; export class UmbRestoreFromRecycleBinEntityAction extends UmbEntityActionBase { async execute() { - debugger; - console.log(`execute sort for: ${this.args.unique}`); + if (!this.args.unique) throw new Error('Cannot restore an item without a unique identifier.'); + + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const modal = modalManager.open(this, UMB_RESTORE_FROM_RECYCLE_BIN_MODAL, { + data: { + unique: this.args.unique, + entityType: this.args.entityType, + recycleBinRepositoryAlias: this.args.meta.recycleBinRepositoryAlias, + }, + }); + + const { destination } = await modal.onSubmit(); + + const actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); + const event = new UmbRequestReloadStructureForEntityEvent({ + unique: this.args.unique, + entityType: this.args.entityType, + }); + + actionEventContext.dispatchEvent(event); + + // TODO: reload destination + console.log(destination.unique, destination.entityType); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts index 09d8f6c08a..7983bb697f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts @@ -29,7 +29,10 @@ export class UmbTrashEntityAction extends UmbEntityActionBase(this, this.args.meta.recycleBinRepositoryAlias); + const recycleBinRepository = await createExtensionApiByAlias( + this, + this.args.meta.recycleBinRepositoryAlias, + ); await recycleBinRepository.requestTrash({ unique: this.args.unique }); const actionEventContext = await this.getContext(UMB_ACTION_EVENT_CONTEXT); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts index 1fc4073ffd..0ac0cd09be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/entity-action/manifests.ts @@ -2,6 +2,7 @@ import { UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.j import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js'; import { UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; import { UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UMB_DOCUMENT_PICKER_MODAL } from '../../modals/document-picker-modal.token.js'; import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; export const manifests: Array = [ @@ -25,6 +26,7 @@ export const manifests: Array = [ meta: { itemRepositoryAlias: UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, recycleBinRepositoryAlias: UMB_DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS, + pickerModal: UMB_DOCUMENT_PICKER_MODAL, }, }, { From 2cbb6aad955e0e5f2b6c9192ee3e101d65e37daa Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 19:33:24 +0200 Subject: [PATCH 034/177] pass item repo to modal --- .../restore-from-recycle-bin/restore-from-recycle-bin.action.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts index 2aac69acc9..71f04de803 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts @@ -15,6 +15,7 @@ export class UmbRestoreFromRecycleBinEntityAction extends UmbEntityActionBase Date: Wed, 3 Apr 2024 20:06:45 +0200 Subject: [PATCH 035/177] add arg types --- .../recycle-bin-data-source.interface.ts | 11 ++++++++--- .../recycle-bin-repository.interface.ts | 11 ++++++++--- .../src/packages/core/recycle-bin/types.ts | 14 ++++++++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts index b0de7b0ab9..8d381a83c9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-data-source.interface.ts @@ -1,3 +1,8 @@ +import type { + UmbRecycleBinOriginalParentRequestArgs, + UmbRecycleBinRestoreRequestArgs, + UmbRecycleBinTrashRequestArgs, +} from './types.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; @@ -6,8 +11,8 @@ export interface UmbRecycleBinDataSourceConstructor { } export interface UmbRecycleBinDataSource { - trash(args: any): Promise; - restore(args: any): Promise; + trash(args: UmbRecycleBinTrashRequestArgs): Promise; + restore(args: UmbRecycleBinRestoreRequestArgs): Promise; empty(): Promise; - getOriginalParent(args: any): Promise; + getOriginalParent(args: UmbRecycleBinOriginalParentRequestArgs): Promise; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts index cda0a2448a..92a6d2ba9a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository.interface.ts @@ -1,10 +1,15 @@ import type { UmbRepositoryBase } from '../repository/repository-base.js'; +import type { + UmbRecycleBinOriginalParentRequestArgs, + UmbRecycleBinRestoreRequestArgs, + UmbRecycleBinTrashRequestArgs, +} from './types.js'; import type { UmbRepositoryErrorResponse, UmbRepositoryResponse } from '@umbraco-cms/backoffice/repository'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; export interface UmbRecycleBinRepository extends UmbRepositoryBase, UmbApi { - requestTrash(args: any): Promise; - requestRestore(args: any): Promise; + requestTrash(args: UmbRecycleBinTrashRequestArgs): Promise; + requestRestore(args: UmbRecycleBinRestoreRequestArgs): Promise; requestEmpty(): Promise; - requestOriginalParent(args: any): Promise>; + requestOriginalParent(args: UmbRecycleBinOriginalParentRequestArgs): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/types.ts new file mode 100644 index 0000000000..3a74c7c86f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/types.ts @@ -0,0 +1,14 @@ +export interface UmbRecycleBinRestoreRequestArgs { + unique: string; + destination: { + unique: string | null; + }; +} + +export interface UmbRecycleBinTrashRequestArgs { + unique: string; +} + +export interface UmbRecycleBinOriginalParentRequestArgs { + unique: string; +} From 8c287e8757a77695fb7ae62709b1865a93387b89 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 21:04:36 +0200 Subject: [PATCH 036/177] export types --- .../src/packages/core/recycle-bin/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts index 49cec0d017..4cb027b622 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/index.ts @@ -7,3 +7,8 @@ export { export type { UmbRecycleBinDataSource } from './recycle-bin-data-source.interface.js'; export type { UmbRecycleBinRepository } from './recycle-bin-repository.interface.js'; +export type { + UmbRecycleBinRestoreRequestArgs, + UmbRecycleBinTrashRequestArgs, + UmbRecycleBinOriginalParentRequestArgs, +} from './types.js'; From cedeede9cd6036895562a2c4da416488597fbdcb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 21:04:49 +0200 Subject: [PATCH 037/177] Update document-recycle-bin.repository.ts --- .../recycle-bin/repository/document-recycle-bin.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts index 2a33cafed8..89422926fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.ts @@ -1,5 +1,5 @@ -import { UmbRecycleBinRepositoryBase } from '@umbraco-cms/backoffice/recycle-bin'; import { UmbDocumentRecycleBinServerDataSource } from './document-recycle-bin.server.data-source.js'; +import { UmbRecycleBinRepositoryBase } from '@umbraco-cms/backoffice/recycle-bin'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbDocumentRecycleBinRepository extends UmbRecycleBinRepositoryBase { From d2d6043ad1f9681eb065d41de9023a4474dbb613 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 21:05:00 +0200 Subject: [PATCH 038/177] value can be undefined --- .../modal/restore-from-recycle-bin-modal.token.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts index 0ef015f444..c3af787444 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts @@ -8,10 +8,12 @@ export interface UmbRestoreFromRecycleBinModalData { } export interface UmbRestoreFromRecycleBinModalValue { - destination: { - unique: string; - entityType: string; - }; + destination: + | { + unique: string; + entityType: string; + } + | undefined; } export const UMB_RESTORE_FROM_RECYCLE_BIN_MODAL = new UmbModalToken< From 4ba5ab19d5c8ca1563cbfc895bbf01d84cb01aad Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 21:05:23 +0200 Subject: [PATCH 039/177] automatic restore + custom selection --- .../restore-from-recycle-bin-modal.element.ts | 116 +++++++++++++----- 1 file changed, 87 insertions(+), 29 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts index 85d45dee42..4922c183ab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -18,25 +18,32 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< UmbRestoreFromRecycleBinModalData, UmbRestoreFromRecycleBinModalValue > { + @state() + _isAutomaticRestore = false; + @state() _customSelectDestination = false; @state() - _destinationItem: any; + _destinationItem?: any; - constructor() { - super(); - } + #recycleBinRepository?: UmbRecycleBinRepository; protected async firstUpdated(_changedProperties: PropertyValueMap | Map): Promise { super.firstUpdated(_changedProperties); - const restoreDestination = await this.#requestRestoreDestination(); + const restoreDestinationUnique = await this.#requestRestoreDestination(); - if (!restoreDestination) { - this._customSelectDestination = true; - this.requestUpdate(); - return; + if (restoreDestinationUnique) { + this._destinationItem = await this.#requestDestinationItem(restoreDestinationUnique); + if (!this._destinationItem) throw new Error('Cant find destination item.'); + + this.#setDestinationValue({ + unique: this._destinationItem.unique, + entityType: this._destinationItem.entityType, + }); + + this._isAutomaticRestore = true; } } @@ -45,16 +52,15 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< if (!this.data?.recycleBinRepositoryAlias) throw new Error('Cannot restore an item without a recycle bin repository alias.'); - const recycleBinRepository = await createExtensionApiByAlias( + this.#recycleBinRepository = await createExtensionApiByAlias( this, this.data.recycleBinRepositoryAlias, ); - const { data } = await recycleBinRepository.requestOriginalParent({ + const { data } = await this.#recycleBinRepository.requestOriginalParent({ unique: this.data.unique, }); - // The original parent is still available. We will restore to that if (data) { return data.unique; } @@ -74,44 +80,96 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< if (selection.length > 0) { const destinationUnique = selection[0]; + this._destinationItem = await this.#requestDestinationItem(destinationUnique); + if (!this._destinationItem) throw new Error('Cant find destination item.'); - console.log(data); - debugger; + this.#setDestinationValue({ + unique: this._destinationItem.unique, + entityType: this._destinationItem.entityType, + }); } } - async requestDestinationItem(unique: string | null) { + async #requestDestinationItem(unique: string | null) { + if (unique === null) { + console.log('ROOT IS SELECTED, HANDLE THIS CASE'); + return; + } + if (!this.data?.itemRepositoryAlias) throw new Error('Cannot restore an item without an item repository alias.'); const itemRepository = await createExtensionApiByAlias>(this, this.data.itemRepositoryAlias); const { data } = await itemRepository.requestItems([unique]); + + return data?.[0]; + } + + async #onSubmit() { + if (!this.value.destination) throw new Error('Cannot restore an item without a destination.'); + if (!this.#recycleBinRepository) throw new Error('Cannot restore an item without a destination.'); + if (!this.data?.unique) throw new Error('Cannot restore an item without a unique identifier.'); + + const { error } = await this.#recycleBinRepository.requestRestore({ + unique: this.data.unique, + destination: { unique: this.value.destination.unique }, + }); + + if (!error) { + this._submitModal(); + } + } + + #setDestinationValue(destination: { unique: string; entityType: string }) { + this.updateValue({ destination }); } render() { return html` - ${this._customSelectDestination - ? html` -

Cannot automatically restore this item.

-

- There is no location where this item can be automatically restored. You can select a new location - below. -

- - Select location - ` - : nothing} + ${this._isAutomaticRestore + ? html` Restore (ITEM NAME HERE) to ${this._destinationItem.name}` + : this.#renderCustomSelectDestination()}
+ ${this.#renderActions()}
`; } - #renderDestination() {} + #renderCustomSelectDestination() { + return html` +

Cannot automatically restore this item.

+

There is no location where this item can be automatically restored. You can select a new location below.

- #renderCustomSelection() {} + ${this._destinationItem + ? html` + + (this._destinationItem = undefined)} label="Remove" + >${this.localize.term('general_remove')} + + ` + : html` Select location`} + `; + } - static styles = [UmbTextStyles, css``]; + #renderActions() { + return html` + + + `; + } + + static styles = [ + UmbTextStyles, + css` + #placeholder { + width: 100%; + } + `, + ]; } export default UmbRestoreFromRecycleBinModalElement; From a206a8ae06461e72cabe48002b6f06681ceb38f2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 21:05:43 +0200 Subject: [PATCH 040/177] throw error if there is no destination returned --- .../restore-from-recycle-bin/restore-from-recycle-bin.action.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts index 71f04de803..acc07f4adb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts @@ -20,6 +20,7 @@ export class UmbRestoreFromRecycleBinEntityAction extends UmbEntityActionBase Date: Wed, 3 Apr 2024 21:06:28 +0200 Subject: [PATCH 041/177] add types --- ...document-recycle-bin.server.data-source.ts | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts index 7d59389943..85b33ab073 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts @@ -1,4 +1,9 @@ -import type { UmbRecycleBinDataSource } from '@umbraco-cms/backoffice/recycle-bin'; +import type { + UmbRecycleBinDataSource, + UmbRecycleBinRestoreRequestArgs, + UmbRecycleBinTrashRequestArgs, + UmbRecycleBinOriginalParentRequestArgs, +} from '@umbraco-cms/backoffice/recycle-bin'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { DocumentResource } from '@umbraco-cms/backoffice/external/backend-api'; import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; @@ -10,19 +15,27 @@ export class UmbDocumentRecycleBinServerDataSource implements UmbRecycleBinDataS this.#host = host; } - trash(args: { unique: string }) { + trash(args: UmbRecycleBinTrashRequestArgs) { return tryExecuteAndNotify(this.#host, DocumentResource.putDocumentByIdMoveToRecycleBin({ id: args.unique })); } - restore(args: { unique: string; target: { unique: string | null } }) { - return tryExecuteAndNotify(this.#host, DocumentResource.putRecycleBinDocumentByIdRestore({ id: args.unique })); + restore(args: UmbRecycleBinRestoreRequestArgs) { + return tryExecuteAndNotify( + this.#host, + DocumentResource.putRecycleBinDocumentByIdRestore({ + id: args.unique, + requestBody: { + target: args.destination.unique ? { id: args.destination.unique } : null, + }, + }), + ); } empty() { return tryExecuteAndNotify(this.#host, DocumentResource.deleteRecycleBinDocument()); } - async getOriginalParent(args: { unique: string }) { + async getOriginalParent(args: UmbRecycleBinOriginalParentRequestArgs) { const { data, error } = await tryExecuteAndNotify( this.#host, DocumentResource.getRecycleBinDocumentByIdOriginalParent({ id: args.unique }), From db54fdb75517b54fce2588b76a9cad8ac963e778 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 3 Apr 2024 21:07:36 +0200 Subject: [PATCH 042/177] import type --- .../core/recycle-bin/entity-action/trash/trash.action.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts index 7983bb697f..f1c9bbee35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts @@ -1,5 +1,6 @@ import { UmbEntityActionBase } from '../../../entity-action/entity-action-base.js'; import { UmbRequestReloadStructureForEntityEvent } from '../../../entity-action/request-reload-structure-for-entity.event.js'; +import type { UmbRecycleBinRepository } from '../../recycle-bin-repository.interface.js'; import type { MetaEntityActionTrashKind } from '@umbraco-cms/backoffice/extension-registry'; import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; From ed01e11319a2b0a8112735979cc473027077ce53 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 09:45:00 +0200 Subject: [PATCH 043/177] temp solution to restore to root --- .../restore-from-recycle-bin-modal.element.ts | 24 +++++++++++++++---- .../restore-from-recycle-bin-modal.token.ts | 2 +- ...document-recycle-bin.server.data-source.ts | 8 +++---- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts index 4922c183ab..2aad24f339 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -34,6 +34,21 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< const restoreDestinationUnique = await this.#requestRestoreDestination(); + // TODO: handle ROOT lookup. Currently, we can't look up the root in the item repository. + // This is a temp solution to show something in the UI. + if (restoreDestinationUnique === null) { + this._destinationItem = { + name: 'ROOT', + }; + + this.#setDestinationValue({ + unique: null, + entityType: 'unknown', + }); + + this._isAutomaticRestore = true; + } + if (restoreDestinationUnique) { this._destinationItem = await this.#requestDestinationItem(restoreDestinationUnique); if (!this._destinationItem) throw new Error('Cant find destination item.'); @@ -47,7 +62,7 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< } } - async #requestRestoreDestination(): Promise { + async #requestRestoreDestination(): Promise { if (!this.data?.unique) throw new Error('Cannot restore an item without a unique identifier.'); if (!this.data?.recycleBinRepositoryAlias) throw new Error('Cannot restore an item without a recycle bin repository alias.'); @@ -61,8 +76,9 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< unique: this.data.unique, }); - if (data) { - return data.unique; + // only check for undefined because data can be null if the parent is the root + if (data !== undefined) { + return data ? data.unique : null; } return undefined; @@ -119,7 +135,7 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< } } - #setDestinationValue(destination: { unique: string; entityType: string }) { + #setDestinationValue(destination: UmbRestoreFromRecycleBinModalValue['destination']) { this.updateValue({ destination }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts index c3af787444..ed2befadee 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts @@ -10,7 +10,7 @@ export interface UmbRestoreFromRecycleBinModalData { export interface UmbRestoreFromRecycleBinModalValue { destination: | { - unique: string; + unique: string | null; entityType: string; } | undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts index 85b33ab073..7c8dda0721 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.ts @@ -41,11 +41,9 @@ export class UmbDocumentRecycleBinServerDataSource implements UmbRecycleBinDataS DocumentResource.getRecycleBinDocumentByIdOriginalParent({ id: args.unique }), ); - if (data) { - const mappedData = { - unique: data.id, - }; - + // only check for undefined because data can be null if the parent is the root + if (data !== undefined) { + const mappedData = data ? { unique: data.id } : null; return { data: mappedData }; } From c1ab82c5170d91cd21eda45257e5d153bb8358c0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 10:11:47 +0200 Subject: [PATCH 044/177] clean up --- .../restore-from-recycle-bin-modal.element.ts | 43 +++++++------------ 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts index 2aad24f339..60f7bc070c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -21,9 +21,6 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< @state() _isAutomaticRestore = false; - @state() - _customSelectDestination = false; - @state() _destinationItem?: any; @@ -32,11 +29,18 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< protected async firstUpdated(_changedProperties: PropertyValueMap | Map): Promise { super.firstUpdated(_changedProperties); - const restoreDestinationUnique = await this.#requestRestoreDestination(); + const unique = await this.#requestAutomaticRestoreDestination(); + if (unique !== undefined) { + this._isAutomaticRestore = true; + this.something(unique); + } + } + + async something(unique: string | null) { // TODO: handle ROOT lookup. Currently, we can't look up the root in the item repository. // This is a temp solution to show something in the UI. - if (restoreDestinationUnique === null) { + if (unique === null) { this._destinationItem = { name: 'ROOT', }; @@ -45,24 +49,20 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< unique: null, entityType: 'unknown', }); - - this._isAutomaticRestore = true; } - if (restoreDestinationUnique) { - this._destinationItem = await this.#requestDestinationItem(restoreDestinationUnique); + if (unique) { + this._destinationItem = await this.#requestItem(unique); if (!this._destinationItem) throw new Error('Cant find destination item.'); this.#setDestinationValue({ unique: this._destinationItem.unique, entityType: this._destinationItem.entityType, }); - - this._isAutomaticRestore = true; } } - async #requestRestoreDestination(): Promise { + async #requestAutomaticRestoreDestination(): Promise { if (!this.data?.unique) throw new Error('Cannot restore an item without a unique identifier.'); if (!this.data?.recycleBinRepositoryAlias) throw new Error('Cannot restore an item without a recycle bin repository alias.'); @@ -95,23 +95,12 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< const { selection } = await modal.onSubmit(); if (selection.length > 0) { - const destinationUnique = selection[0]; - this._destinationItem = await this.#requestDestinationItem(destinationUnique); - if (!this._destinationItem) throw new Error('Cant find destination item.'); - - this.#setDestinationValue({ - unique: this._destinationItem.unique, - entityType: this._destinationItem.entityType, - }); + const unique = selection[0]; + this.something(unique); } } - async #requestDestinationItem(unique: string | null) { - if (unique === null) { - console.log('ROOT IS SELECTED, HANDLE THIS CASE'); - return; - } - + async #requestItem(unique: string) { if (!this.data?.itemRepositoryAlias) throw new Error('Cannot restore an item without an item repository alias.'); const itemRepository = await createExtensionApiByAlias>(this, this.data.itemRepositoryAlias); @@ -156,7 +145,7 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< return html`

Cannot automatically restore this item.

There is no location where this item can be automatically restored. You can select a new location below.

- +
Restore to:
${this._destinationItem ? html` From 5ae79a75e80b0767076c114e32501452cc442d70 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 10:14:20 +0200 Subject: [PATCH 045/177] rename method to something useful --- .../modal/restore-from-recycle-bin-modal.element.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts index 60f7bc070c..8d11163c50 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -33,11 +33,11 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< if (unique !== undefined) { this._isAutomaticRestore = true; - this.something(unique); + this.setDestination(unique); } } - async something(unique: string | null) { + async setDestination(unique: string | null) { // TODO: handle ROOT lookup. Currently, we can't look up the root in the item repository. // This is a temp solution to show something in the UI. if (unique === null) { @@ -96,7 +96,7 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< if (selection.length > 0) { const unique = selection[0]; - this.something(unique); + this.setDestination(unique); } } From 9cf2c4b5e08c8c5d1decf924520cd1ec60203b93 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 10:21:32 +0200 Subject: [PATCH 046/177] get the name of the restore item --- .../restore-from-recycle-bin-modal.element.ts | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts index 8d11163c50..4efab40b7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -21,6 +21,9 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< @state() _isAutomaticRestore = false; + @state() + _restoreItem?: any; + @state() _destinationItem?: any; @@ -28,12 +31,14 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< protected async firstUpdated(_changedProperties: PropertyValueMap | Map): Promise { super.firstUpdated(_changedProperties); + if (!this.data?.unique) throw new Error('Cannot restore an item without a unique identifier.'); + this._restoreItem = await this.#requestItem(this.data.unique); const unique = await this.#requestAutomaticRestoreDestination(); if (unique !== undefined) { - this._isAutomaticRestore = true; this.setDestination(unique); + this._isAutomaticRestore = true; } } @@ -84,6 +89,15 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< return undefined; } + async #requestItem(unique: string) { + if (!this.data?.itemRepositoryAlias) throw new Error('Cannot restore an item without an item repository alias.'); + + const itemRepository = await createExtensionApiByAlias>(this, this.data.itemRepositoryAlias); + const { data } = await itemRepository.requestItems([unique]); + + return data?.[0]; + } + async #onSelectCustomDestination() { const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); const modal = modalManager.open(this, UMB_DOCUMENT_PICKER_MODAL, { @@ -100,15 +114,6 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< } } - async #requestItem(unique: string) { - if (!this.data?.itemRepositoryAlias) throw new Error('Cannot restore an item without an item repository alias.'); - - const itemRepository = await createExtensionApiByAlias>(this, this.data.itemRepositoryAlias); - const { data } = await itemRepository.requestItems([unique]); - - return data?.[0]; - } - async #onSubmit() { if (!this.value.destination) throw new Error('Cannot restore an item without a destination.'); if (!this.#recycleBinRepository) throw new Error('Cannot restore an item without a destination.'); @@ -133,7 +138,7 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< ${this._isAutomaticRestore - ? html` Restore (ITEM NAME HERE) to ${this._destinationItem.name}` + ? html` Restore ${this._restoreItem?.name} to ${this._destinationItem?.name}` : this.#renderCustomSelectDestination()} ${this.#renderActions()} From e737fcab579d80c71e45d3ed76f5170376517ec1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 10:59:42 +0200 Subject: [PATCH 047/177] make source protected instead of private --- .../packages/core/tree/data/tree-repository-base.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts index 2409617d42..7e2ca2ccdb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts @@ -28,7 +28,7 @@ export abstract class UmbTreeRepositoryBase< { protected _init: Promise; protected _treeStore?: UmbTreeStore; - #treeSource: UmbTreeDataSource; + protected _treeSource: UmbTreeDataSource; /** * Creates an instance of UmbTreeRepositoryBase. @@ -43,7 +43,7 @@ export abstract class UmbTreeRepositoryBase< treeStoreContextAlias: string | UmbContextToken, ) { super(host); - this.#treeSource = new treeSourceConstructor(this); + this._treeSource = new treeSourceConstructor(this); this._init = this.consumeContext(treeStoreContextAlias, (instance) => { this._treeStore = instance; @@ -65,7 +65,7 @@ export abstract class UmbTreeRepositoryBase< async requestRootTreeItems(args: any) { await this._init; - const { data, error } = await this.#treeSource.getRootItems(args); + const { data, error } = await this._treeSource.getRootItems(args); if (data) { this._treeStore!.appendItems(data.items); @@ -84,7 +84,7 @@ export abstract class UmbTreeRepositoryBase< if (args.parentUnique === undefined) throw new Error('Parent unique is missing'); await this._init; - const { data, error } = await this.#treeSource.getChildrenOf(args); + const { data, error } = await this._treeSource.getChildrenOf(args); if (data) { this._treeStore!.appendItems(data.items); @@ -103,7 +103,7 @@ export abstract class UmbTreeRepositoryBase< if (args.descendantUnique === undefined) throw new Error('Descendant unique is missing'); await this._init; - const { data, error } = await this.#treeSource.getAncestorsOf(args); + const { data, error } = await this._treeSource.getAncestorsOf(args); // TODO: implement observable for ancestor items in the store return { data, error }; From 435ef26cbc3b4e3aa5a433d6c49b7cb931d24f93 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 11:00:22 +0200 Subject: [PATCH 048/177] check if recycle bin has children on load --- .../recycle-bin/tree/document-recycle-bin-tree.repository.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 37ff658fb9..23ed6a2004 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 @@ -15,12 +15,15 @@ export class UmbDocumentRecycleBinTreeRepository } async requestTreeRoot() { + const { data: treeRootData } = await this._treeSource.getRootItems({ skip: 0, take: 1 }); + const hasChildren = treeRootData?.total > 0; + const data = { unique: null, entityType: UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE, name: 'Recycle Bin', icon: 'icon-trash', - hasChildren: true, + hasChildren, isContainer: false, isFolder: true, }; From 9ca24c3c22f1483f719013f36882eaf5a8955e66 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 11:30:52 +0200 Subject: [PATCH 049/177] add manifest model for external auth provider --- .../models/auth-provider.model.ts | 64 +++++++++++++++++++ .../core/extension-registry/models/index.ts | 5 +- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts new file mode 100644 index 0000000000..e212a5208e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts @@ -0,0 +1,64 @@ +import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api'; +import type { UUIInterfaceColor, UUIInterfaceLook } from '@umbraco-cms/backoffice/external/uui'; + +/** + * Represents an authentication provider that can be used to authenticate users. + * The provider needs to be registered in the API that the authorization request is sent to in order to be used. + * + * @see {forProviderName} for the provider name that this provider is for. + */ +export interface ManifestAuthProvider extends ManifestElement { + type: 'authProvider'; + + /** + * The provider name that this provider is for. + * @examples 'Umbraco.Github' + */ + forProviderName: string; + + meta?: MetaAuthProvider; +} + +export interface MetaAuthProvider { + /** + * The label of the provider that is shown to the user. + */ + label?: string; + + /** + * The default view of the provider that is shown to the user. + * If no element is provided, then the button will be rendered as a @see {UUIButtonElement} using these options. + */ + defaultView: { + /** + * The icon of the provider that is shown to the user. + * @examples ['icon-cloud', 'icon-github', 'icon-google', 'icon-facebook', 'icon-twitter', 'icon-x', 'icon-microsoft'] + * @default 'icon-cloud' + */ + icon?: string; + + /** + * The color of the provider that is shown to the user. + * @default 'secondary' + */ + color?: UUIInterfaceLook; + + /** + * The look of the provider that is shown to the user. + * @default 'default' + */ + look?: UUIInterfaceColor; + }; + + /** + * If true, the Umbraco backoffice login will be disabled. + * @default false + */ + denyLocalLogin?: boolean; + + /** + * If true, the user will be redirected to the provider's login page immediately. + * @default false + */ + autoRedirect?: boolean; +} 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 bd329b9276..c6d951bd27 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 { ManifestAuthProvider } from './auth-provider.model.js'; 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'; @@ -64,6 +65,7 @@ import type { ManifestEntryPoint, } from '@umbraco-cms/backoffice/extension-api'; +export type * from './auth-provider.model.js'; export type * from './block-editor-custom-view.model.js'; export type * from './collection.models.js'; export type * from './collection-action.model.js'; @@ -131,12 +133,13 @@ export type ManifestWorkspaces = ManifestWorkspace | ManifestWorkspaceRoutableKi export type ManifestWorkspaceViews = ManifestWorkspaceView | ManifestWorkspaceViewContentTypeDesignEditorKind; export type ManifestTypes = + | ManifestAuthProvider | ManifestBundle - | ManifestCondition | ManifestBlockEditorCustomView | ManifestCollection | ManifestCollectionView | ManifestCollectionAction + | ManifestCondition | ManifestDashboard | ManifestDashboardCollection | ManifestDynamicRootOrigin From 090247d79078e290159f5c89372288c2722e5e91 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 11:45:06 +0200 Subject: [PATCH 050/177] add authProvider's to test it out --- .../src/mocks/handlers/manifests.handlers.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts index e84f191d7f..3a37e7aec5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts @@ -90,6 +90,32 @@ export const manifestDevelopmentHandler = rest.get(umbracoPath('/package/manifes }, ], }, + { + name: 'My Auth Package', + extensions: [ + { + type: 'authProvider', + alias: 'My.AuthProvider.Google', + name: 'My Custom Auth Provider', + forProviderName: 'Umbraco.Google', + meta: { + label: 'Sign in with Google', + }, + }, + { + type: 'authProvider', + alias: 'My.AUthProvider.Github', + name: 'My Github Auth Provider', + forProviderName: 'Umbraco.Github', + meta: { + label: 'Use Github!', + look: 'primary', + icon: 'icon-github', + color: 'success', + }, + }, + ], + }, ]), ); }); From 22e7742d47d500be5cc5f4a08cfc5dcc20761175 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 11:55:03 +0200 Subject: [PATCH 051/177] add support to supply an identity provider to the authorization request --- .../src/packages/core/auth/auth-flow.ts | 18 +++++++++++++----- .../src/packages/core/auth/auth.context.ts | 6 ++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts index 4ced20b66d..01b20582f9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts @@ -187,15 +187,23 @@ export class UmbAuthFlow { } /** - * This method will make an authorization request to the server. + * Make an authorization request to the server using the specified identity provider. + * This method will redirect the user to the authorization endpoint of the server. * - * @param username The username to use for the authorization request. It will be provided to the OpenID server as a hint. + * @param identityProvider The identity provider to use for the authorization request. + * @param usernameHint (Optional) The username to use for the authorization request. It will be provided to the OpenID server as a hint. */ - makeAuthorizationRequest(username?: string): void { + makeAuthorizationRequest(identityProvider: string, usernameHint?: string): void { const extras: StringMap = { prompt: 'consent', access_type: 'offline' }; - if (username) { - extras['login_hint'] = username; + // If the identity provider is not 'Umbraco', we will add it to the extras. + if (identityProvider !== 'Umbraco') { + extras['identity_provider'] = identityProvider; + } + + // If there is a username hint, we will add it to the extras. + if (usernameHint) { + extras['login_hint'] = usernameHint; } // create a request diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts index f457655b18..f5a64ff438 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts @@ -26,9 +26,11 @@ export class UmbAuthContext extends UmbContextBase { /** * Initiates the login flow. + * @param identityProvider The provider to use for login. Default is 'Umbraco'. + * @param usernameHint The username hint to use for login. */ - makeAuthorizationRequest() { - return this.#authFlow.makeAuthorizationRequest(); + makeAuthorizationRequest(identityProvider = 'Umbraco', usernameHint?: string) { + return this.#authFlow.makeAuthorizationRequest(identityProvider, usernameHint); } /** From 762368c3a6a5f5c62ba44569eb976b9009ad18c1 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 12:03:15 +0200 Subject: [PATCH 052/177] move auth request logic to an auth controller to split up the logic --- .../src/apps/app/app-auth.controller.ts | 9 +++++++++ src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts new file mode 100644 index 0000000000..fdc4c6cb35 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -0,0 +1,9 @@ +import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth'; +import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; + +export class UmbAppAuthController extends UmbControllerBase { + async makeAuthorizationRequest() { + const authContext = await this.getContext(UMB_AUTH_CONTEXT); + return authContext.makeAuthorizationRequest(); + } +} 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 d104ccab6c..89ab404a0f 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,6 +1,7 @@ import type { UmbAppErrorElement } from './app-error.element.js'; import { UmbAppContext } from './app.context.js'; import { UmbServerConnection } from './server-connection.js'; +import { UmbAppAuthController } from './app-auth.controller.js'; 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'; @@ -59,6 +60,7 @@ export class UmbAppElement extends UmbLitElement { #umbIconRegistry = new UmbIconRegistry(); #uuiIconRegistry = new UUIIconRegistryEssential(); #serverConnection?: UmbServerConnection; + #authController = new UmbAppAuthController(this); constructor() { super(); @@ -184,7 +186,7 @@ export class UmbAppElement extends UmbLitElement { } #isAuthorizedGuard(): Guard { - return () => { + return async () => { if (!this.#authContext) { throw new Error('[Fatal] AuthContext requested before it was initialized'); } @@ -197,7 +199,7 @@ export class UmbAppElement extends UmbLitElement { window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); // Make a request to the auth server to start the auth flow - this.#authContext.makeAuthorizationRequest(); + await this.#authController.makeAuthorizationRequest(); // Return false to prevent the route from being rendered return false; From 600cc1192fd25dadf2b4e73576bdcaf9ec0fdce6 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 12:22:10 +0200 Subject: [PATCH 053/177] add recycle bin for media --- .../src/packages/media/media/manifests.ts | 2 + .../recycle-bin/entity-action/manifests.ts | 42 ++++++++++ .../media/media/recycle-bin/entity.ts | 1 + .../packages/media/media/recycle-bin/index.ts | 2 + .../media/media/recycle-bin/manifests.ts | 6 ++ .../media/recycle-bin/menu-item/manifests.ts | 19 +++++ .../media/recycle-bin/repository/constants.ts | 1 + .../media/recycle-bin/repository/index.ts | 1 + .../media/recycle-bin/repository/manifests.ts | 11 +++ .../media-recycle-bin.repository.ts | 11 +++ .../media-recycle-bin.server.data-source.ts | 52 ++++++++++++ .../media/media/recycle-bin/tree/constants.ts | 3 + .../media/media/recycle-bin/tree/index.ts | 9 ++ .../media/media/recycle-bin/tree/manifests.ts | 49 +++++++++++ .../tree/media-recycle-bin-tree.repository.ts | 33 ++++++++ ...dia-recycle-bin-tree.server.data-source.ts | 84 +++++++++++++++++++ .../tree/media-recycle-bin-tree.store.ts | 24 ++++++ .../reload-tree-item-children/manifests.ts | 12 +++ .../media/media/recycle-bin/tree/types.ts | 6 ++ 19 files changed, 368 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity-action/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/menu-item/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/constants.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/constants.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.server.data-source.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.store.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/reload-tree-item-children/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/types.ts 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 dba85d8ce2..cbdd5167a5 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 @@ -3,6 +3,7 @@ import { manifests as entityActionsManifests } from './entity-actions/manifests. import { manifests as entityBulkActionsManifests } from './entity-bulk-actions/manifests.js'; import { manifests as menuManifests } from './menu/manifests.js'; import { manifests as propertyEditorsManifests } from './property-editors/manifests.js'; +import { manifests as recycleBinManifests } from './recycle-bin/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as sectionViewManifests } from './section-view/manifests.js'; import { manifests as treeManifests } from './tree/manifests.js'; @@ -14,6 +15,7 @@ export const manifests = [ ...entityBulkActionsManifests, ...menuManifests, ...propertyEditorsManifests, + ...recycleBinManifests, ...repositoryManifests, ...sectionViewManifests, ...treeManifests, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity-action/manifests.ts new file mode 100644 index 0000000000..d3631a29c6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity-action/manifests.ts @@ -0,0 +1,42 @@ +import { UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/index.js'; +import { UMB_MEDIA_ENTITY_TYPE } from '../../entity.js'; +import { UMB_MEDIA_ITEM_REPOSITORY_ALIAS } from '../../repository/index.js'; +import { UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UMB_MEDIA_TREE_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + kind: 'trash', + alias: 'Umb.EntityAction.Media.RecycleBin.Trash', + name: 'Trash Media Entity Action', + forEntityTypes: [UMB_MEDIA_ENTITY_TYPE], + meta: { + itemRepositoryAlias: UMB_MEDIA_ITEM_REPOSITORY_ALIAS, + recycleBinRepositoryAlias: UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS, + }, + }, + { + type: 'entityAction', + kind: 'restoreFromRecycleBin', + alias: 'Umb.EntityAction.Media.RecycleBin.Restore', + name: 'Restore Media From Recycle Bin Entity Action', + forEntityTypes: [UMB_MEDIA_ENTITY_TYPE], + meta: { + itemRepositoryAlias: UMB_MEDIA_ITEM_REPOSITORY_ALIAS, + recycleBinRepositoryAlias: UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS, + pickerModal: UMB_MEDIA_TREE_PICKER_MODAL, + }, + }, + { + type: 'entityAction', + kind: 'emptyRecycleBin', + alias: 'Umb.EntityAction.Media.RecycleBin.Empty', + name: 'Empty Media Recycle Bin Entity Action', + forEntityTypes: [UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE], + meta: { + recycleBinRepositoryAlias: UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS, + }, + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity.ts new file mode 100644 index 0000000000..6237cb94c2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/entity.ts @@ -0,0 +1 @@ +export const UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE = 'media-recycle-bin-root'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/index.ts new file mode 100644 index 0000000000..f04892ceea --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/index.ts @@ -0,0 +1,2 @@ +export * from './tree/index.js'; +export * from './entity.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/manifests.ts new file mode 100644 index 0000000000..423a1afcc2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/manifests.ts @@ -0,0 +1,6 @@ +import { manifests as entityActionManifests } from './entity-action/manifests.js'; +import { manifests as menuItemManifests } from './menu-item/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as treeManifests } from './tree/manifests.js'; + +export const manifests = [...entityActionManifests, ...menuItemManifests, ...repositoryManifests, ...treeManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/menu-item/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/menu-item/manifests.ts new file mode 100644 index 0000000000..3c6b76f1eb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/menu-item/manifests.ts @@ -0,0 +1,19 @@ +import { UMB_MEDIA_MENU_ALIAS } from '../../menu/manifests.js'; +import { UMB_MEDIA_RECYCLE_BIN_TREE_ALIAS } from '../tree/index.js'; +import type { ManifestMenuItemTreeKind } from '@umbraco-cms/backoffice/extension-registry'; + +const menuItem: ManifestMenuItemTreeKind = { + type: 'menuItem', + kind: 'tree', + alias: 'Umb.MenuItem.Media.RecycleBin', + name: 'Media Recycle Bin Menu Item', + weight: 100, + meta: { + treeAlias: UMB_MEDIA_RECYCLE_BIN_TREE_ALIAS, + label: 'Recycle Bin', + icon: 'icon-trash', + menus: [UMB_MEDIA_MENU_ALIAS], + }, +}; + +export const manifests = [menuItem]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/constants.ts new file mode 100644 index 0000000000..e71d4eb514 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/constants.ts @@ -0,0 +1 @@ +export const UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS = 'Umb.Repository.Media.RecycleBin'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/index.ts new file mode 100644 index 0000000000..b62f9e3b1d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/index.ts @@ -0,0 +1 @@ +export { UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS } from './constants.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/manifests.ts new file mode 100644 index 0000000000..d645ed6c0e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/manifests.ts @@ -0,0 +1,11 @@ +import { UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS } from './constants.js'; +import type { ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; + +const repository: ManifestRepository = { + type: 'repository', + alias: UMB_MEDIA_RECYCLE_BIN_REPOSITORY_ALIAS, + name: 'Media Recycle Bin Repository', + api: () => import('./media-recycle-bin.repository.js'), +}; + +export const manifests = [repository]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.repository.ts new file mode 100644 index 0000000000..867693f2c9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.repository.ts @@ -0,0 +1,11 @@ +import { UmbMediaRecycleBinServerDataSource } from './media-recycle-bin.server.data-source.js'; +import { UmbRecycleBinRepositoryBase } from '@umbraco-cms/backoffice/recycle-bin'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; + +export class UmbMediaRecycleBinRepository extends UmbRecycleBinRepositoryBase { + constructor(host: UmbControllerHost) { + super(host, UmbMediaRecycleBinServerDataSource); + } +} + +export { UmbMediaRecycleBinRepository as api }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.server.data-source.ts new file mode 100644 index 0000000000..91eedae21f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/repository/media-recycle-bin.server.data-source.ts @@ -0,0 +1,52 @@ +import type { + UmbRecycleBinDataSource, + UmbRecycleBinRestoreRequestArgs, + UmbRecycleBinTrashRequestArgs, + UmbRecycleBinOriginalParentRequestArgs, +} from '@umbraco-cms/backoffice/recycle-bin'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { MediaResource } from '@umbraco-cms/backoffice/external/backend-api'; +import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; + +export class UmbMediaRecycleBinServerDataSource implements UmbRecycleBinDataSource { + #host: UmbControllerHost; + + constructor(host: UmbControllerHost) { + this.#host = host; + } + + trash(args: UmbRecycleBinTrashRequestArgs) { + return tryExecuteAndNotify(this.#host, MediaResource.putMediaByIdMoveToRecycleBin({ id: args.unique })); + } + + restore(args: UmbRecycleBinRestoreRequestArgs) { + return tryExecuteAndNotify( + this.#host, + MediaResource.putRecycleBinMediaByIdRestore({ + id: args.unique, + requestBody: { + target: args.destination.unique ? { id: args.destination.unique } : null, + }, + }), + ); + } + + empty() { + return tryExecuteAndNotify(this.#host, MediaResource.deleteRecycleBinMedia()); + } + + async getOriginalParent(args: UmbRecycleBinOriginalParentRequestArgs) { + const { data, error } = await tryExecuteAndNotify( + this.#host, + MediaResource.getRecycleBinMediaByIdOriginalParent({ id: args.unique }), + ); + + // only check for undefined because data can be null if the parent is the root + if (data !== undefined) { + const mappedData = data ? { unique: data.id } : null; + return { data: mappedData }; + } + + return { error }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/constants.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/constants.ts new file mode 100644 index 0000000000..161a713575 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/constants.ts @@ -0,0 +1,3 @@ +export const UMB_MEDIA_RECYCLE_BIN_TREE_REPOSITORY_ALIAS = 'Umb.Repository.Media.RecycleBin.Tree'; +export const UMB_MEDIA_RECYCLE_BIN_TREE_STORE_ALIAS = 'Umb.Store.Media.RecycleBin.Tree'; +export const UMB_MEDIA_RECYCLE_BIN_TREE_ALIAS = 'Umb.Tree.Media.RecycleBin'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/index.ts new file mode 100644 index 0000000000..2a6044c805 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/index.ts @@ -0,0 +1,9 @@ +export { UmbMediaRecycleBinTreeRepository } from './media-recycle-bin-tree.repository.js'; +export { + UMB_MEDIA_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, + UMB_MEDIA_RECYCLE_BIN_TREE_STORE_ALIAS, + UMB_MEDIA_RECYCLE_BIN_TREE_ALIAS, +} from './constants.js'; +export { UMB_MEDIA_RECYCLE_BIN_TREE_STORE_CONTEXT } from './media-recycle-bin-tree.store.js'; +export { type UmbMediaRecycleBinTreeStore } from './media-recycle-bin-tree.store.js'; +export * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/manifests.ts new file mode 100644 index 0000000000..d3557a6293 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/manifests.ts @@ -0,0 +1,49 @@ +import { UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; +import { + UMB_MEDIA_RECYCLE_BIN_TREE_ALIAS, + UMB_MEDIA_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, + UMB_MEDIA_RECYCLE_BIN_TREE_STORE_ALIAS, +} from './constants.js'; +import { UmbMediaRecycleBinTreeRepository } from './media-recycle-bin-tree.repository.js'; +import { UmbMediaRecycleBinTreeStore } from './media-recycle-bin-tree.store.js'; +import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js'; +import type { + ManifestRepository, + ManifestTree, + ManifestTreeItem, + ManifestTreeStore, +} from '@umbraco-cms/backoffice/extension-registry'; + +const treeRepository: ManifestRepository = { + type: 'repository', + alias: UMB_MEDIA_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, + name: 'Media Recycle Bin Tree Repository', + api: UmbMediaRecycleBinTreeRepository, +}; + +const treeStore: ManifestTreeStore = { + type: 'treeStore', + alias: UMB_MEDIA_RECYCLE_BIN_TREE_STORE_ALIAS, + name: 'Media Recycle Bin Tree Store', + api: UmbMediaRecycleBinTreeStore, +}; + +const tree: ManifestTree = { + type: 'tree', + kind: 'default', + alias: UMB_MEDIA_RECYCLE_BIN_TREE_ALIAS, + name: 'Media Recycle Bin Tree', + meta: { + repositoryAlias: UMB_MEDIA_RECYCLE_BIN_TREE_REPOSITORY_ALIAS, + }, +}; + +const treeItem: ManifestTreeItem = { + type: 'treeItem', + kind: 'default', + alias: 'Umb.TreeItem.Media.RecycleBin', + name: 'Media Recycle Bin Tree Item', + forEntityTypes: [UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE], +}; + +export const manifests = [treeRepository, treeStore, tree, treeItem, ...reloadTreeItemChildrenManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts new file mode 100644 index 0000000000..f027339993 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts @@ -0,0 +1,33 @@ +import { UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../entity.js'; +import { UmbMediaRecycleBinTreeServerDataSource } from './media-recycle-bin-tree.server.data-source.js'; +import type { UmbMediaRecycleBinTreeItemModel, UmbMediaRecycleBinTreeRootModel } from './types.js'; +import { UMB_MEDIA_RECYCLE_BIN_TREE_STORE_CONTEXT } from './media-recycle-bin-tree.store.js'; +import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; + +export class UmbMediaRecycleBinTreeRepository + extends UmbTreeRepositoryBase + implements UmbApi +{ + constructor(host: UmbControllerHost) { + super(host, UmbMediaRecycleBinTreeServerDataSource, UMB_MEDIA_RECYCLE_BIN_TREE_STORE_CONTEXT); + } + + async requestTreeRoot() { + const { data: treeRootData } = await this._treeSource.getRootItems({ skip: 0, take: 1 }); + const hasChildren = treeRootData?.total > 0; + + const data = { + unique: null, + entityType: UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE, + name: 'Recycle Bin', + icon: 'icon-trash', + hasChildren, + isContainer: false, + isFolder: true, + }; + + return { data }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.server.data-source.ts new file mode 100644 index 0000000000..a9fa6bdf6c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.server.data-source.ts @@ -0,0 +1,84 @@ +import { UMB_MEDIA_ENTITY_TYPE } from '../../entity.js'; +import type { UmbMediaRecycleBinTreeItemModel } from './types.js'; +import type { MediaRecycleBinItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; +import { MediaResource } from '@umbraco-cms/backoffice/external/backend-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import type { + UmbTreeAncestorsOfRequestArgs, + UmbTreeChildrenOfRequestArgs, + UmbTreeRootItemsRequestArgs, +} from '@umbraco-cms/backoffice/tree'; +import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree'; + +/** + * A data source for the Media Recycle Bin tree that fetches data from the server + * @export + * @class UmbMediaRecycleBinTreeServerDataSource + * @implements {UmbTreeDataSource} + */ +export class UmbMediaRecycleBinTreeServerDataSource extends UmbTreeServerDataSourceBase< + MediaRecycleBinItemResponseModel, + UmbMediaRecycleBinTreeItemModel +> { + /** + * Creates an instance of UmbMediaRecycleBinTreeServerDataSource. + * @param {UmbControllerHost} host + * @memberof UmbMediaRecycleBinTreeServerDataSource + */ + constructor(host: UmbControllerHost) { + super(host, { + getRootItems, + getChildrenOf, + getAncestorsOf, + mapper, + }); + } +} + +const getRootItems = (args: UmbTreeRootItemsRequestArgs) => + // eslint-disable-next-line local-rules/no-direct-api-import + MediaResource.getRecycleBinMediaRoot({ skip: args.skip, take: args.take }); + +const getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => { + if (args.parentUnique === null) { + return getRootItems(args); + } else { + // eslint-disable-next-line local-rules/no-direct-api-import + return MediaResource.getRecycleBinMediaChildren({ + parentId: args.parentUnique, + skip: args.skip, + take: args.take, + }); + } +}; + +const getAncestorsOf = (args: UmbTreeAncestorsOfRequestArgs) => + // eslint-disable-next-line local-rules/no-direct-api-import + MediaResource.getTreeMediaAncestors({ + descendantId: args.descendantUnique, + }); + +const mapper = (item: MediaRecycleBinItemResponseModel): UmbMediaRecycleBinTreeItemModel => { + return { + unique: item.id, + parentUnique: item.parent ? item.parent.id : null, + entityType: UMB_MEDIA_ENTITY_TYPE, + noAccess: false, + isTrashed: true, + hasChildren: item.hasChildren, + mediaType: { + unique: item.mediaType.id, + icon: item.mediaType.icon, + collection: item.mediaType.collection ? { unique: item.mediaType.collection.id } : null, + }, + variants: item.variants.map((variant) => { + return { + name: variant.name, + culture: variant.culture || null, + segment: null, // TODO: add segment to the backend API? + }; + }), + 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/recycle-bin/tree/media-recycle-bin-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.store.ts new file mode 100644 index 0000000000..6ccf7e34dd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.store.ts @@ -0,0 +1,24 @@ +import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree'; + +/** + * @export + * @class UmbMediaRecycleBinTreeStore + * @extends {UmbStoreBase} + * @description - Tree Data Store for Media Recycle Bin Tree Items + */ +export class UmbMediaRecycleBinTreeStore extends UmbUniqueTreeStore { + /** + * Creates an instance of UmbMediaRecycleBinTreeStore. + * @param {UmbControllerHost} host + * @memberof UmbMediaRecycleBinTreeStore + */ + constructor(host: UmbControllerHost) { + super(host, UMB_MEDIA_RECYCLE_BIN_TREE_STORE_CONTEXT.toString()); + } +} + +export const UMB_MEDIA_RECYCLE_BIN_TREE_STORE_CONTEXT = new UmbContextToken( + 'UmbMediaRecycleBinTreeStore', +); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/reload-tree-item-children/manifests.ts new file mode 100644 index 0000000000..e4977c9214 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/reload-tree-item-children/manifests.ts @@ -0,0 +1,12 @@ +import { UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../../entity.js'; +import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'entityAction', + kind: 'reloadTreeItemChildren', + alias: 'Umb.EntityAction.MediaRecycleBin.Tree.ReloadChildrenOf', + name: 'Reload Media Recycle Bin Tree Item Children Entity Action', + forEntityTypes: [UMB_MEDIA_RECYCLE_BIN_ROOT_ENTITY_TYPE], + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/types.ts new file mode 100644 index 0000000000..b09498103f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/types.ts @@ -0,0 +1,6 @@ +import type { UmbMediaTreeItemModel } from '../../tree/index.js'; +import type { UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; + +export interface UmbMediaRecycleBinTreeItemModel extends UmbMediaTreeItemModel {} + +export interface UmbMediaRecycleBinTreeRootModel extends UmbUniqueTreeRootModel {} From 1b30cf2bdd50c3131b6a4bde9bfd823db613a301 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 13:01:53 +0200 Subject: [PATCH 054/177] picker modal from manifest --- .../modal/restore-from-recycle-bin-modal.element.ts | 7 ++++--- .../modal/restore-from-recycle-bin-modal.token.ts | 3 +++ .../restore-from-recycle-bin.action.ts | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts index 4efab40b7a..6bcb071416 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -4,11 +4,10 @@ import type { UmbRestoreFromRecycleBinModalValue, } from './restore-from-recycle-bin-modal.token.js'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; -import { html, customElement, state, nothing, css } from '@umbraco-cms/backoffice/external/lit'; +import { html, customElement, state, css } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UMB_MODAL_MANAGER_CONTEXT, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry'; -import { UMB_DOCUMENT_PICKER_MODAL } from '@umbraco-cms/backoffice/document'; import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; const elementName = 'umb-restore-from-recycle-bin-modal'; @@ -99,8 +98,10 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< } async #onSelectCustomDestination() { + if (!this.data?.pickerModal) throw new Error('Cannot select a destination without a picker modal.'); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - const modal = modalManager.open(this, UMB_DOCUMENT_PICKER_MODAL, { + const modal = modalManager.open(this, this.data.pickerModal, { data: { multiple: false, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts index ed2befadee..abab77f3f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts @@ -1,10 +1,13 @@ +import type { UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbRestoreFromRecycleBinModalData { unique: string; entityType: string; recycleBinRepositoryAlias: string; itemRepositoryAlias: string; + pickerModal: UmbModalToken> | string; } export interface UmbRestoreFromRecycleBinModalValue { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts index acc07f4adb..5910d4df6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts @@ -16,6 +16,7 @@ export class UmbRestoreFromRecycleBinEntityAction extends UmbEntityActionBase Date: Thu, 4 Apr 2024 13:27:54 +0200 Subject: [PATCH 055/177] add specific interface to tree picker value --- src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts index f6b81a7e1e..4d64ac0e63 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts @@ -11,3 +11,5 @@ export interface UmbPickerModalValue { export interface UmbTreePickerModalData extends UmbPickerModalData { treeAlias?: string; } + +export interface UmbTreePickerModalValue extends UmbPickerModalValue {} From 1db28d07daf9feb0be8748a3cb2c28328ff7038e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 13:28:04 +0200 Subject: [PATCH 056/177] add todo --- .../src/packages/core/modal/types.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts index 4d64ac0e63..8f42e65ee0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/types.ts @@ -1,8 +1,8 @@ -export interface UmbPickerModalData { +export interface UmbPickerModalData { multiple?: boolean; - hideTreeRoot?: boolean; - filter?: (item: TreeItemType) => boolean; - pickableFilter?: (item: TreeItemType) => boolean; + hideTreeRoot?: boolean; // TODO: this should be moved to a tree picker modal data interface + filter?: (item: ItemType) => boolean; + pickableFilter?: (item: ItemType) => boolean; } export interface UmbPickerModalValue { selection: Array; From 2039e6a052f6729dc05d37b025257b3870f6bbed Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 13:28:53 +0200 Subject: [PATCH 057/177] add picker interfaces --- .../core/extension-registry/models/entity-action.model.ts | 4 ++-- .../modal/restore-from-recycle-bin-modal.token.ts | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) 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 c0b7805c07..68ed28918a 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 @@ -2,7 +2,7 @@ import type { ConditionTypes } from '../conditions/types.js'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import type { UmbEntityAction } from '@umbraco-cms/backoffice/entity-action'; import type { ManifestElementAndApi, ManifestWithDynamicConditions } from '@umbraco-cms/backoffice/extension-api'; -import type { UmbModalToken } from '@umbraco-cms/backoffice/modal'; +import type { UmbModalToken, UmbPickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; /** * An action to perform on an entity @@ -78,7 +78,7 @@ export interface ManifestEntityActionRestoreFromRecycleBinKind export interface MetaEntityActionRestoreFromRecycleBinKind extends MetaEntityActionDefaultKind { recycleBinRepositoryAlias: string; itemRepositoryAlias: string; - pickerModal: UmbModalToken | string; + pickerModal: UmbModalToken, UmbPickerModalValue> | string; } // EMPTY RECYCLE BIN diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts index abab77f3f3..63b94f4451 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.token.ts @@ -1,13 +1,12 @@ -import type { UmbTreePickerModalData } from '@umbraco-cms/backoffice/modal'; +import type { UmbPickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -import type { UmbUniqueTreeItemModel, UmbUniqueTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbRestoreFromRecycleBinModalData { unique: string; entityType: string; recycleBinRepositoryAlias: string; itemRepositoryAlias: string; - pickerModal: UmbModalToken> | string; + pickerModal: UmbModalToken, UmbPickerModalValue> | string; } export interface UmbRestoreFromRecycleBinModalValue { From 46c52153bca1ce88560eec1b834899edad04a9e8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 13:30:39 +0200 Subject: [PATCH 058/177] null check --- .../recycle-bin/tree/document-recycle-bin-tree.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 23ed6a2004..c451dbb466 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 @@ -16,7 +16,7 @@ export class UmbDocumentRecycleBinTreeRepository async requestTreeRoot() { const { data: treeRootData } = await this._treeSource.getRootItems({ skip: 0, take: 1 }); - const hasChildren = treeRootData?.total > 0; + const hasChildren = treeRootData ? treeRootData.total > 0 : false; const data = { unique: null, From 951d8831cd3509e11534391330ae38de28c5e501 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 14:51:18 +0200 Subject: [PATCH 059/177] move isAuthorized logic into the auth controller --- .../src/apps/app/app-auth.controller.ts | 49 +++++++++++++++++-- .../src/apps/app/app.element.ts | 19 +------ 2 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index fdc4c6cb35..73c31479d9 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -1,9 +1,50 @@ -import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth'; +import { UMB_AUTH_CONTEXT, UMB_STORAGE_REDIRECT_URL } from '@umbraco-cms/backoffice/auth'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; export class UmbAppAuthController extends UmbControllerBase { - async makeAuthorizationRequest() { - const authContext = await this.getContext(UMB_AUTH_CONTEXT); - return authContext.makeAuthorizationRequest(); + #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; + + constructor(host: UmbControllerHost) { + super(host); + + this.consumeContext(UMB_AUTH_CONTEXT, (context) => { + this.#authContext = context; + }); + } + + /** + * Checks if the user is authorized. + * If not, the authorization flow is started. + */ + async isAuthorized(): Promise { + if (!this.#authContext) { + throw new Error('[Fatal] Auth context is not available'); + } + + const isAuthorized = this.#authContext.getIsAuthorized(); + + if (isAuthorized) { + return true; + } + + // Save location.href so we can redirect to it after login + window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); + + // Make a request to the auth server to start the auth flow + return this.makeAuthorizationRequest(); + } + + async makeAuthorizationRequest(): Promise { + if (!this.#authContext) { + throw new Error('[Fatal] Auth context is not available'); + } + + this.#authContext.makeAuthorizationRequest(); + + // Reinitialize the auth flow (load the state from local storage) + this.#authContext.setInitialState(); + + return true; } } 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 89ab404a0f..3ccb67046a 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 @@ -186,24 +186,7 @@ export class UmbAppElement extends UmbLitElement { } #isAuthorizedGuard(): Guard { - return async () => { - if (!this.#authContext) { - throw new Error('[Fatal] AuthContext requested before it was initialized'); - } - - if (this.#authContext.getIsAuthorized()) { - return true; - } - - // Save location.href so we can redirect to it after login - window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); - - // Make a request to the auth server to start the auth flow - await this.#authController.makeAuthorizationRequest(); - - // Return false to prevent the route from being rendered - return false; - }; + return () => this.#authController.isAuthorized(); } #errorPage(errorMsg: string, error?: unknown) { From 6f5b49886f15ef49e75f18111270e1d0f144e7e4 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 15:30:09 +0200 Subject: [PATCH 060/177] register public extensions in the app element --- .../src/apps/app/app-auth.controller.ts | 12 ++++++++++++ .../src/apps/app/app.element.ts | 3 +++ .../src/apps/backoffice/backoffice.element.ts | 8 +------- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 73c31479d9..9d0c7983c9 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -1,9 +1,13 @@ import { UMB_AUTH_CONTEXT, UMB_STORAGE_REDIRECT_URL } from '@umbraco-cms/backoffice/auth'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; export class UmbAppAuthController extends UmbControllerBase { #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; + #serverExtensionRegistrator = new UmbServerExtensionRegistrator(this, umbExtensionsRegistry); + #init; constructor(host: UmbControllerHost) { super(host); @@ -11,6 +15,8 @@ export class UmbAppAuthController extends UmbControllerBase { this.consumeContext(UMB_AUTH_CONTEXT, (context) => { this.#authContext = context; }); + + this.#init = Promise.all([this.#serverExtensionRegistrator.registerPublicExtensions()]); } /** @@ -35,11 +41,17 @@ export class UmbAppAuthController extends UmbControllerBase { return this.makeAuthorizationRequest(); } + /** + * Starts the authorization flow. + * It will check which providers are available and either redirect directly to the provider or show a provider selection screen. + */ async makeAuthorizationRequest(): Promise { if (!this.#authContext) { throw new Error('[Fatal] Auth context is not available'); } + await this.#init; + this.#authContext.makeAuthorizationRequest(); // Reinitialize the auth flow (load the state from local storage) 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 3ccb67046a..94cf02eed0 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 @@ -67,6 +67,9 @@ export class UmbAppElement extends UmbLitElement { new UmbContextDebugController(this); + new UmbBundleExtensionInitializer(this, umbExtensionsRegistry); + new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry); + this.#umbIconRegistry.attach(this); this.#uuiIconRegistry.attach(this); } 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 4d77370af7..407e04a759 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 @@ -1,11 +1,7 @@ import { UmbBackofficeContext } from './backoffice.context.js'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { - UmbBundleExtensionInitializer, - UmbEntryPointExtensionInitializer, - UmbServerExtensionRegistrator, -} from '@umbraco-cms/backoffice/extension-api'; +import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import './components/index.js'; @@ -53,8 +49,6 @@ export class UmbBackofficeElement extends UmbLitElement { super(); new UmbBackofficeContext(this); - new UmbBundleExtensionInitializer(this, umbExtensionsRegistry); - new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry); new UmbServerExtensionRegistrator(this, umbExtensionsRegistry).registerAllExtensions(); // So far local packages are this simple to registerer, so no need for a manager to do that: From 6b57cf02edc4db03c662c4a239a80fbf62dc73dc Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 15:30:29 +0200 Subject: [PATCH 061/177] add imports --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 5 +++++ 1 file changed, 5 insertions(+) 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 94cf02eed0..b11e26695d 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 @@ -12,6 +12,11 @@ import type { Guard, UmbRoute } from '@umbraco-cms/backoffice/router'; import { pathWithoutBasePath } from '@umbraco-cms/backoffice/router'; import { OpenAPI, RuntimeLevelModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbContextDebugController } from '@umbraco-cms/backoffice/debug'; +import { + UmbBundleExtensionInitializer, + UmbEntryPointExtensionInitializer, +} from '@umbraco-cms/backoffice/extension-api'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-app') export class UmbAppElement extends UmbLitElement { From 01fd7e02e9f42dc6600a9bd07be34cc995e85aa6 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 15:30:43 +0200 Subject: [PATCH 062/177] remove unused import --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 b11e26695d..f4a9bb8239 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 @@ -3,7 +3,7 @@ import { UmbAppContext } from './app.context.js'; import { UmbServerConnection } from './server-connection.js'; import { UmbAppAuthController } from './app-auth.controller.js'; import type { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth'; -import { UMB_STORAGE_REDIRECT_URL, UmbAuthContext } 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'; From 1b3d704b432228ebdfc2c8a298b12014cd081492 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 15:31:03 +0200 Subject: [PATCH 063/177] update the baseURL whenever it changes --- .../src/apps/app/app.element.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 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 f4a9bb8239..6d3070339e 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 @@ -27,7 +27,12 @@ export class UmbAppElement extends UmbLitElement { * @remarks This is the base URL of the Umbraco server, not the base URL of the backoffice. */ @property({ type: String }) - serverUrl = window.location.origin; + set serverUrl(url: string) { + OpenAPI.BASE = url; + } + get serverUrl() { + return OpenAPI.BASE; + } /** * The base path of the backoffice. @@ -70,6 +75,8 @@ export class UmbAppElement extends UmbLitElement { constructor() { super(); + OpenAPI.BASE = window.location.origin; + new UmbContextDebugController(this); new UmbBundleExtensionInitializer(this, umbExtensionsRegistry); @@ -85,14 +92,6 @@ 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. - TODO: find the right place to set this - */ - OpenAPI.BASE = this.serverUrl; - this.#serverConnection = await new UmbServerConnection(this.serverUrl).connect(); this.#authContext = new UmbAuthContext(this, this.serverUrl, this.backofficePath, this.bypassAuth); From a25ec074c1c1838a393bc34aa3a4addaa103dc2c Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 15:31:13 +0200 Subject: [PATCH 064/177] add public manifest handlers --- .../src/mocks/browser-handlers.ts | 4 +- .../src/mocks/handlers/manifests.handlers.ts | 244 +++++++++--------- 2 files changed, 129 insertions(+), 119 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 6a3c44ce04..a5751325f3 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -90,11 +90,11 @@ switch (import.meta.env.VITE_UMBRACO_INSTALL_STATUS) { switch (import.meta.env.VITE_UMBRACO_EXTENSION_MOCKS) { case 'on': - handlers.push(manifestsHandlers.manifestDevelopmentHandler); + handlers.push(...manifestsHandlers.manifestDevelopmentHandlers); break; default: - handlers.push(manifestsHandlers.manifestEmptyHandler); + handlers.push(...manifestsHandlers.manifestEmptyHandlers); } export { handlers }; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts index 3a37e7aec5..df03f8cffd 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts @@ -3,127 +3,137 @@ const { rest } = window.MockServiceWorker; import type { PackageManifestResponse } from '../../packages/packages/types.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -export const manifestDevelopmentHandler = rest.get(umbracoPath('/package/manifest'), (_req, res, ctx) => { - return res( - // Respond with a 200 status code - ctx.status(200), - ctx.json([ - { - name: 'My Package Name', - version: '1.0.0', - extensions: [ - { - type: 'bundle', - alias: 'My.Package.Bundle', - name: 'My Package Bundle', - js: '/App_Plugins/custom-bundle-package/index.js', - }, - ], - }, - { - name: 'Named Package', - version: '1.0.0', - extensions: [ - { - type: 'section', - alias: 'My.Section.Custom', - name: 'Custom Section', - js: '/App_Plugins/section.js', - elementName: 'my-section-custom', - weight: 1, - meta: { - label: 'Custom', - pathname: 'my-custom', +export const manifestDevelopmentHandlers = [ + rest.get(umbracoPath('/package/manifest'), (_req, res, ctx) => { + return res( + // Respond with a 200 status code + ctx.status(200), + ctx.json([ + { + name: 'My Package Name', + version: '1.0.0', + extensions: [ + { + type: 'bundle', + alias: 'My.Package.Bundle', + name: 'My Package Bundle', + js: '/App_Plugins/custom-bundle-package/index.js', }, - }, - { - type: 'propertyEditorUi', - alias: 'My.PropertyEditorUI.Custom', - name: 'My Custom Property Editor UI', - js: '/App_Plugins/property-editor.js', - elementName: 'my-property-editor-ui-custom', - meta: { - label: 'My Custom Property', - icon: 'document', - group: 'Common', - propertyEditorSchema: 'Umbraco.TextBox', + ], + }, + { + name: 'Named Package', + version: '1.0.0', + extensions: [ + { + type: 'section', + alias: 'My.Section.Custom', + name: 'Custom Section', + js: '/App_Plugins/section.js', + elementName: 'my-section-custom', + weight: 1, + meta: { + label: 'Custom', + pathname: 'my-custom', + }, }, - }, - ], - }, - { - name: 'Package with an entry point', - extensions: [ - { - type: 'entryPoint', - name: 'My Custom Entry Point', - alias: 'My.Entrypoint.Custom', - js: '/App_Plugins/custom-entrypoint.js', - }, - ], - }, - { - name: 'Package with a view', - extensions: [ - { - type: 'packageView', - alias: 'My.PackageView.Custom', - name: 'My Custom Package View', - js: '/App_Plugins/package-view.js', - meta: { - packageName: 'Package with a view', + { + type: 'propertyEditorUi', + alias: 'My.PropertyEditorUI.Custom', + name: 'My Custom Property Editor UI', + js: '/App_Plugins/property-editor.js', + elementName: 'my-property-editor-ui-custom', + meta: { + label: 'My Custom Property', + icon: 'document', + group: 'Common', + propertyEditorSchema: 'Umbraco.TextBox', + }, }, - }, - ], - }, - { - name: 'My MFA Package', - extensions: [ - { - type: 'mfaLoginProvider', - alias: 'My.MfaLoginProvider.Custom', - name: 'My Custom MFA Provider', - forProviderName: 'sms', - meta: { - label: 'Setup SMS Verification', + ], + }, + { + name: 'Package with an entry point', + extensions: [ + { + type: 'entryPoint', + name: 'My Custom Entry Point', + alias: 'My.Entrypoint.Custom', + js: '/App_Plugins/custom-entrypoint.js', }, - }, - ], - }, - { - name: 'My Auth Package', - extensions: [ - { - type: 'authProvider', - alias: 'My.AuthProvider.Google', - name: 'My Custom Auth Provider', - forProviderName: 'Umbraco.Google', - meta: { - label: 'Sign in with Google', + ], + }, + { + name: 'Package with a view', + extensions: [ + { + type: 'packageView', + alias: 'My.PackageView.Custom', + name: 'My Custom Package View', + js: '/App_Plugins/package-view.js', + meta: { + packageName: 'Package with a view', + }, }, - }, - { - type: 'authProvider', - alias: 'My.AUthProvider.Github', - name: 'My Github Auth Provider', - forProviderName: 'Umbraco.Github', - meta: { - label: 'Use Github!', - look: 'primary', - icon: 'icon-github', - color: 'success', + ], + }, + { + name: 'My MFA Package', + extensions: [ + { + type: 'mfaLoginProvider', + alias: 'My.MfaLoginProvider.Custom', + name: 'My Custom MFA Provider', + forProviderName: 'sms', + meta: { + label: 'Setup SMS Verification', + }, }, - }, - ], - }, - ]), - ); -}); + ], + }, + ]), + ); + }), + rest.get(umbracoPath('/package/manifest/public'), (_req, res, ctx) => { + return res( + ctx.status(200), + ctx.json([ + { + name: 'My Auth Package', + extensions: [ + { + type: 'authProvider', + alias: 'My.AuthProvider.Google', + name: 'My Custom Auth Provider', + forProviderName: 'Umbraco.Google', + meta: { + label: 'Sign in with Google', + }, + }, + { + type: 'authProvider', + alias: 'My.AUthProvider.Github', + name: 'My Github Auth Provider', + forProviderName: 'Umbraco.Github', + meta: { + label: 'Use Github!', + look: 'primary', + icon: 'icon-github', + color: 'success', + }, + }, + ], + }, + ]), + ); + }), +]; -export const manifestEmptyHandler = rest.get(umbracoPath('/package/manifest'), (_req, res, ctx) => { - return res( - // Respond with a 200 status code - ctx.status(200), - ctx.json([]), - ); -}); +export const manifestEmptyHandlers = [ + rest.get(umbracoPath('/package/manifest'), (_req, res, ctx) => { + return res(ctx.status(200), ctx.json([])); + }), + rest.get(umbracoPath('/package/manifest/public'), (_req, res, ctx) => { + return res(ctx.status(200), ctx.json([])); + }), +]; From cc1bb06379061961c602896c17529df70ead318a Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 15:32:32 +0200 Subject: [PATCH 065/177] dont send cookies to the backend --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 1 - 1 file changed, 1 deletion(-) 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 6d3070339e..95f3a81072 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 @@ -145,7 +145,6 @@ 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 2fe52cd500a2ad096f617800cdef5870697f51be Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 15:40:14 +0200 Subject: [PATCH 066/177] remove todo --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 1 - 1 file changed, 1 deletion(-) 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 95f3a81072..36c88357c3 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 @@ -40,7 +40,6 @@ export class UmbAppElement extends UmbLitElement { * @attr */ @property({ type: String }) - // TODO: get from base element or maybe move to UmbAuthContext.#getRedirectUrl since it is only used there backofficePath = '/umbraco'; /** From 184e498bc2fe07e0908c42b675673930de52ba50 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 16:02:35 +0200 Subject: [PATCH 067/177] initialize controllers only when it makes sense --- .../src/apps/app/app.element.ts | 12 ++++++++++-- .../src/apps/backoffice/backoffice.element.ts | 7 ------- 2 files changed, 10 insertions(+), 9 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 36c88357c3..91fff747cd 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 @@ -20,6 +20,13 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registr @customElement('umb-app') export class UmbAppElement extends UmbLitElement { + /** + * Backoffice extension registry. + * This enables to register and unregister extensions via DevTools, or just via querying this element via the DOM. + * @type {UmbExtensionsRegistry} + */ + public extensionRegistry = umbExtensionsRegistry; + /** * The base URL of the configured Umbraco server. * @@ -69,7 +76,7 @@ export class UmbAppElement extends UmbLitElement { #umbIconRegistry = new UmbIconRegistry(); #uuiIconRegistry = new UUIIconRegistryEssential(); #serverConnection?: UmbServerConnection; - #authController = new UmbAppAuthController(this); + #authController?: UmbAppAuthController; constructor() { super(); @@ -91,6 +98,7 @@ export class UmbAppElement extends UmbLitElement { } async #setup() { + this.#authController = new UmbAppAuthController(this); this.#serverConnection = await new UmbServerConnection(this.serverUrl).connect(); this.#authContext = new UmbAuthContext(this, this.serverUrl, this.backofficePath, this.bypassAuth); @@ -191,7 +199,7 @@ export class UmbAppElement extends UmbLitElement { } #isAuthorizedGuard(): Guard { - return () => this.#authController.isAuthorized(); + return () => this.#authController?.isAuthorized() ?? false; } #errorPage(errorMsg: string, error?: unknown) { 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 407e04a759..5e42145a82 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 @@ -38,13 +38,6 @@ const CORE_PACKAGES = [ @customElement('umb-backoffice') export class UmbBackofficeElement extends UmbLitElement { - /** - * Backoffice extension registry. - * This enables to register and unregister extensions via DevTools, or just via querying this element via the DOM. - * @type {UmbExtensionsRegistry} - */ - public extensionRegistry = umbExtensionsRegistry; - constructor() { super(); From 39cdeb261f1deb45e4681e02ab72caab60405cca Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 16:41:03 +0200 Subject: [PATCH 068/177] add types and js docs --- .../recycle-bin-repository-base.ts | 48 +++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts index ac12e66d1c..1dd19e0809 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/recycle-bin-repository-base.ts @@ -3,19 +3,44 @@ import type { UmbRecycleBinDataSource, UmbRecycleBinDataSourceConstructor, } from './recycle-bin-data-source.interface.js'; +import type { + UmbRecycleBinOriginalParentRequestArgs, + UmbRecycleBinRestoreRequestArgs, + UmbRecycleBinTrashRequestArgs, +} from './types.js'; import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +/** + * Base class for recycle bin repositories. + * @export + * @abstract + * @class UmbRecycleBinRepositoryBase + * @extends {UmbRepositoryBase} + * @implements {UmbRecycleBinRepository} + */ export abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryBase implements UmbRecycleBinRepository { #recycleBinSource: UmbRecycleBinDataSource; + /** + * Creates an instance of UmbRecycleBinRepositoryBase. + * @param {UmbControllerHost} host + * @param {UmbRecycleBinDataSourceConstructor} recycleBinSource + * @memberof UmbRecycleBinRepositoryBase + */ constructor(host: UmbControllerHost, recycleBinSource: UmbRecycleBinDataSourceConstructor) { super(host); this.#recycleBinSource = new recycleBinSource(this); } - async requestTrash(args: any) { + /** + * Requests to trash an item. + * @param {UmbRecycleBinTrashRequestArgs} args + * @return {*} + * @memberof UmbRecycleBinRepositoryBase + */ + async requestTrash(args: UmbRecycleBinTrashRequestArgs) { const { error } = await this.#recycleBinSource.trash(args); if (!error) { @@ -27,7 +52,13 @@ export abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryBase impl return { error }; } - async requestRestore(args: any) { + /** + * Requests to restore an item. + * @param {UmbRecycleBinRestoreRequestArgs} args + * @return {*} + * @memberof UmbRecycleBinRepositoryBase + */ + async requestRestore(args: UmbRecycleBinRestoreRequestArgs) { const { error } = await this.#recycleBinSource.restore(args); if (!error) { @@ -39,6 +70,11 @@ export abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryBase impl return { error }; } + /** + * Requests to empty the recycle bin. + * @return {*} + * @memberof UmbRecycleBinRepositoryBase + */ async requestEmpty() { const { error } = await this.#recycleBinSource.empty(); @@ -51,7 +87,13 @@ export abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryBase impl return this.#recycleBinSource.empty(); } - async requestOriginalParent(args: any) { + /** + * Requests the original parent of an item. + * @param {UmbRecycleBinOriginalParentRequestArgs} args + * @return {*} + * @memberof UmbRecycleBinRepositoryBase + */ + async requestOriginalParent(args: UmbRecycleBinOriginalParentRequestArgs) { return this.#recycleBinSource.getOriginalParent(args); } } From 651751d390bbdbcb5db478ecf2ddeabc9518c974 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 16:44:13 +0200 Subject: [PATCH 069/177] add js docs --- .../empty-recycle-bin/empty-recycle-bin.action.ts | 11 ++++++++++- .../restore-from-recycle-bin.action.ts | 10 ++++++++++ .../entity-action/trash/trash.action.ts | 15 ++++++++++++--- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts index d2059161be..acc0562252 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/empty-recycle-bin/empty-recycle-bin.action.ts @@ -1,5 +1,4 @@ import { UmbEntityActionBase } from '../../../entity-action/entity-action-base.js'; -import { UmbRequestReloadStructureForEntityEvent } from '../../../entity-action/request-reload-structure-for-entity.event.js'; import type { UmbRecycleBinRepository } from '../../recycle-bin-repository.interface.js'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; import { @@ -9,7 +8,17 @@ import { import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; import { UmbReloadTreeItemChildrenRequestEntityActionEvent } from '@umbraco-cms/backoffice/tree'; +/** + * Entity action for emptying the recycle bin. + * @export + * @class UmbEmptyRecycleBinEntityAction + * @extends {UmbEntityActionBase} + */ export class UmbEmptyRecycleBinEntityAction extends UmbEntityActionBase { + /** + * Executes the action. + * @memberof UmbEmptyRecycleBinEntityAction + */ async execute() { await umbConfirmModal(this._host, { headline: `Empty Recycle Bin`, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts index 5910d4df6a..699c4ce03e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/restore-from-recycle-bin.action.ts @@ -5,7 +5,17 @@ import { UmbRequestReloadStructureForEntityEvent } from '@umbraco-cms/backoffice import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; import type { MetaEntityActionRestoreFromRecycleBinKind } from '@umbraco-cms/backoffice/extension-registry'; +/** + * Entity action for restoring an item from the recycle bin. + * @export + * @class UmbRestoreFromRecycleBinEntityAction + * @extends {UmbEntityActionBase} + */ export class UmbRestoreFromRecycleBinEntityAction extends UmbEntityActionBase { + /** + * Executes the action. + * @memberof UmbRestoreFromRecycleBinEntityAction + */ async execute() { if (!this.args.unique) throw new Error('Cannot restore an item without a unique identifier.'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts index f1c9bbee35..14e29f7f11 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.ts @@ -7,9 +7,17 @@ import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository'; import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; +/** + * Entity action for trashing an item. + * @export + * @class UmbTrashEntityAction + * @extends {UmbEntityActionBase} + */ export class UmbTrashEntityAction extends UmbEntityActionBase { - // TODO: make base type for item and detail models - + /** + * Executes the action. + * @memberof UmbTrashEntityAction + */ async execute() { if (!this.args.unique) throw new Error('Cannot trash an item without a unique identifier.'); @@ -47,4 +55,5 @@ export class UmbTrashEntityAction extends UmbEntityActionBase Date: Thu, 4 Apr 2024 16:50:02 +0200 Subject: [PATCH 070/177] create modal to show auth providers --- .../src/packages/core/auth/index.ts | 1 + .../src/packages/core/auth/manifests.ts | 4 ++++ .../src/packages/core/auth/modals/index.ts | 1 + .../src/packages/core/auth/modals/manifests.ts | 10 ++++++++++ .../auth/modals/umb-app-auth-modal.element.ts | 17 +++++++++++++++++ .../auth/modals/umb-app-auth-modal.token.ts | 8 ++++++++ .../src/packages/core/manifests.ts | 2 ++ 7 files changed, 43 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/manifests.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts index e6dc7d478d..e99e9b0dcf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts @@ -1,3 +1,4 @@ export * from './auth.context.js'; export * from './auth.context.token.js'; +export * from './modals/index.js'; export * from './models/openApiConfiguration.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts new file mode 100644 index 0000000000..8ba79428c9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts @@ -0,0 +1,4 @@ +import type { ManifestTypes } from '../extension-registry/models/index.js'; +import { manifests as modalManifests } from './modals/manifests.js'; + +export const manifests: Array = [...modalManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/index.ts new file mode 100644 index 0000000000..c574cd0af1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/index.ts @@ -0,0 +1 @@ +export * from './umb-app-auth-modal.token.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/manifests.ts new file mode 100644 index 0000000000..315736dd1f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/manifests.ts @@ -0,0 +1,10 @@ +import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.AppAuth', + name: 'Umb App Auth Modal', + js: () => import('./umb-app-auth-modal.element.js'), + }, +]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts new file mode 100644 index 0000000000..1f8418e3ca --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -0,0 +1,17 @@ +import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; + +@customElement('umb-app-auth-modal') +export class UmbAppAuthModalElement extends UmbLitElement { + render() { + return html`

Umb App Auth Modal

`; + } +} + +export default UmbAppAuthModalElement; + +declare global { + interface HTMLElementTagNameMap { + 'umb-app-auth-modal': UmbAppAuthModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts new file mode 100644 index 0000000000..4b4e39656b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts @@ -0,0 +1,8 @@ +import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; + +export const UMB_MODAL_APP_AUTH = new UmbModalToken('Umb.Modal.AppAuth', { + modal: { + size: 'small', + type: 'dialog', + }, +}); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts index 66d11f9961..d80662cc2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts @@ -1,3 +1,4 @@ +import { manifests as authManifests } from './auth/manifests.js'; import { manifests as collectionManifests } from './collection/manifests.js'; import { manifests as contentTypeManifests } from './content-type/manifests.js'; import { manifests as cultureManifests } from './culture/manifests.js'; @@ -18,6 +19,7 @@ import { manifests as workspaceManifests } from './workspace/manifests.js'; import type { ManifestTypes, UmbBackofficeManifestKind } from './extension-registry/index.js'; export const manifests: Array = [ + ...authManifests, ...collectionManifests, ...contentTypeManifests, ...cultureManifests, From 5c8c0dd15eeee9aec22006a90c0d6cb0e6b7d266 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 16:50:23 +0200 Subject: [PATCH 071/177] load core extensions in app element --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 3 +++ .../src/apps/backoffice/backoffice.element.ts | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) 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 91fff747cd..3e3dea0b60 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,3 +1,4 @@ +import { extensions as coreExtensions } from '../../packages/core/umbraco-package.js'; import type { UmbAppErrorElement } from './app-error.element.js'; import { UmbAppContext } from './app.context.js'; import { UmbServerConnection } from './server-connection.js'; @@ -90,6 +91,8 @@ export class UmbAppElement extends UmbLitElement { this.#umbIconRegistry.attach(this); this.#uuiIconRegistry.attach(this); + + umbExtensionsRegistry.registerMany(coreExtensions); } connectedCallback(): void { 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 5e42145a82..ae2d293e3e 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 @@ -10,7 +10,6 @@ import './components/index.js'; const CORE_PACKAGES = [ import('../../packages/audit-log/umbraco-package.js'), import('../../packages/block/umbraco-package.js'), - import('../../packages/core/umbraco-package.js'), import('../../packages/data-type/umbraco-package.js'), import('../../packages/dictionary/umbraco-package.js'), import('../../packages/documents/umbraco-package.js'), From 94c3d5fca8983074087382adaff9da2143dbcb84 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 4 Apr 2024 16:50:38 +0200 Subject: [PATCH 072/177] add check to see if any auth providers are registered --- .../src/apps/app/app-auth.controller.ts | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 9d0c7983c9..dba8a08626 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -1,8 +1,10 @@ -import { UMB_AUTH_CONTEXT, UMB_STORAGE_REDIRECT_URL } from '@umbraco-cms/backoffice/auth'; +import { UMB_AUTH_CONTEXT, UMB_MODAL_APP_AUTH, UMB_STORAGE_REDIRECT_URL } from '@umbraco-cms/backoffice/auth'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; +import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbAppAuthController extends UmbControllerBase { #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; @@ -52,11 +54,32 @@ export class UmbAppAuthController extends UmbControllerBase { await this.#init; - this.#authContext.makeAuthorizationRequest(); + // Figure out which providers are available + const availableProviders = await firstValueFrom(umbExtensionsRegistry.byType('authProvider')); + if (availableProviders.length === 0) { + // No providers available, initiate the authorization request to the default provider + this.#authContext.makeAuthorizationRequest(); + } else { + // Check if any provider is redirecting directly to the provider, and if so, redirect to that provider + const redirectProvider = availableProviders.find((provider) => provider.meta?.autoRedirect); + if (redirectProvider) { + this.#authContext.makeAuthorizationRequest(redirectProvider.forProviderName); + return true; + } + + // Show the provider selection screen + console.log('show modal for', availableProviders); + const modalContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + await modalContext + .open(this._host, UMB_MODAL_APP_AUTH) + .onSubmit() + .catch(() => undefined); + } // Reinitialize the auth flow (load the state from local storage) this.#authContext.setInitialState(); - return true; + // The authorization flow is finished, so let the caller know if the user is authorized + return this.#authContext.getIsAuthorized(); } } From aca4f640bd4ec6c6cacceb12c63710ba80d3ab15 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 4 Apr 2024 16:53:14 +0200 Subject: [PATCH 073/177] bump trash action weight --- .../core/recycle-bin/entity-action/trash/trash.action.kind.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts index fa78c1185b..1b2b310a40 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/trash/trash.action.kind.ts @@ -11,7 +11,7 @@ export const manifest: UmbBackofficeManifestKind = { type: 'entityAction', kind: 'trash', api: () => import('./trash.action.js'), - weight: 1050, + weight: 1150, forEntityTypes: [], meta: { icon: 'icon-trash', From 9c4bbed87c4581e075b21c1772cb9a11f2f70a13 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 08:59:30 +0200 Subject: [PATCH 074/177] extend the auth provider model --- .../models/auth-provider.model.ts | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts index e212a5208e..1abff595fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts @@ -29,7 +29,7 @@ export interface MetaAuthProvider { * The default view of the provider that is shown to the user. * If no element is provided, then the button will be rendered as a @see {UUIButtonElement} using these options. */ - defaultView: { + defaultView?: { /** * The icon of the provider that is shown to the user. * @examples ['icon-cloud', 'icon-github', 'icon-google', 'icon-facebook', 'icon-twitter', 'icon-x', 'icon-microsoft'] @@ -51,14 +51,30 @@ export interface MetaAuthProvider { }; /** - * If true, the Umbraco backoffice login will be disabled. - * @default false + * The behavior of the provider when it is used. */ - denyLocalLogin?: boolean; + behavior?: { + /** + * If true, the Umbraco backoffice login will be disabled. + * @default false + */ + denyLocalLogin?: boolean; + + /** + * If true, the user will be redirected to the provider's login page immediately. + * @default false + */ + autoRedirect?: boolean; + }; /** - * If true, the user will be redirected to the provider's login page immediately. - * @default false + * The linking options of the provider when it is used. */ - autoRedirect?: boolean; + linking?: { + /** + * If true, the user will be able to link the provider to an existing account. + * @default false + */ + allowManualLinking?: boolean; + }; } From 307c9b37e6b94b41cb5192ebfe6fd6fb1813113e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 09:50:50 +0200 Subject: [PATCH 075/177] register Umbraco as a provider --- .../src/packages/core/auth/manifests.ts | 3 ++- .../src/packages/core/auth/providers/manifests.ts | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts index 8ba79428c9..f0f6228203 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/manifests.ts @@ -1,4 +1,5 @@ import type { ManifestTypes } from '../extension-registry/models/index.js'; import { manifests as modalManifests } from './modals/manifests.js'; +import { manifests as providerManifests } from './providers/manifests.js'; -export const manifests: Array = [...modalManifests]; +export const manifests: Array = [...modalManifests, ...providerManifests]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts new file mode 100644 index 0000000000..29f9ca30f6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts @@ -0,0 +1,14 @@ +import type { ManifestAuthProvider } from '@umbraco-cms/backoffice/extension-registry'; + +export const manifests: Array = [ + { + type: 'authProvider', + alias: 'Umb.AuthProviders.Umbraco', + name: 'Umbraco login provider', + forProviderName: 'Umbraco', + weight: 1000, + meta: { + label: 'Umbraco', + }, + }, +]; From 9c4bb5ba7773d048c834e6b9fba902d87042b83a Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 09:51:30 +0200 Subject: [PATCH 076/177] let the auth context know when exactly its container extension has been loaded and use it to return the providers --- .../src/packages/core/auth/auth.context.ts | 13 +++++++++++++ .../src/packages/core/index.ts | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts index f5a64ff438..a46deed70d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts @@ -1,3 +1,4 @@ +import { umbExtensionsRegistry } from '../extension-registry/index.js'; import { UmbAuthFlow } from './auth-flow.js'; import { UMB_AUTH_CONTEXT } from './auth.context.token.js'; import type { UmbOpenApiConfiguration } from './models/openApiConfiguration.js'; @@ -5,11 +6,15 @@ import { OpenAPI } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextBase } from '@umbraco-cms/backoffice/class-api'; import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; +import { ReplaySubject, filter, switchMap } from '@umbraco-cms/backoffice/external/rxjs'; export class UmbAuthContext extends UmbContextBase { #isAuthorized = new UmbBooleanState(false); readonly isAuthorized = this.#isAuthorized.asObservable(); + #isInitialized = new ReplaySubject(1); + readonly isInitialized = this.#isInitialized.asObservable().pipe(filter((isInitialized) => isInitialized)); + #isBypassed = false; #serverUrl; #backofficePath; @@ -143,6 +148,14 @@ export class UmbAuthContext extends UmbContextBase { }; } + setInitialized() { + this.#isInitialized.next(true); + } + + getAuthProviders() { + return this.isInitialized.pipe(switchMap(() => umbExtensionsRegistry.byType('authProvider'))); + } + #getRedirectUrl() { return `${window.location.origin}${this.#backofficePath}`; } 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 1896412056..7db1162c20 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -1,3 +1,4 @@ +import { UMB_AUTH_CONTEXT } from './auth/auth.context.token.js'; import { UmbBackofficeNotificationContainerElement, UmbBackofficeModalContainerElement } from './components/index.js'; import { UmbActionEventContext } from './action/action-event.context.js'; import { manifests as coreManifests } from './manifests.js'; @@ -46,4 +47,9 @@ export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { new UmbNotificationContext(host); new UmbModalManagerContext(host); new UmbActionEventContext(host); + + host.consumeContext(UMB_AUTH_CONTEXT, (authContext) => { + // Initialize the auth context to let the app context know that the core module is ready + authContext.setInitialized(); + }); }; From ced4abd1c2905a81034268b32fd8c54388ec6e0b Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 09:51:59 +0200 Subject: [PATCH 077/177] let the app element initiate the public server extensions and wait to new up the auth controller until auth is required (i.e. not in install mode) --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 3e3dea0b60..80be3c84e1 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 @@ -16,6 +16,7 @@ import { UmbContextDebugController } from '@umbraco-cms/backoffice/debug'; import { UmbBundleExtensionInitializer, UmbEntryPointExtensionInitializer, + UmbServerExtensionRegistrator, } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -101,12 +102,13 @@ export class UmbAppElement extends UmbLitElement { } async #setup() { - this.#authController = new UmbAppAuthController(this); this.#serverConnection = await new UmbServerConnection(this.serverUrl).connect(); this.#authContext = new UmbAuthContext(this, this.serverUrl, this.backofficePath, this.bypassAuth); new UmbAppContext(this, { backofficePath: this.backofficePath, serverUrl: this.serverUrl }); + await new UmbServerExtensionRegistrator(this, umbExtensionsRegistry).registerPublicExtensions(); + // Try to initialise the auth flow and get the runtime status try { // If the runtime level is "install" we should clear any cached tokens @@ -114,6 +116,7 @@ export class UmbAppElement extends UmbLitElement { if (this.#serverConnection.getStatus() === RuntimeLevelModel.INSTALL) { await this.#authContext.clearTokenStorage(); } else { + this.#authController = new UmbAppAuthController(this); await this.#setAuthStatus(); } From 5e0916bb11bee7cc71930d167a87c6df6142efb8 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 09:52:15 +0200 Subject: [PATCH 078/177] let the auth controller use the auth context to fetch the providers --- .../src/apps/app/app-auth.controller.ts | 52 +++++++++++-------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index dba8a08626..290508e72a 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -1,15 +1,11 @@ import { UMB_AUTH_CONTEXT, UMB_MODAL_APP_AUTH, UMB_STORAGE_REDIRECT_URL } from '@umbraco-cms/backoffice/auth'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api'; -import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbAppAuthController extends UmbControllerBase { #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; - #serverExtensionRegistrator = new UmbServerExtensionRegistrator(this, umbExtensionsRegistry); - #init; constructor(host: UmbControllerHost) { super(host); @@ -17,8 +13,6 @@ export class UmbAppAuthController extends UmbControllerBase { this.consumeContext(UMB_AUTH_CONTEXT, (context) => { this.#authContext = context; }); - - this.#init = Promise.all([this.#serverExtensionRegistrator.registerPublicExtensions()]); } /** @@ -52,28 +46,40 @@ export class UmbAppAuthController extends UmbControllerBase { throw new Error('[Fatal] Auth context is not available'); } - await this.#init; - // Figure out which providers are available - const availableProviders = await firstValueFrom(umbExtensionsRegistry.byType('authProvider')); + const availableProviders = await firstValueFrom(this.#authContext.getAuthProviders()); + if (availableProviders.length === 0) { - // No providers available, initiate the authorization request to the default provider + throw new Error('[Fatal] No auth providers available'); + } + + if (availableProviders.length === 1) { + // One provider available (most likely the Umbraco provider), so initiate the authorization request to the default provider this.#authContext.makeAuthorizationRequest(); } else { - // Check if any provider is redirecting directly to the provider, and if so, redirect to that provider - const redirectProvider = availableProviders.find((provider) => provider.meta?.autoRedirect); - if (redirectProvider) { - this.#authContext.makeAuthorizationRequest(redirectProvider.forProviderName); - return true; - } + // Check if any provider is redirecting directly to the provider + const redirectProvider = availableProviders.find((provider) => provider.meta?.behavior?.autoRedirect); - // Show the provider selection screen - console.log('show modal for', availableProviders); - const modalContext = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - await modalContext - .open(this._host, UMB_MODAL_APP_AUTH) - .onSubmit() - .catch(() => undefined); + if (redirectProvider) { + // Redirect directly to the provider + this.#authContext.makeAuthorizationRequest(redirectProvider.forProviderName); + } else { + // Show the provider selection screen + console.log('show modal for', availableProviders); + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + await modalManager + .open(this._host, UMB_MODAL_APP_AUTH) + .onSubmit() + .catch(() => undefined); + } + } + + return this.#updateState(); + } + + #updateState() { + if (!this.#authContext) { + throw new Error('[Fatal] Auth context is not available'); } // Reinitialize the auth flow (load the state from local storage) From c0bb2d3d9795d75593cd01be44268df9d597a51d Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 10:17:43 +0200 Subject: [PATCH 079/177] append to shadowRoot --- src/Umbraco.Web.UI.Client/src/packages/core/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 7db1162c20..3e424e1398 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/index.ts @@ -39,10 +39,10 @@ export const onInit: UmbEntryPointOnInit = (host, extensionRegistry) => { extensionRegistry.registerMany(coreManifests); const notificationContainerElement = new UmbBackofficeNotificationContainerElement(); - host.appendChild(notificationContainerElement); + host.shadowRoot?.appendChild(notificationContainerElement); const modalContainerElement = new UmbBackofficeModalContainerElement(); - host.appendChild(modalContainerElement); + host.shadowRoot?.appendChild(modalContainerElement); new UmbNotificationContext(host); new UmbModalManagerContext(host); From abc1a9f32ec997b7e187681ee10e7f3db42cfaf0 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 12:08:42 +0200 Subject: [PATCH 080/177] add more to default provider --- .../src/apps/app/app-auth.controller.ts | 9 +++++++-- .../src/packages/core/auth/providers/manifests.ts | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 290508e72a..0c2eac7678 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -65,12 +65,17 @@ export class UmbAppAuthController extends UmbControllerBase { this.#authContext.makeAuthorizationRequest(redirectProvider.forProviderName); } else { // Show the provider selection screen - console.log('show modal for', availableProviders); const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - await modalManager + const selected = await modalManager .open(this._host, UMB_MODAL_APP_AUTH) .onSubmit() .catch(() => undefined); + + if (!selected?.providerName) { + return false; + } + + this.#authContext.makeAuthorizationRequest(selected.providerName); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts index 29f9ca30f6..f1f2f89b41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts @@ -8,7 +8,10 @@ export const manifests: Array = [ forProviderName: 'Umbraco', weight: 1000, meta: { - label: 'Umbraco', + label: 'Sign in with Umbraco', + defaultView: { + look: 'primary', + }, }, }, ]; From 59d372249098ce1708e1722881e830eeaa23bac9 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 12:08:50 +0200 Subject: [PATCH 081/177] fix typo for typings --- .../core/extension-registry/models/auth-provider.model.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts index 1abff595fd..116be49a73 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/auth-provider.model.ts @@ -41,13 +41,13 @@ export interface MetaAuthProvider { * The color of the provider that is shown to the user. * @default 'secondary' */ - color?: UUIInterfaceLook; + color?: UUIInterfaceColor; /** * The look of the provider that is shown to the user. * @default 'default' */ - look?: UUIInterfaceColor; + look?: UUIInterfaceLook; }; /** From fe40efdf1da993467b25f4eb6c6ef95ebb049587 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 12:09:12 +0200 Subject: [PATCH 082/177] show a modal when more than 1 provider and add a default element if nothing is provided --- .../auth-provider-default.element.ts | 50 +++++++++++++++++++ .../packages/core/auth/components/index.ts | 1 + .../src/packages/core/auth/index.ts | 3 ++ .../auth/modals/umb-app-auth-modal.element.ts | 40 +++++++++++++-- .../auth/modals/umb-app-auth-modal.token.ts | 7 ++- 5 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/components/index.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts new file mode 100644 index 0000000000..58e04c5797 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts @@ -0,0 +1,50 @@ +import type { ManifestAuthProvider } from '../../index.js'; +import { UmbLitElement } from '../../lit-element/lit-element.element.js'; +import { UmbTextStyles } from '../../style/index.js'; +import { css, customElement, html, nothing, property } from '@umbraco-cms/backoffice/external/lit'; + +@customElement('umb-auth-provider-default') +export class UmbAuthProviderDefaultElement extends UmbLitElement { + @property({ attribute: false }) + manifest!: ManifestAuthProvider; + + @property({ attribute: false }) + onSubmit!: (providerName: string) => void; + + render() { + return html` + this.onSubmit(this.manifest.forProviderName)} + id="auth-provider-button" + .label=${this.manifest.meta?.label ?? this.manifest.forProviderName} + .look=${this.manifest.meta?.defaultView?.look ?? 'outline'} + .color=${this.manifest.meta?.defaultView?.color ?? 'default'}> + ${this.manifest.meta?.defaultView?.icon + ? html`` + : nothing} + ${this.manifest.meta?.label ?? this.manifest.forProviderName} + + `; + } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + padding: 20px; + } + + #auth-provider-button { + width: 100%; + } + `, + ]; +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-auth-provider-default': UmbAuthProviderDefaultElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/index.ts new file mode 100644 index 0000000000..e5fdd6f189 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/index.ts @@ -0,0 +1 @@ +export * from './auth-provider-default.element.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts index e99e9b0dcf..e05fbbb7ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts @@ -1,4 +1,7 @@ +import './components/index.js'; + export * from './auth.context.js'; export * from './auth.context.token.js'; export * from './modals/index.js'; export * from './models/openApiConfiguration.js'; +export * from './components/index.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 1f8418e3ca..69b3b8b8ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -1,11 +1,41 @@ -import { customElement, html } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { UmbModalBaseElement } from '../../modal/index.js'; +import type { UmbModalAppAuthValue } from './umb-app-auth-modal.token.js'; +import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-app-auth-modal') -export class UmbAppAuthModalElement extends UmbLitElement { - render() { - return html`

Umb App Auth Modal

`; +export class UmbAppAuthModalElement extends UmbModalBaseElement { + get props() { + return { + onSubmit: this.onSubmit, + }; } + + render() { + return html` + + + + `; + } + + private onSubmit = (providerName: string) => { + this.value = { providerName }; + this._submitModal(); + }; + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + padding: 20px; + } + `, + ]; } export default UmbAppAuthModalElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts index 4b4e39656b..20ce925dd9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts @@ -1,8 +1,11 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -export const UMB_MODAL_APP_AUTH = new UmbModalToken('Umb.Modal.AppAuth', { +export type UmbModalAppAuthValue = { + providerName?: string; +}; + +export const UMB_MODAL_APP_AUTH = new UmbModalToken('Umb.Modal.AppAuth', { modal: { - size: 'small', type: 'dialog', }, }); From f46f7bb459e5ce07daea7cca3762be2080bd0ed4 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:24:40 +0200 Subject: [PATCH 083/177] adjust size and color --- .../core/auth/modals/umb-app-auth-modal.element.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 69b3b8b8ef..5acc1ebe77 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -13,8 +13,9 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement + @@ -33,6 +34,12 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement Date: Fri, 5 Apr 2024 13:24:48 +0200 Subject: [PATCH 084/177] add fallback variable for color to body layout --- .../packages/core/components/body-layout/body-layout.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts index 1d589df449..22be2b754a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/body-layout/body-layout.element.ts @@ -134,7 +134,7 @@ export class UmbBodyLayoutElement extends LitElement { css` :host { display: flex; - background-color: var(--uui-color-background); + background-color: var(--umb-body-layout-color-background, var(--uui-color-background)); width: 100%; height: 100%; flex-direction: column; From 02a08e5d5f3a68b95f35b965b679e8ff06a39e0e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:25:40 +0200 Subject: [PATCH 085/177] add language keys --- src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts | 4 ++++ src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts | 4 ++++ 2 files changed, 8 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 d802dcc5cd..c038966225 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 @@ -1013,6 +1013,10 @@ export default { lockoutWillOccur: 'Du har været inaktiv, og du vil blive logget ud om', renewSession: 'Forny for at gemme dine ændringer', }, + login: { + instruction: 'Log ind på Umbraco', + signInWith: 'Log ind med {0}', + }, main: { dashboard: 'Skrivebord', sections: 'Sektioner', 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 3d2682e341..682a1bbb9a 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 @@ -1010,6 +1010,10 @@ export default { lockoutWillOccur: "You've been idle and logout will automatically occur in", renewSession: 'Renew now to save your work', }, + login: { + instruction: 'Sign in to Umbraco', + signInWith: 'Sign in with {0}', + }, main: { dashboard: 'Dashboard', sections: 'Sections', From bcc99cd16355a8f70e4cef5ff35f9f92fc6c9fde Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:25:47 +0200 Subject: [PATCH 086/177] remove padding --- .../core/auth/components/auth-provider-default.element.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts index 58e04c5797..b7e523adfc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts @@ -33,7 +33,6 @@ export class UmbAuthProviderDefaultElement extends UmbLitElement { css` :host { display: block; - padding: 20px; } #auth-provider-button { From 0494e514c18d4e6c703c721faf0b2d9ba5244e13 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:29:16 +0200 Subject: [PATCH 087/177] add margin and icon --- .../core/auth/components/auth-provider-default.element.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts index b7e523adfc..8c30b32f48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts @@ -21,7 +21,7 @@ export class UmbAuthProviderDefaultElement extends UmbLitElement { .look=${this.manifest.meta?.defaultView?.look ?? 'outline'} .color=${this.manifest.meta?.defaultView?.color ?? 'default'}> ${this.manifest.meta?.defaultView?.icon - ? html`` + ? html`` : nothing} ${this.manifest.meta?.label ?? this.manifest.forProviderName} @@ -33,6 +33,7 @@ export class UmbAuthProviderDefaultElement extends UmbLitElement { css` :host { display: block; + margin-bottom: var(--uui-size-space-5); } #auth-provider-button { From 0f55f62be06642b25ea13c9fb942a30a60ba48dd Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:42:10 +0200 Subject: [PATCH 088/177] map up the onSubmit, state and provider --- .../src/apps/app/app-auth.controller.ts | 17 +++++++++++---- .../src/packages/core/auth/index.ts | 2 ++ .../auth/modals/umb-app-auth-modal.element.ts | 5 +++-- .../auth/modals/umb-app-auth-modal.token.ts | 21 ++++++++++++++++--- .../src/packages/core/auth/types.ts | 5 +++++ 5 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 0c2eac7678..d0335524f1 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -1,4 +1,9 @@ -import { UMB_AUTH_CONTEXT, UMB_MODAL_APP_AUTH, UMB_STORAGE_REDIRECT_URL } from '@umbraco-cms/backoffice/auth'; +import { + UMB_AUTH_CONTEXT, + UMB_MODAL_APP_AUTH, + UMB_STORAGE_REDIRECT_URL, + type UmbUserLoginState, +} from '@umbraco-cms/backoffice/auth'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; @@ -41,7 +46,7 @@ export class UmbAppAuthController extends UmbControllerBase { * Starts the authorization flow. * It will check which providers are available and either redirect directly to the provider or show a provider selection screen. */ - async makeAuthorizationRequest(): Promise { + async makeAuthorizationRequest(userLoginState: UmbUserLoginState = 'loggingIn'): Promise { if (!this.#authContext) { throw new Error('[Fatal] Auth context is not available'); } @@ -67,7 +72,11 @@ export class UmbAppAuthController extends UmbControllerBase { // Show the provider selection screen const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); const selected = await modalManager - .open(this._host, UMB_MODAL_APP_AUTH) + .open(this._host, UMB_MODAL_APP_AUTH, { + data: { + userLoginState, + }, + }) .onSubmit() .catch(() => undefined); @@ -75,7 +84,7 @@ export class UmbAppAuthController extends UmbControllerBase { return false; } - this.#authContext.makeAuthorizationRequest(selected.providerName); + this.#authContext.makeAuthorizationRequest(selected.providerName, selected.loginHint); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts index e05fbbb7ed..2f5cf6b67d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/index.ts @@ -5,3 +5,5 @@ export * from './auth.context.token.js'; export * from './modals/index.js'; export * from './models/openApiConfiguration.js'; export * from './components/index.js'; + +export type * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 5acc1ebe77..7cba576d77 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -1,12 +1,13 @@ import { UmbModalBaseElement } from '../../modal/index.js'; -import type { UmbModalAppAuthValue } from './umb-app-auth-modal.token.js'; +import type { UmbModalAppAuthConfig, UmbModalAppAuthValue } from './umb-app-auth-modal.token.js'; import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-app-auth-modal') -export class UmbAppAuthModalElement extends UmbModalBaseElement { +export class UmbAppAuthModalElement extends UmbModalBaseElement { get props() { return { + userLoginState: this.data?.userLoginState ?? 'loggingIn', onSubmit: this.onSubmit, }; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts index 20ce925dd9..9b763e4c36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts @@ -1,10 +1,25 @@ +import type { UmbUserLoginState } from '../types.js'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; -export type UmbModalAppAuthValue = { - providerName?: string; +export type UmbModalAppAuthConfig = { + userLoginState: UmbUserLoginState; }; -export const UMB_MODAL_APP_AUTH = new UmbModalToken('Umb.Modal.AppAuth', { +export type UmbModalAppAuthValue = { + /** + * The name of the provider that the user has selected to authenticate with. + * @required + */ + providerName?: string; + + /** + * The login hint that the user has provided to the provider. + * @optional + */ + loginHint?: string; +}; + +export const UMB_MODAL_APP_AUTH = new UmbModalToken('Umb.Modal.AppAuth', { modal: { type: 'dialog', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts new file mode 100644 index 0000000000..d1933d0607 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts @@ -0,0 +1,5 @@ +/** + * User login state that can be used to determine the current state of the user. + * @example 'loggedIn' + */ +export type UmbUserLoginState = 'loggingIn' | 'loggedOut' | 'timedOut'; From 0755d4d410b5db5e941f2e135c5d45381e79723a Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:51:09 +0200 Subject: [PATCH 089/177] add state to logout button --- .../modals/current-user/current-user-modal.element.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 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 9ad8bd483b..1e89d04f19 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,12 +1,12 @@ import { UMB_CURRENT_USER_CONTEXT } from '../../current-user.context.js'; import type { UmbCurrentUserModel } 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 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/backoffice/lit-element'; +import type { UUIButtonState } from '@umbraco-cms/backoffice/external/uui'; @customElement('umb-current-user-modal') export class UmbCurrentUserModalElement extends UmbLitElement { @@ -16,6 +16,9 @@ export class UmbCurrentUserModalElement extends UmbLitElement { @state() private _currentUser?: UmbCurrentUserModel; + @state() + private _logOutButtonState?: UUIButtonState; + #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; #currentUserContext?: typeof UMB_CURRENT_USER_CONTEXT.TYPE; @@ -50,7 +53,9 @@ export class UmbCurrentUserModalElement extends UmbLitElement { private async _logout() { if (!this.#authContext) return; - this.#authContext.signOut(); + this._logOutButtonState = 'waiting'; + await this.#authContext.signOut(); + this._logOutButtonState = 'success'; } render() { @@ -65,6 +70,7 @@ export class UmbCurrentUserModalElement extends UmbLitElement { From e838c0ea1b721f0f4d22aac760f6942e9a0166cb Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 14:23:42 +0200 Subject: [PATCH 090/177] let the auth context know if a 401 is encountered, which most likely means the user is timed out --- .../src/packages/core/auth/auth.context.ts | 10 ++++++ .../core/resources/resource.controller.ts | 35 +++++++++++-------- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts index a46deed70d..cf99b23c35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts @@ -95,6 +95,16 @@ export class UmbAuthContext extends UmbContextBase { return this.#authFlow.clearTokenStorage(); } + /** + * Handles the case where the user has timed out, i.e. the token has expired. + * This will clear the token storage and set the user as unauthorized. + * @memberof UmbAuthContext + */ + timeOut() { + this.clearTokenStorage(); + this.#isAuthorized.setValue(false); + } + /** * Signs the user out by removing any tokens from the browser. * @memberof UmbAuthContext diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts index b7dc4e9992..edbefc578b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/resource.controller.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +import { UMB_AUTH_CONTEXT } from '../auth/index.js'; import { isApiError, isCancelError, isCancelablePromise } from './apiTypeValidators.function.js'; import { UMB_NOTIFICATION_CONTEXT, type UmbNotificationOptions } from '@umbraco-cms/backoffice/notification'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; @@ -11,6 +12,8 @@ export class UmbResourceController extends UmbControllerBase { #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; + #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; + constructor(host: UmbControllerHost, promise: Promise, alias?: string) { super(host, alias); @@ -19,6 +22,10 @@ export class UmbResourceController extends UmbControllerBase { new UmbContextConsumerController(host, UMB_NOTIFICATION_CONTEXT, (_instance) => { this.#notificationContext = _instance; }); + + new UmbContextConsumerController(host, UMB_AUTH_CONTEXT, (_instance) => { + this.#authContext = _instance; + }); } hostConnected(): void { @@ -78,21 +85,21 @@ export class UmbResourceController extends UmbControllerBase { // Go through the error status codes and act accordingly switch (error.status ?? 0) { - case 401: - // Unauthorized - console.log('Unauthorized'); - - // TODO: Do not remove the token here but instead let whatever is listening to the event decide what to do - localStorage.removeItem('umb:userAuthTokenResponse'); - - // TODO: Show a modal dialog to login either by bubbling an event to UmbAppElement or by showing a modal directly - this.#notificationContext?.peek('warning', { - data: { - headline: 'Session Expired', - message: 'Your session has expired. Please refresh the page.', - }, - }); + case 401: { + // See if we can get the UmbAuthContext and let it know the user is timed out + if (this.#authContext) { + this.#authContext.timeOut(); + } else { + // If we can't get the auth context, show a notification + this.#notificationContext?.peek('warning', { + data: { + headline: 'Session Expired', + message: 'Your session has expired. Please refresh the page.', + }, + }); + } break; + } case 500: // Server Error From 362c3188be3e32f21aa7931bd69d4bcb09165752 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 14:23:59 +0200 Subject: [PATCH 091/177] listen to changes for timeout but only if the value changed --- .../src/apps/app/app-auth.controller.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index d0335524f1..dfeb8455c1 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -6,7 +6,7 @@ import { } from '@umbraco-cms/backoffice/auth'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; +import { distinctUntilChanged, filter, firstValueFrom, skip } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbAppAuthController extends UmbControllerBase { @@ -17,6 +17,22 @@ export class UmbAppAuthController extends UmbControllerBase { this.consumeContext(UMB_AUTH_CONTEXT, (context) => { this.#authContext = context; + + // Observe the user's authorization state and start the authorization flow if the user is not authorized + this.observe( + context.isAuthorized.pipe( + // Only continue if the value has changed + distinctUntilChanged(), + // Skip the first since it is always false + skip(1), + // Only continue if the value is false + filter((x) => !x), + ), + () => { + this.makeAuthorizationRequest('timedOut'); + }, + '_authState', + ); }); } From c5d25e4b7a0ee9371b5b99fbdb85144ba91e4906 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 14:24:05 +0200 Subject: [PATCH 092/177] add skip --- src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts b/src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts index f7d17284b7..cc5b1fcd73 100644 --- a/src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/rxjs/index.ts @@ -17,4 +17,5 @@ export { switchMap, filter, startWith, + skip, } from 'rxjs'; From 78497b3032ebd7426747985dbb810ec40e88a684 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 15:27:17 +0200 Subject: [PATCH 093/177] add support to set a backdrop for a modal --- .../backoffice-modal-container.element.ts | 24 ++++++++++++++++--- .../modal/context/modal-manager.context.ts | 5 ++++ .../core/modal/context/modal.context.ts | 3 +++ 3 files changed, 29 insertions(+), 3 deletions(-) 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 48d0068860..ee8be1c38b 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,6 +1,6 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; -import { css, html, repeat, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, repeat, customElement, state, nothing, property } from '@umbraco-cms/backoffice/external/lit'; import type { UmbModalManagerContext, UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UMB_MODAL_MANAGER_CONTEXT, UmbModalElement } from '@umbraco-cms/backoffice/modal'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -13,6 +13,9 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { @state() _modals: Array = []; + @property({ reflect: true, attribute: 'fill-background' }) + fillBackground = false; + private _modalManager?: UmbModalManagerContext; constructor() { @@ -35,6 +38,7 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { /** We cannot render the umb-modal element directly in the uui-modal-container because it wont get recognized by UUI. * We therefore have a helper class which creates the uui-modal element and returns it. */ #createModalElements(modals: Array) { + this.fillBackground = false; const oldValue = this._modals; this._modals = modals; @@ -61,6 +65,15 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { modal.addEventListener('umb:destroy', this.#onCloseEnd.bind(this, modal.key)); this._modalElementMap.set(modal.key, modalElement); + + // If any of the modals are fillBackground, set the fillBackground property to true + if (modal.backdropBackground) { + this.fillBackground = true; + this.shadowRoot + ?.getElementById('container') + ?.style.setProperty('--backdrop-background', modal.backdropBackground); + } + this.requestUpdate(); }); } @@ -78,13 +91,13 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { render() { return html` - + ${this._modals.length > 0 ? repeat( this._modals, (modal) => modal.key, (modal) => this.#renderModal(modal.key), - ) + ) : ''} `; @@ -97,6 +110,11 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { position: absolute; z-index: 1000; } + + :host([fill-background]) #container::after { + background: var(--backdrop-background); + opacity: 0.75; + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts index d923e06b0b..eb74e7deca 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal-manager.context.ts @@ -12,6 +12,11 @@ export interface UmbModalConfig { key?: string; type?: UmbModalType; size?: UUIModalSidebarSize; + + /** + * Set the background property of the modal backdrop + */ + backdropBackground?: string; } export class UmbModalManagerContext extends UmbContextBase { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts index a22c2dd674..05d6220b7a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts @@ -32,6 +32,7 @@ export class UmbModalContext; @@ -51,10 +52,12 @@ export class UmbModalContext Date: Fri, 5 Apr 2024 15:27:34 +0200 Subject: [PATCH 094/177] track if it's the first time logging in and set a backdrop corresponding to that --- .../src/apps/app/app-auth.controller.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index dfeb8455c1..518f62d1ff 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -11,6 +11,7 @@ import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbAppAuthController extends UmbControllerBase { #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; + #firstTimeLoggingIn = true; constructor(host: UmbControllerHost) { super(host); @@ -29,6 +30,7 @@ export class UmbAppAuthController extends UmbControllerBase { filter((x) => !x), ), () => { + this.#firstTimeLoggingIn = false; this.makeAuthorizationRequest('timedOut'); }, '_authState', @@ -92,6 +94,11 @@ export class UmbAppAuthController extends UmbControllerBase { data: { userLoginState, }, + modal: { + backdropBackground: this.#firstTimeLoggingIn + ? "url('https://picsum.photos/1440') center center / cover no-repeat" + : 'rgb(0, 0, 0)', + }, }) .onSubmit() .catch(() => undefined); From 9a5fe32c613e80d7ea8fe3e349250e623275af5f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 15:28:39 +0200 Subject: [PATCH 095/177] remove temp login screen --- .../apps/auth/e2e/login.spec.ts | 19 --- .../apps/auth/index.html | 15 -- .../apps/auth/package.json | 20 --- .../apps/auth/playwright.config.ts | 108 ------------- .../apps/auth/public/favicon.svg | 17 -- .../apps/auth/public/login.jpeg | Bin 30678 -> 0 bytes .../apps/auth/public/umbraco_logo_white.svg | 1 - .../auth/public/umbraco_logomark_white.svg | 1 - .../apps/auth/src/auth-layout.element.ts | 72 --------- .../apps/auth/src/auth-legacy.context.ts | 10 -- .../apps/auth/src/auth.context.ts | 13 -- .../apps/auth/src/auth.repository.ts | 44 ------ .../external-login-provider-test.element.ts | 40 ----- .../external-login-provider-test2.element.ts | 53 ------- .../src/external-login-providers/manifests.ts | 29 ---- .../apps/auth/src/index.ts | 7 - .../apps/auth/src/login.element.ts | 148 ------------------ .../apps/auth/src/login.test.ts | 21 --- .../apps/auth/src/types.ts | 16 -- .../apps/auth/src/vite-env.d.ts | 6 - .../apps/auth/tsconfig.json | 12 -- .../apps/auth/tsconfig.node.json | 9 -- .../apps/auth/vite.config.ts | 32 ---- src/Umbraco.Web.UI.Client/package.json | 3 +- 24 files changed, 1 insertion(+), 695 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/e2e/login.spec.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/index.html delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/package.json delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/playwright.config.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/public/favicon.svg delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/public/login.jpeg delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logo_white.svg delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logomark_white.svg delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/auth-legacy.context.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/auth.context.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/auth.repository.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/index.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/types.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/src/vite-env.d.ts delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/tsconfig.node.json delete mode 100644 src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts diff --git a/src/Umbraco.Web.UI.Client/apps/auth/e2e/login.spec.ts b/src/Umbraco.Web.UI.Client/apps/auth/e2e/login.spec.ts deleted file mode 100644 index d34e280a56..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/e2e/login.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { expect, test } from '@playwright/test'; - -test('login', async ({ page }) => { - await page.goto('/'); - - // Fill input[name="email"] - await page.locator('input[name="email"]').fill('test@umbraco.com'); - - // Fill input[name="password"] - await page.locator('input[name="password"]').fill('test123456'); - - // Wait for console.log to be called - page.on('console', (message) => { - expect(message.text()).toBe('login'); - }); - - // Click [aria-label="Login"] - await page.locator('[aria-label="Login"]').click(); -}); diff --git a/src/Umbraco.Web.UI.Client/apps/auth/index.html b/src/Umbraco.Web.UI.Client/apps/auth/index.html deleted file mode 100644 index 75922ccae2..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - Umbraco Auth - - - - - - - - diff --git a/src/Umbraco.Web.UI.Client/apps/auth/package.json b/src/Umbraco.Web.UI.Client/apps/auth/package.json deleted file mode 100644 index addf6d7ebf..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@umbraco-cms/login", - "version": "0.0.0", - "license": "MIT", - "author": { - "name": "Umbraco HQ", - "email": "backoffice@umbraco.com" - }, - "type": "module", - "module": "dist/main.js", - "files": [ - "dist" - ], - "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "build:watch": "vite build --watch", - "preview": "vite preview" - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/playwright.config.ts b/src/Umbraco.Web.UI.Client/apps/auth/playwright.config.ts deleted file mode 100644 index f7bf259530..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/playwright.config.ts +++ /dev/null @@ -1,108 +0,0 @@ -import type { PlaywrightTestConfig } from '@playwright/test'; -import { devices } from '@playwright/test'; - -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); - -/** - * See https://playwright.dev/docs/test-configuration. - */ -const config: PlaywrightTestConfig = { - testDir: './e2e', - /* Maximum time one test can run for. */ - timeout: 30 * 1000, - expect: { - /** - * Maximum time expect() should wait for the condition to be met. - * For example in `await expect(locator).toHaveText();` - */ - timeout: 5000, - }, - /* Run tests in files in parallel */ - fullyParallel: true, - /* Fail the build on CI if you accidentally left test.only in the source code. */ - forbidOnly: !!process.env.CI, - /* Retry on CI only */ - retries: process.env.CI ? 2 : 0, - /* Opt out of parallel tests on CI. */ - workers: process.env.CI ? 1 : undefined, - /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ - actionTimeout: 0, - /* Base URL to use in actions like `await page.goto('/')`. */ - // baseURL: 'http://localhost:3000', - - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - - /* Configure projects for major browsers */ - projects: [ - { - name: 'chromium', - use: { - ...devices['Desktop Chrome'], - }, - }, - - { - name: 'firefox', - use: { - ...devices['Desktop Firefox'], - }, - }, - - { - name: 'webkit', - use: { - ...devices['Desktop Safari'], - }, - }, - - /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { - // ...devices['Pixel 5'], - // }, - // }, - // { - // name: 'Mobile Safari', - // use: { - // ...devices['iPhone 12'], - // }, - // }, - - /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { - // channel: 'msedge', - // }, - // }, - // { - // name: 'Google Chrome', - // use: { - // channel: 'chrome', - // }, - // }, - ], - - /* Folder for test artifacts such as screenshots, videos, traces, etc. */ - // outputDir: 'test-results/', - - /* Run your local dev server before starting the tests */ - webServer: { - command: 'npm run dev', - port: 5173, - reuseExistingServer: !process.env.CI, - }, -}; - -export default config; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/public/favicon.svg b/src/Umbraco.Web.UI.Client/apps/auth/public/favicon.svg deleted file mode 100644 index 19acb4bc1e..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/public/favicon.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/src/Umbraco.Web.UI.Client/apps/auth/public/login.jpeg b/src/Umbraco.Web.UI.Client/apps/auth/public/login.jpeg deleted file mode 100644 index 412cd17865c1b847affa4f0c2abc74645f678187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30678 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 diff --git a/src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logo_white.svg b/src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logo_white.svg deleted file mode 100644 index 3de8e82ed3..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logo_white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logomark_white.svg b/src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logomark_white.svg deleted file mode 100644 index 9372e25d3e..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/public/umbraco_logomark_white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts deleted file mode 100644 index 163ece1736..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/auth-layout.element.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { css, CSSResultGroup, html, LitElement } from 'lit'; -import { customElement } from 'lit/decorators.js'; - -@customElement('umb-auth-layout') -export class UmbAuthLayoutElement extends LitElement { - render() { - return html` -
- - - -
- - - -
- `; - } - - static styles: CSSResultGroup = [ - css` - #background { - position: fixed; - overflow: hidden; - background-position: 50%; - background-repeat: no-repeat; - background-size: cover; - background-image: url('login.jpeg'); - width: 100vw; - height: 100vh; - } - - #logo { - position: fixed; - top: var(--uui-size-space-5); - left: var(--uui-size-space-5); - height: 30px; - } - - #logo img { - height: 100%; - } - - #container { - position: relative; - display: flex; - align-items: center; - justify-content: center; - width: 100vw; - height: 100vh; - } - - #box { - width: 500px; - padding: var(--uui-size-space-6) var(--uui-size-space-5) var(--uui-size-space-5) var(--uui-size-space-5); - } - - #email, - #password { - width: 100%; - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-auth-layout': UmbAuthLayoutElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth-legacy.context.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth-legacy.context.ts deleted file mode 100644 index 42b0679aab..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/auth-legacy.context.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { LoginRequestModel, IUmbAuthContext, LoginResponse } from './types.js'; - -export class UmbAuthLegacyContext implements IUmbAuthContext { - readonly #AUTH_URL = '/umbraco/backoffice/umbracoapi/authentication/postlogin'; - readonly supportsPersistLogin = true; - - login(data: LoginRequestModel): Promise { - throw new Error('Method not implemented.'); - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.context.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth.context.ts deleted file mode 100644 index c38afcb618..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.context.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { UmbAuthRepository } from './auth.repository.js'; -import { LoginRequestModel, IUmbAuthContext } from './types.js'; - -export class UmbAuthContext implements IUmbAuthContext { - readonly #AUTH_URL = '/umbraco/management/api/v1/security/back-office'; - readonly supportsPersistLogin = false; - - #authRepository = new UmbAuthRepository(this.#AUTH_URL); - - public async login(data: LoginRequestModel) { - return this.#authRepository.login(data); - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.repository.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/auth.repository.ts deleted file mode 100644 index f615a915c1..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/auth.repository.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { LoginRequestModel } from './types.js'; - -export class UmbAuthRepository { - #authURL = ''; - - constructor(authUrl: string) { - this.#authURL = authUrl; - } - - public async login(data: LoginRequestModel) { - const request = new Request(this.#authURL + '/login', { - method: 'POST', - body: JSON.stringify({ - username: data.username, - password: data.password, - }), - headers: { - 'Content-Type': 'application/json', - }, - }); - const response = await fetch(request); - - //TODO: What kind of data does the old backoffice expect? - //NOTE: this conditionally adds error and data to the response object - return { - status: response.status, - ...(!response.ok && { error: this.#getErrorText(response) }), - ...(response.ok && { data: 'WHAT DATA SHOULD BE RETURNED?' }), - }; - } - - #getErrorText(response: Response) { - switch (response.status) { - case 401: - return 'Oops! It seems like your login credentials are invalid or expired. Please double-check your username and password and try again.'; - - case 500: - return "We're sorry, but the server encountered an unexpected error. Please refresh the page or try again later.."; - - default: - return response.statusText; - } - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts deleted file mode 100644 index 7dda2a047e..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test.element.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { css, html, LitElement } from 'lit'; -import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui'; -import { customElement } from 'lit/decorators.js'; - -@customElement('umb-external-login-provider-test') -export class UmbExternalLoginProviderTestElement extends LitElement { - render() { - return html` - Custom External Login Provider -

This is an example of a custom external login provider using the external login provider extension point

- - `; - } - - static styles = [ - UUITextStyles, - css` - :host { - display: flex; - flex-direction: column; - gap: var(--uui-size-space-4); - padding: var(--uui-size-space-5); - border: 1px solid var(--uui-color-border); - background: var(--uui-color-surface-alt); - border-radius: var(--uui-border-radius); - } - p { - margin: 0; - } - `, - ]; -} - -export default UmbExternalLoginProviderTestElement; - -declare global { - interface HTMLElementTagNameMap { - 'umb-external-login-provider-test': UmbExternalLoginProviderTestElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts deleted file mode 100644 index 652293ad27..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/external-login-provider-test2.element.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { css, html, LitElement } from 'lit'; -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { customElement } from 'lit/decorators.js'; - -@customElement('umb-external-login-provider-test2') -export class UmbExternalLoginProviderTest2Element extends LitElement { - render() { - return html` - Another Custom External Login Provider -

This is an example of another custom external login provider

- - Email - - - - `; - } - - static styles = [ - UUITextStyles, - css` - :host { - display: flex; - flex-direction: column; - gap: var(--uui-size-space-4); - padding: var(--uui-size-space-5); - border: 1px solid var(--uui-color-border); - background: var(--uui-color-surface-alt); - border-radius: var(--uui-border-radius); - } - p { - margin: 0; - } - uui-input { - width: 100%; - } - `, - ]; -} - -export default UmbExternalLoginProviderTest2Element; - -declare global { - interface HTMLElementTagNameMap { - 'umb-external-login-provider-test2': UmbExternalLoginProviderTest2Element; - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts deleted file mode 100644 index 534b6a9cc2..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/external-login-providers/manifests.ts +++ /dev/null @@ -1,29 +0,0 @@ -// TODO: could these be renamed as login providers? -import type { ManifestExternalLoginProvider } from '@umbraco-cms/backoffice/extension-registry'; - -export const manifests: Array = [ - { - type: 'externalLoginProvider', - alias: 'Umb.ExternalLoginProvider.Test', - name: 'Test External Login Provider', - elementName: 'umb-external-login-provider-test', - element: () => import('./external-login-provider-test.element.js'), - weight: 2, - meta: { - label: 'Test External Login Provider', - pathname: 'test/test/test', - }, - }, - { - type: 'externalLoginProvider', - alias: 'Umb.ExternalLoginProvider.Test2', - name: 'Test External Login Provider 2', - elementName: 'umb-external-login-provider-test2', - element: () => import('./external-login-provider-test2.element.js'), - weight: 1, - meta: { - label: 'Test External Login Provider 2', - pathname: 'test/test/test', - }, - }, -]; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/index.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/index.ts deleted file mode 100644 index 43ef4da338..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import 'element-internals-polyfill'; - -import '@umbraco-ui/uui-css/dist/uui-css.css'; -import '../../../src/css/umb-css.css'; -import '@umbraco-ui/uui'; - -import './login.element.js'; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts deleted file mode 100644 index d55dd07276..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/login.element.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { css, CSSResultGroup, html, LitElement, nothing } from 'lit'; -import { customElement, property, state } from 'lit/decorators.js'; - -import type { UUIButtonState } from '@umbraco-ui/uui'; -import type { IUmbAuthContext } from './types.js'; -import { UmbAuthLegacyContext } from './auth-legacy.context.js'; -import { UmbAuthContext } from './auth.context.js'; - -import './auth-layout.element.js'; - -@customElement('umb-login') -export default class UmbLoginElement extends LitElement { - #authContext: IUmbAuthContext; - - @property({ type: String, attribute: 'return-url' }) - returnUrl = ''; - - @property({ type: Boolean }) - isLegacy = false; - - @state() - private _loginState: UUIButtonState = undefined; - - @state() - private _loginError = ''; - - constructor() { - super(); - if (this.isLegacy) { - this.#authContext = new UmbAuthLegacyContext(); - } else { - this.#authContext = new UmbAuthContext(); - } - } - - #handleSubmit = async (e: SubmitEvent) => { - e.preventDefault(); - - const form = e.target as HTMLFormElement; - if (!form) return; - - if (!form.checkValidity()) return; - - const formData = new FormData(form); - - const username = formData.get('email') as string; - const password = formData.get('password') as string; - const persist = formData.has('persist'); - - this._loginState = 'waiting'; - - const response = await this.#authContext.login({ username, password, persist }); - - this._loginError = response.error || ''; - this._loginState = response.error ? 'failed' : 'success'; - - if (response.error) return; - - location.href = this.returnUrl; - }; - - get #greeting() { - return [ - 'Happy super Sunday', - 'Happy marvelous Monday', - 'Happy tubular Tuesday', - 'Happy wonderful Wednesday', - 'Happy thunderous Thursday', - 'Happy funky Friday', - 'Happy Saturday', - ][new Date().getDay()]; - } - - render() { - return html` - -
-

${this.#greeting}

- -
- - Email - - - - - Password - - - - ${this.#authContext.supportsPersistLogin - ? html` - Remember me - ` - : nothing} - - ${this.#renderErrorMessage()} - - -
-
-
-
- `; - } - - #renderErrorMessage() { - if (!this._loginError || this._loginState !== 'failed') return nothing; - - return html`

${this._loginError}

`; - } - - static styles: CSSResultGroup = [ - UUITextStyles, - css` - #email, - #password { - width: 100%; - } - .text-danger { - color: var(--uui-color-danger-standalone); - } - `, - ]; -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-login': UmbLoginElement; - } -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts deleted file mode 100644 index 3bdfaccdd0..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/login.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { expect, fixture, html } from '@open-wc/testing'; -import { type UmbTestRunnerWindow, defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; -import UmbLoginElement from './login.element.js'; - -describe('UmbLogin', () => { - let element: UmbLoginElement; - - beforeEach(async () => { - element = await fixture(html``); - }); - - it('is defined with its own instance', () => { - expect(element).to.be.instanceOf(UmbLoginElement); - }); - - if ((window as UmbTestRunnerWindow).__UMBRACO_TEST_RUN_A11Y_TEST) { - it('passes the a11y audit', async () => { - await expect(element).to.be.accessible(defaultA11yConfig); - }); - } -}); diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/types.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/types.ts deleted file mode 100644 index 114c515c5d..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/types.ts +++ /dev/null @@ -1,16 +0,0 @@ -export type LoginRequestModel = { - username: string; - password: string; - persist: boolean; -}; - -export interface IUmbAuthContext { - login(data: LoginRequestModel): Promise; - supportsPersistLogin: boolean; -} - -export type LoginResponse = { - data?: string; - error?: string; - status: number; -}; diff --git a/src/Umbraco.Web.UI.Client/apps/auth/src/vite-env.d.ts b/src/Umbraco.Web.UI.Client/apps/auth/src/vite-env.d.ts deleted file mode 100644 index b0fda2b4ce..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/src/vite-env.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/// - -/* -interface ImportMetaEnv { -} -*/ diff --git a/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json b/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json deleted file mode 100644 index 3f90319d83..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "declaration": false - }, - "include": ["src/**/*.ts"], - "references": [ - { - "path": "./tsconfig.node.json" - } - ] -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.node.json b/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.node.json deleted file mode 100644 index b8b8971494..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/tsconfig.node.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "esnext", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts b/src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts deleted file mode 100644 index 74cb265ca6..0000000000 --- a/src/Umbraco.Web.UI.Client/apps/auth/vite.config.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { defineConfig } from 'vite'; -import viteTSConfigPaths from 'vite-tsconfig-paths'; - -// https://vitejs.dev/config/ -export default defineConfig({ - build: { - lib: { - entry: 'src/index.ts', - formats: ['es'], - fileName: 'main', - }, - target: 'esnext', - sourcemap: true, - rollupOptions: { - external: [/^@umbraco-cms\/backoffice\//], - output: { - manualChunks: { - uui: ['@umbraco-ui/uui'], - }, - }, - }, - outDir: '../../../Umbraco.Cms.StaticAssets/wwwroot/umbraco/auth', - emptyOutDir: true, - }, - server: { - fs: { - // Allow serving files from the global node_modules folder - allow: ['.', '../../node_modules'], - }, - }, - plugins: [viteTSConfigPaths()], -}); diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index e8c3085c05..33e545c0fa 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -117,7 +117,6 @@ "url": "https://umbraco.com" }, "scripts": { - "auth:test:e2e": "npx playwright test --config apps/auth/", "backoffice:test:e2e": "npx playwright test", "build-storybook": "npm run wc-analyze && storybook build", "build:for:cms": "npm run build && node ./devops/build/copy-to-cms.js", @@ -146,7 +145,7 @@ "preview": "vite preview --open", "storybook:build": "npm run wc-analyze && storybook build", "storybook": "npm run wc-analyze && storybook dev -p 6006", - "test:e2e": "npm run auth:test:e2e && npm run backoffice:test:e2e", + "test:e2e": "npm run backoffice:test:e2e", "test:dev": "web-test-runner --config ./web-test-runner.dev.config.mjs", "test:dev-watch": "web-test-runner --watch --config ./web-test-runner.dev.config.mjs", "test:watch": "web-test-runner --watch", From 0c98708032dd52afa3036ab3252961059934bb9a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 5 Apr 2024 15:44:58 +0200 Subject: [PATCH 096/177] null check --- .../media/recycle-bin/tree/media-recycle-bin-tree.repository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts index f027339993..7d3f2eb88d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/recycle-bin/tree/media-recycle-bin-tree.repository.ts @@ -16,7 +16,7 @@ export class UmbMediaRecycleBinTreeRepository async requestTreeRoot() { const { data: treeRootData } = await this._treeSource.getRootItems({ skip: 0, take: 1 }); - const hasChildren = treeRootData?.total > 0; + const hasChildren = treeRootData ? treeRootData.total > 0 : false; const data = { unique: null, From bcbbe4965c8f8645ed27cf0f2cc8dfb60d8e6d34 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:19:00 +0200 Subject: [PATCH 097/177] install simple-icons and add a few brand icons (recommendation from team at lucide) --- .../devops/icons/index.js | 36 ++++++++++- src/Umbraco.Web.UI.Client/package-lock.json | 14 +++++ src/Umbraco.Web.UI.Client/package.json | 1 + .../core/icon-registry/icon-dictionary.json | 60 ++++++++++++++++--- .../core/icon-registry/icons/icon-azure.js | 1 + .../core/icon-registry/icons/icon-facebook.js | 1 + .../core/icon-registry/icons/icon-gitbook.js | 1 + .../core/icon-registry/icons/icon-github.js | 1 + .../core/icon-registry/icons/icon-gitlab.js | 1 + .../core/icon-registry/icons/icon-google.js | 1 + .../core/icon-registry/icons/icon-linkedin.js | 1 + .../core/icon-registry/icons/icon-mastodon.js | 1 + .../icon-registry/icons/icon-microsoft.js | 1 + .../icon-registry/icons/icon-twitter-x.js | 1 + .../core/icon-registry/icons/icon-twitter.js | 1 + .../core/icon-registry/icons/icons.json | 2 +- .../core/icon-registry/svgs/icon-twitter.svg | 5 ++ 17 files changed, 117 insertions(+), 12 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-facebook.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitbook.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-github.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitlab.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-google.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-linkedin.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mastodon.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter-x.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg diff --git a/src/Umbraco.Web.UI.Client/devops/icons/index.js b/src/Umbraco.Web.UI.Client/devops/icons/index.js index 29e84f3a96..0835e420c5 100644 --- a/src/Umbraco.Web.UI.Client/devops/icons/index.js +++ b/src/Umbraco.Web.UI.Client/devops/icons/index.js @@ -12,6 +12,7 @@ const umbracoSvgDirectory = `${moduleDirectory}/svgs`; const iconMapJson = `${moduleDirectory}/icon-dictionary.json`; const lucideSvgDirectory = 'node_modules/lucide-static/icons'; +const simpleIconsSvgDirectory = 'node_modules/simple-icons/icons'; const run = async () => { var icons = await collectDictionaryIcons(); @@ -50,8 +51,39 @@ const collectDictionaryIcons = async () => { }; icons.push(icon); - } catch(e) { - console.log(`Could not load file: '${path}'`); + } catch (e) { + console.log(`[Lucide] Could not load file: '${path}'`); + } + } + }); + + // SimpleIcons: + fileJSON.simpleIcons.forEach((iconDef) => { + if (iconDef.file && iconDef.name) { + const path = simpleIconsSvgDirectory + "/" + iconDef.file; + + try { + const rawData = readFileSync(path); + let svg = rawData.toString() + const iconFileName = iconDef.name; + + // SimpleIcons need to use fill="currentColor" + const pattern = /fill=/g; + if (!pattern.test(svg)) { + svg = svg.replace(/=0.12.18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/simple-icons" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 33e545c0fa..929d6ea64c 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -226,6 +226,7 @@ "rollup-plugin-import-css": "^3.4.0", "rollup-plugin-web-worker-loader": "^1.6.1", "storybook": "^7.6.17", + "simple-icons": "^11.11.0", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", "typedoc": "^0.25.10", diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json index d46fcbda58..1e30ae54aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json @@ -1486,7 +1486,7 @@ { "name": "icon-newspaper-alt", "file": "newspaper.svg", - "legacy":true + "legacy": true }, { "name": "icon-newspaper", @@ -1737,22 +1737,22 @@ { "name": "icon-price-dollar", "file": "badge-dollar-sign.svg", - "legacy":true + "legacy": true }, { "name": "icon-price-euro", "file": "badge-euro.svg", - "legacy":true + "legacy": true }, { "name": "icon-price-pound", "file": "badge-pound-sterling.svg", - "legacy":true + "legacy": true }, { "name": "icon-price-yen", "file": "badge-japanese-yen", - "legacy":true + "legacy": true }, { "name": "icon-print", @@ -2429,10 +2429,6 @@ "name": "icon-zoom-in", "file": "zoom-in.svg" }, - - - - { "name": "icon-zoom-out", "file": "zoom-out.svg" @@ -2446,6 +2442,52 @@ "file": "database.svg" } ], + "simpleIcons": [ + { + "name": "icon-azure", + "file": "microsoftazure.svg" + }, + { + "name": "icon-facebook", + "file": "facebook.svg" + }, + { + "name": "icon-gitbook", + "file": "gitbook.svg" + }, + { + "name": "icon-github", + "file": "github.svg" + }, + { + "name": "icon-gitlab", + "file": "gitlab.svg" + }, + { + "name": "icon-google", + "file": "google.svg" + }, + { + "name": "icon-linkedin", + "file": "linkedin.svg" + }, + { + "name": "icon-mastodon", + "file": "mastodon.svg" + }, + { + "name": "icon-microsoft", + "file": "microsoft.svg" + }, + { + "name": "icon-twitter", + "file": "twitter.svg" + }, + { + "name": "icon-twitter-x", + "file": "x.svg" + } + ], "umbraco": [ { "name": "icon-umbraco", diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.js new file mode 100644 index 0000000000..c12ff1b97a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-azure.js @@ -0,0 +1 @@ +export default `Microsoft Azure`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-facebook.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-facebook.js new file mode 100644 index 0000000000..d3cd4e5675 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-facebook.js @@ -0,0 +1 @@ +export default `Facebook`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitbook.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitbook.js new file mode 100644 index 0000000000..3cad1567e6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitbook.js @@ -0,0 +1 @@ +export default `GitBook`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-github.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-github.js new file mode 100644 index 0000000000..e7308eddeb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-github.js @@ -0,0 +1 @@ +export default `GitHub`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitlab.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitlab.js new file mode 100644 index 0000000000..8ef7e658bd --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-gitlab.js @@ -0,0 +1 @@ +export default `GitLab`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-google.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-google.js new file mode 100644 index 0000000000..4e6e37bca7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-google.js @@ -0,0 +1 @@ +export default `Google`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-linkedin.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-linkedin.js new file mode 100644 index 0000000000..1fb9aeb48b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-linkedin.js @@ -0,0 +1 @@ +export default `LinkedIn`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mastodon.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mastodon.js new file mode 100644 index 0000000000..40c5f92c70 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-mastodon.js @@ -0,0 +1 @@ +export default `Mastodon`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.js new file mode 100644 index 0000000000..48d6ba0e9a --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-microsoft.js @@ -0,0 +1 @@ +export default `Microsoft`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter-x.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter-x.js new file mode 100644 index 0000000000..34ab0e67f8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter-x.js @@ -0,0 +1 @@ +export default `X`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js new file mode 100644 index 0000000000..5e4a5c4737 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js @@ -0,0 +1 @@ +export default `Twitter`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json index 5cb738864a..da2d594374 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json @@ -1 +1 @@ -[{"name":"icon-activity","path":"./icons/icon-activity.js"},{"name":"icon-add","path":"./icons/icon-add.js"},{"name":"icon-addressbook","path":"./icons/icon-addressbook.js"},{"name":"icon-alarm-clock","path":"./icons/icon-alarm-clock.js"},{"name":"icon-alert-alt","path":"./icons/icon-alert-alt.js"},{"name":"icon-alert","path":"./icons/icon-alert.js"},{"name":"icon-alt","path":"./icons/icon-alt.js"},{"name":"icon-anchor","path":"./icons/icon-anchor.js"},{"name":"icon-app","path":"./icons/icon-app.js"},{"name":"icon-application-window-alt","path":"./icons/icon-application-window-alt.js"},{"name":"icon-application-window","path":"./icons/icon-application-window.js"},{"name":"icon-arrivals","path":"./icons/icon-arrivals.js"},{"name":"icon-arrow-down","path":"./icons/icon-arrow-down.js"},{"name":"icon-arrow-left","path":"./icons/icon-arrow-left.js"},{"name":"icon-arrow-right","path":"./icons/icon-arrow-right.js"},{"name":"icon-arrow-up","path":"./icons/icon-arrow-up.js"},{"name":"icon-attachment","path":"./icons/icon-attachment.js"},{"name":"icon-autofill","path":"./icons/icon-autofill.js"},{"name":"icon-award","path":"./icons/icon-award.js"},{"name":"icon-axis-rotation-2","path":"./icons/icon-axis-rotation-2.js"},{"name":"icon-axis-rotation-3","path":"./icons/icon-axis-rotation-3.js"},{"name":"icon-axis-rotation","path":"./icons/icon-axis-rotation.js"},{"name":"icon-backspace","path":"./icons/icon-backspace.js"},{"name":"icon-badge-add","path":"./icons/icon-badge-add.js"},{"name":"icon-badge-remove","path":"./icons/icon-badge-remove.js"},{"name":"icon-badge-restricted","legacy":true,"path":"./icons/icon-badge-restricted.js"},{"name":"icon-bar-chart","path":"./icons/icon-bar-chart.js"},{"name":"icon-barcode","path":"./icons/icon-barcode.js"},{"name":"icon-bars","path":"./icons/icon-bars.js"},{"name":"icon-battery-full","path":"./icons/icon-battery-full.js"},{"name":"icon-battery-low","path":"./icons/icon-battery-low.js"},{"name":"icon-beer-glass","path":"./icons/icon-beer-glass.js"},{"name":"icon-bell-off","path":"./icons/icon-bell-off.js"},{"name":"icon-bell","path":"./icons/icon-bell.js"},{"name":"icon-binarycode","path":"./icons/icon-binarycode.js"},{"name":"icon-bird","path":"./icons/icon-bird.js"},{"name":"icon-birthday-cake","path":"./icons/icon-birthday-cake.js"},{"name":"icon-block","path":"./icons/icon-block.js"},{"name":"icon-bluetooth","path":"./icons/icon-bluetooth.js"},{"name":"icon-boat-shipping","path":"./icons/icon-boat-shipping.js"},{"name":"icon-bones","path":"./icons/icon-bones.js"},{"name":"icon-book-alt-2","path":"./icons/icon-book-alt-2.js"},{"name":"icon-book-alt","path":"./icons/icon-book-alt.js"},{"name":"icon-book","path":"./icons/icon-book.js"},{"name":"icon-bookmark","path":"./icons/icon-bookmark.js"},{"name":"icon-books","path":"./icons/icon-books.js"},{"name":"icon-box-alt","path":"./icons/icon-box-alt.js"},{"name":"icon-box-open","path":"./icons/icon-box-open.js"},{"name":"icon-box","path":"./icons/icon-box.js"},{"name":"icon-brackets","path":"./icons/icon-brackets.js"},{"name":"icon-brick","path":"./icons/icon-brick.js"},{"name":"icon-briefcase","path":"./icons/icon-briefcase.js"},{"name":"icon-browser-window","path":"./icons/icon-browser-window.js"},{"name":"icon-brush-alt-2","path":"./icons/icon-brush-alt-2.js"},{"name":"icon-brush-alt","path":"./icons/icon-brush-alt.js"},{"name":"icon-brush","path":"./icons/icon-brush.js"},{"name":"icon-bug","path":"./icons/icon-bug.js"},{"name":"icon-bulleted-list","path":"./icons/icon-bulleted-list.js"},{"name":"icon-burn","path":"./icons/icon-burn.js"},{"name":"icon-bus","path":"./icons/icon-bus.js"},{"name":"icon-calculator","path":"./icons/icon-calculator.js"},{"name":"icon-calendar-alt","path":"./icons/icon-calendar-alt.js"},{"name":"icon-calendar","path":"./icons/icon-calendar.js"},{"name":"icon-camcorder","legacy":true,"path":"./icons/icon-camcorder.js"},{"name":"icon-camera-roll","path":"./icons/icon-camera-roll.js"},{"name":"icon-candy","path":"./icons/icon-candy.js"},{"name":"icon-caps-lock","path":"./icons/icon-caps-lock.js"},{"name":"icon-car","path":"./icons/icon-car.js"},{"name":"icon-categories","path":"./icons/icon-categories.js"},{"name":"icon-certificate","path":"./icons/icon-certificate.js"},{"name":"icon-chart-curve","path":"./icons/icon-chart-curve.js"},{"name":"icon-chart","path":"./icons/icon-chart.js"},{"name":"icon-chat-active","legacy":true,"path":"./icons/icon-chat-active.js"},{"name":"icon-chat","path":"./icons/icon-chat.js"},{"name":"icon-check","path":"./icons/icon-check.js"},{"name":"icon-checkbox-dotted","path":"./icons/icon-checkbox-dotted.js"},{"name":"icon-checkbox-empty","legacy":true,"path":"./icons/icon-checkbox-empty.js"},{"name":"icon-checkbox","path":"./icons/icon-checkbox.js"},{"name":"icon-chip-alt","legacy":true,"path":"./icons/icon-chip-alt.js"},{"name":"icon-chip","path":"./icons/icon-chip.js"},{"name":"icon-cinema","path":"./icons/icon-cinema.js"},{"name":"icon-circle-dotted-active","path":"./icons/icon-circle-dotted-active.js"},{"name":"icon-circle-dotted","path":"./icons/icon-circle-dotted.js"},{"name":"icon-circuits","path":"./icons/icon-circuits.js"},{"name":"icon-client","legacy":true,"path":"./icons/icon-client.js"},{"name":"icon-cloud-drive","path":"./icons/icon-cloud-drive.js"},{"name":"icon-cloud-upload","path":"./icons/icon-cloud-upload.js"},{"name":"icon-cloud","path":"./icons/icon-cloud.js"},{"name":"icon-cloudy","path":"./icons/icon-cloudy.js"},{"name":"icon-clubs","path":"./icons/icon-clubs.js"},{"name":"icon-cocktail","path":"./icons/icon-cocktail.js"},{"name":"icon-code","path":"./icons/icon-code.js"},{"name":"icon-coffee","path":"./icons/icon-coffee.js"},{"name":"icon-coin-euro","path":"./icons/icon-coin-euro.js"},{"name":"icon-coin-yen","path":"./icons/icon-coin-yen.js"},{"name":"icon-coins-alt","legacy":true,"path":"./icons/icon-coins-alt.js"},{"name":"icon-coins","path":"./icons/icon-coins.js"},{"name":"icon-color-bucket","path":"./icons/icon-color-bucket.js"},{"name":"icon-colorpicker","path":"./icons/icon-colorpicker.js"},{"name":"icon-columns","path":"./icons/icon-columns.js"},{"name":"icon-combination-lock-open","path":"./icons/icon-combination-lock-open.js"},{"name":"icon-combination-lock","path":"./icons/icon-combination-lock.js"},{"name":"icon-command","path":"./icons/icon-command.js"},{"name":"icon-company","path":"./icons/icon-company.js"},{"name":"icon-compress","path":"./icons/icon-compress.js"},{"name":"icon-connection","path":"./icons/icon-connection.js"},{"name":"icon-console","path":"./icons/icon-console.js"},{"name":"icon-contrast","path":"./icons/icon-contrast.js"},{"name":"icon-conversation-alt","path":"./icons/icon-conversation-alt.js"},{"name":"icon-conversation","legacy":true,"path":"./icons/icon-conversation.js"},{"name":"icon-coverflow","path":"./icons/icon-coverflow.js"},{"name":"icon-credit-card-alt","legacy":true,"path":"./icons/icon-credit-card-alt.js"},{"name":"icon-credit-card","path":"./icons/icon-credit-card.js"},{"name":"icon-crop","path":"./icons/icon-crop.js"},{"name":"icon-crosshair","path":"./icons/icon-crosshair.js"},{"name":"icon-crown-alt","legacy":true,"path":"./icons/icon-crown-alt.js"},{"name":"icon-crown","path":"./icons/icon-crown.js"},{"name":"icon-cupcake","legacy":true,"path":"./icons/icon-cupcake.js"},{"name":"icon-curve","path":"./icons/icon-curve.js"},{"name":"icon-cut","path":"./icons/icon-cut.js"},{"name":"icon-dashboard","path":"./icons/icon-dashboard.js"},{"name":"icon-defrag","path":"./icons/icon-defrag.js"},{"name":"icon-delete-key","path":"./icons/icon-delete-key.js"},{"name":"icon-delete","path":"./icons/icon-delete.js"},{"name":"icon-departure","path":"./icons/icon-departure.js"},{"name":"icon-desktop","legacy":true,"path":"./icons/icon-desktop.js"},{"name":"icon-diagnostics","path":"./icons/icon-diagnostics.js"},{"name":"icon-diagonal-arrow-alt","path":"./icons/icon-diagonal-arrow-alt.js"},{"name":"icon-diagonal-arrow","path":"./icons/icon-diagonal-arrow.js"},{"name":"icon-diamond","path":"./icons/icon-diamond.js"},{"name":"icon-diamonds","path":"./icons/icon-diamonds.js"},{"name":"icon-dice","path":"./icons/icon-dice.js"},{"name":"icon-diploma-alt","legacy":true,"path":"./icons/icon-diploma-alt.js"},{"name":"icon-diploma","path":"./icons/icon-diploma.js"},{"name":"icon-directions-alt","path":"./icons/icon-directions-alt.js"},{"name":"icon-directions","path":"./icons/icon-directions.js"},{"name":"icon-disc","path":"./icons/icon-disc.js"},{"name":"icon-disk-image","path":"./icons/icon-disk-image.js"},{"name":"icon-display","path":"./icons/icon-display.js"},{"name":"icon-dna","path":"./icons/icon-dna.js"},{"name":"icon-dock-connector","path":"./icons/icon-dock-connector.js"},{"name":"icon-document-dashed-line","path":"./icons/icon-document-dashed-line.js"},{"name":"icon-document","path":"./icons/icon-document.js"},{"name":"icon-documents","path":"./icons/icon-documents.js"},{"name":"icon-donate","legacy":true,"path":"./icons/icon-donate.js"},{"name":"icon-door-open-alt","legacy":true,"path":"./icons/icon-door-open-alt.js"},{"name":"icon-door-open","path":"./icons/icon-door-open.js"},{"name":"icon-download-alt","path":"./icons/icon-download-alt.js"},{"name":"icon-download","path":"./icons/icon-download.js"},{"name":"icon-drop","path":"./icons/icon-drop.js"},{"name":"icon-eco","path":"./icons/icon-eco.js"},{"name":"icon-economy","legacy":true,"path":"./icons/icon-economy.js"},{"name":"icon-edit","path":"./icons/icon-edit.js"},{"name":"icon-employee","legacy":true,"path":"./icons/icon-employee.js"},{"name":"icon-energy-saving-bulb","path":"./icons/icon-energy-saving-bulb.js"},{"name":"icon-enter","path":"./icons/icon-enter.js"},{"name":"icon-equalizer","path":"./icons/icon-equalizer.js"},{"name":"icon-escape","path":"./icons/icon-escape.js"},{"name":"icon-ethernet","path":"./icons/icon-ethernet.js"},{"name":"icon-eye","path":"./icons/icon-eye.js"},{"name":"icon-facebook-like","path":"./icons/icon-facebook-like.js"},{"name":"icon-factory","path":"./icons/icon-factory.js"},{"name":"icon-favorite","path":"./icons/icon-favorite.js"},{"name":"icon-file-cabinet","path":"./icons/icon-file-cabinet.js"},{"name":"icon-files","path":"./icons/icon-files.js"},{"name":"icon-filter","path":"./icons/icon-filter.js"},{"name":"icon-fingerprint","path":"./icons/icon-fingerprint.js"},{"name":"icon-fire","path":"./icons/icon-fire.js"},{"name":"icon-firewire","legacy":true,"path":"./icons/icon-firewire.js"},{"name":"icon-flag-alt","path":"./icons/icon-flag-alt.js"},{"name":"icon-flag","path":"./icons/icon-flag.js"},{"name":"icon-flash","path":"./icons/icon-flash.js"},{"name":"icon-flashlight","path":"./icons/icon-flashlight.js"},{"name":"icon-flowerpot","path":"./icons/icon-flowerpot.js"},{"name":"icon-folder","path":"./icons/icon-folder.js"},{"name":"icon-folders","path":"./icons/icon-folders.js"},{"name":"icon-font","path":"./icons/icon-font.js"},{"name":"icon-food","path":"./icons/icon-food.js"},{"name":"icon-footprints","path":"./icons/icon-footprints.js"},{"name":"icon-forking","path":"./icons/icon-forking.js"},{"name":"icon-frame-alt","legacy":true,"path":"./icons/icon-frame-alt.js"},{"name":"icon-frame","path":"./icons/icon-frame.js"},{"name":"icon-fullscreen-alt","path":"./icons/icon-fullscreen-alt.js"},{"name":"icon-fullscreen","path":"./icons/icon-fullscreen.js"},{"name":"icon-game","path":"./icons/icon-game.js"},{"name":"icon-geometry","legacy":true,"path":"./icons/icon-geometry.js"},{"name":"icon-gift","path":"./icons/icon-gift.js"},{"name":"icon-glasses","path":"./icons/icon-glasses.js"},{"name":"icon-globe-alt","path":"./icons/icon-globe-alt.js"},{"name":"icon-globe-asia","legacy":true,"path":"./icons/icon-globe-asia.js"},{"name":"icon-globe-europe-africa","legacy":true,"path":"./icons/icon-globe-europe-africa.js"},{"name":"icon-globe-inverted-america","legacy":true,"path":"./icons/icon-globe-inverted-america.js"},{"name":"icon-globe-inverted-asia","legacy":true,"path":"./icons/icon-globe-inverted-asia.js"},{"name":"icon-globe-inverted-europe-africa","legacy":true,"path":"./icons/icon-globe-inverted-europe-africa.js"},{"name":"icon-globe","path":"./icons/icon-globe.js"},{"name":"icon-gps","path":"./icons/icon-gps.js"},{"name":"icon-graduate","path":"./icons/icon-graduate.js"},{"name":"icon-grid","path":"./icons/icon-grid.js"},{"name":"icon-hammer","path":"./icons/icon-hammer.js"},{"name":"icon-hand-active-alt","legacy":true,"path":"./icons/icon-hand-active-alt.js"},{"name":"icon-hand-active","path":"./icons/icon-hand-active.js"},{"name":"icon-hand-pointer-alt","legacy":true,"path":"./icons/icon-hand-pointer-alt.js"},{"name":"icon-hand-pointer","path":"./icons/icon-hand-pointer.js"},{"name":"icon-handshake","path":"./icons/icon-handshake.js"},{"name":"icon-handtool-alt","legacy":true,"path":"./icons/icon-handtool-alt.js"},{"name":"icon-handtool","path":"./icons/icon-handtool.js"},{"name":"icon-hard-drive-alt","legacy":true,"path":"./icons/icon-hard-drive-alt.js"},{"name":"icon-hard-drive","legacy":true,"path":"./icons/icon-hard-drive.js"},{"name":"icon-headphones","path":"./icons/icon-headphones.js"},{"name":"icon-headset","legacy":true,"path":"./icons/icon-headset.js"},{"name":"icon-hearts","path":"./icons/icon-hearts.js"},{"name":"icon-height","path":"./icons/icon-height.js"},{"name":"icon-help-alt","path":"./icons/icon-help-alt.js"},{"name":"icon-help","path":"./icons/icon-help.js"},{"name":"icon-home","path":"./icons/icon-home.js"},{"name":"icon-hourglass","path":"./icons/icon-hourglass.js"},{"name":"icon-imac","legacy":true,"path":"./icons/icon-imac.js"},{"name":"icon-inbox-full","legacy":true,"path":"./icons/icon-inbox-full.js"},{"name":"icon-inbox","path":"./icons/icon-inbox.js"},{"name":"icon-indent","path":"./icons/icon-indent.js"},{"name":"icon-infinity","path":"./icons/icon-infinity.js"},{"name":"icon-info","path":"./icons/icon-info.js"},{"name":"icon-invoice","legacy":true,"path":"./icons/icon-invoice.js"},{"name":"icon-ipad","legacy":true,"path":"./icons/icon-ipad.js"},{"name":"icon-iphone","legacy":true,"path":"./icons/icon-iphone.js"},{"name":"icon-item-arrangement","legacy":true,"path":"./icons/icon-item-arrangement.js"},{"name":"icon-junk","path":"./icons/icon-junk.js"},{"name":"icon-key","path":"./icons/icon-key.js"},{"name":"icon-keyboard","path":"./icons/icon-keyboard.js"},{"name":"icon-lab","path":"./icons/icon-lab.js"},{"name":"icon-laptop","path":"./icons/icon-laptop.js"},{"name":"icon-layers-alt","legacy":true,"path":"./icons/icon-layers-alt.js"},{"name":"icon-layers","path":"./icons/icon-layers.js"},{"name":"icon-layout","path":"./icons/icon-layout.js"},{"name":"icon-left-double-arrow","path":"./icons/icon-left-double-arrow.js"},{"name":"icon-legal","path":"./icons/icon-legal.js"},{"name":"icon-lense","legacy":true,"path":"./icons/icon-lense.js"},{"name":"icon-library","path":"./icons/icon-library.js"},{"name":"icon-light-down","path":"./icons/icon-light-down.js"},{"name":"icon-light-up","path":"./icons/icon-light-up.js"},{"name":"icon-lightning","path":"./icons/icon-lightning.js"},{"name":"icon-link","path":"./icons/icon-link.js"},{"name":"icon-list","path":"./icons/icon-list.js"},{"name":"icon-load","legacy":true,"path":"./icons/icon-load.js"},{"name":"icon-loading","legacy":true,"path":"./icons/icon-loading.js"},{"name":"icon-location-nearby","path":"./icons/icon-location-nearby.js"},{"name":"icon-lock","path":"./icons/icon-lock.js"},{"name":"icon-log-out","path":"./icons/icon-log-out.js"},{"name":"icon-logout","legacy":true,"path":"./icons/icon-logout.js"},{"name":"icon-loupe","legacy":true,"path":"./icons/icon-loupe.js"},{"name":"icon-magnet","path":"./icons/icon-magnet.js"},{"name":"icon-mailbox","path":"./icons/icon-mailbox.js"},{"name":"icon-map-alt","path":"./icons/icon-map-alt.js"},{"name":"icon-map-location","legacy":true,"path":"./icons/icon-map-location.js"},{"name":"icon-map-marker","path":"./icons/icon-map-marker.js"},{"name":"icon-map","path":"./icons/icon-map.js"},{"name":"icon-medal","path":"./icons/icon-medal.js"},{"name":"icon-medical-emergency","path":"./icons/icon-medical-emergency.js"},{"name":"icon-medicine","path":"./icons/icon-medicine.js"},{"name":"icon-meeting","legacy":true,"path":"./icons/icon-meeting.js"},{"name":"icon-megaphone","path":"./icons/icon-megaphone.js"},{"name":"icon-merge","path":"./icons/icon-merge.js"},{"name":"icon-message-open","path":"./icons/icon-message-open.js"},{"name":"icon-message-unopened","legacy":true,"path":"./icons/icon-message-unopened.js"},{"name":"icon-message","path":"./icons/icon-message.js"},{"name":"icon-microscope","path":"./icons/icon-microscope.js"},{"name":"icon-mindmap","legacy":true,"path":"./icons/icon-mindmap.js"},{"name":"icon-mobile","path":"./icons/icon-mobile.js"},{"name":"icon-mountain","path":"./icons/icon-mountain.js"},{"name":"icon-mouse-cursor","path":"./icons/icon-mouse-cursor.js"},{"name":"icon-mouse","path":"./icons/icon-mouse.js"},{"name":"icon-movie-alt","path":"./icons/icon-movie-alt.js"},{"name":"icon-movie","path":"./icons/icon-movie.js"},{"name":"icon-multiple-credit-cards","path":"./icons/icon-multiple-credit-cards.js"},{"name":"icon-music","path":"./icons/icon-music.js"},{"name":"icon-name-badge","legacy":true,"path":"./icons/icon-name-badge.js"},{"name":"icon-navigation-bottom","legacy":true,"path":"./icons/icon-navigation-bottom.js"},{"name":"icon-navigation-down","legacy":true,"path":"./icons/icon-navigation-down.js"},{"name":"icon-navigation-first","legacy":true,"path":"./icons/icon-navigation-first.js"},{"name":"icon-navigation-horizontal","legacy":true,"path":"./icons/icon-navigation-horizontal.js"},{"name":"icon-navigation-last","legacy":true,"path":"./icons/icon-navigation-last.js"},{"name":"icon-navigation-left","legacy":true,"path":"./icons/icon-navigation-left.js"},{"name":"icon-navigation-right","legacy":true,"path":"./icons/icon-navigation-right.js"},{"name":"icon-navigation-road","legacy":true,"path":"./icons/icon-navigation-road.js"},{"name":"icon-navigation-up","legacy":true,"path":"./icons/icon-navigation-up.js"},{"name":"icon-navigation-vertical","legacy":true,"path":"./icons/icon-navigation-vertical.js"},{"name":"icon-navigation","legacy":true,"path":"./icons/icon-navigation.js"},{"name":"icon-navigational-arrow","path":"./icons/icon-navigational-arrow.js"},{"name":"icon-network-alt","path":"./icons/icon-network-alt.js"},{"name":"icon-newspaper-alt","legacy":true,"path":"./icons/icon-newspaper-alt.js"},{"name":"icon-newspaper","path":"./icons/icon-newspaper.js"},{"name":"icon-next-media","legacy":true,"path":"./icons/icon-next-media.js"},{"name":"icon-next","legacy":true,"path":"./icons/icon-next.js"},{"name":"icon-nodes","legacy":true,"path":"./icons/icon-nodes.js"},{"name":"icon-notepad-alt","legacy":true,"path":"./icons/icon-notepad-alt.js"},{"name":"icon-notepad","path":"./icons/icon-notepad.js"},{"name":"icon-old-key","path":"./icons/icon-old-key.js"},{"name":"icon-old-phone","legacy":true,"path":"./icons/icon-old-phone.js"},{"name":"icon-operator","path":"./icons/icon-operator.js"},{"name":"icon-ordered-list","path":"./icons/icon-ordered-list.js"},{"name":"icon-out","path":"./icons/icon-out.js"},{"name":"icon-outbox","legacy":true,"path":"./icons/icon-outbox.js"},{"name":"icon-outdent","path":"./icons/icon-outdent.js"},{"name":"icon-page-add","path":"./icons/icon-page-add.js"},{"name":"icon-page-down","path":"./icons/icon-page-down.js"},{"name":"icon-page-remove","path":"./icons/icon-page-remove.js"},{"name":"icon-page-restricted","path":"./icons/icon-page-restricted.js"},{"name":"icon-page-up","path":"./icons/icon-page-up.js"},{"name":"icon-paint-roller","legacy":true,"path":"./icons/icon-paint-roller.js"},{"name":"icon-palette","path":"./icons/icon-palette.js"},{"name":"icon-panel-show","path":"./icons/icon-panel-show.js"},{"name":"icon-pannel-close","path":"./icons/icon-pannel-close.js"},{"name":"icon-paper-bag","legacy":true,"path":"./icons/icon-paper-bag.js"},{"name":"icon-paper-plane-alt","path":"./icons/icon-paper-plane-alt.js"},{"name":"icon-paper-plane","path":"./icons/icon-paper-plane.js"},{"name":"icon-partly-cloudy","path":"./icons/icon-partly-cloudy.js"},{"name":"icon-paste-in","legacy":true,"path":"./icons/icon-paste-in.js"},{"name":"icon-pause","path":"./icons/icon-pause.js"},{"name":"icon-pc","legacy":true,"path":"./icons/icon-pc.js"},{"name":"icon-people-alt-2","legacy":true,"path":"./icons/icon-people-alt-2.js"},{"name":"icon-people-alt","legacy":true,"path":"./icons/icon-people-alt.js"},{"name":"icon-people-female","legacy":true,"path":"./icons/icon-people-female.js"},{"name":"icon-people","path":"./icons/icon-people.js"},{"name":"icon-phone-ring","path":"./icons/icon-phone-ring.js"},{"name":"icon-phone","path":"./icons/icon-phone.js"},{"name":"icon-photo-album","path":"./icons/icon-photo-album.js"},{"name":"icon-picture","path":"./icons/icon-picture.js"},{"name":"icon-pictures-alt-2","path":"./icons/icon-pictures-alt-2.js"},{"name":"icon-pictures-alt","legacy":true,"path":"./icons/icon-pictures-alt.js"},{"name":"icon-pictures","path":"./icons/icon-pictures.js"},{"name":"icon-pie-chart","path":"./icons/icon-pie-chart.js"},{"name":"icon-piggy-bank","path":"./icons/icon-piggy-bank.js"},{"name":"icon-pin-location","path":"./icons/icon-pin-location.js"},{"name":"icon-plane","path":"./icons/icon-plane.js"},{"name":"icon-planet","legacy":true,"path":"./icons/icon-planet.js"},{"name":"icon-play","path":"./icons/icon-play.js"},{"name":"icon-playing-cards","legacy":true,"path":"./icons/icon-playing-cards.js"},{"name":"icon-playlist","path":"./icons/icon-playlist.js"},{"name":"icon-plugin","path":"./icons/icon-plugin.js"},{"name":"icon-podcast","path":"./icons/icon-podcast.js"},{"name":"icon-poll","legacy":true,"path":"./icons/icon-poll.js"},{"name":"icon-post-it","path":"./icons/icon-post-it.js"},{"name":"icon-power-outlet","legacy":true,"path":"./icons/icon-power-outlet.js"},{"name":"icon-power","path":"./icons/icon-power.js"},{"name":"icon-presentation","path":"./icons/icon-presentation.js"},{"name":"icon-previous-media","path":"./icons/icon-previous-media.js"},{"name":"icon-previous","path":"./icons/icon-previous.js"},{"name":"icon-price-dollar","legacy":true,"path":"./icons/icon-price-dollar.js"},{"name":"icon-price-euro","legacy":true,"path":"./icons/icon-price-euro.js"},{"name":"icon-price-pound","legacy":true,"path":"./icons/icon-price-pound.js"},{"name":"icon-print","path":"./icons/icon-print.js"},{"name":"icon-printer-alt","legacy":true,"path":"./icons/icon-printer-alt.js"},{"name":"icon-projector","path":"./icons/icon-projector.js"},{"name":"icon-pulse","path":"./icons/icon-pulse.js"},{"name":"icon-pushpin","path":"./icons/icon-pushpin.js"},{"name":"icon-qr-code","path":"./icons/icon-qr-code.js"},{"name":"icon-quote","path":"./icons/icon-quote.js"},{"name":"icon-radio-alt","path":"./icons/icon-radio-alt.js"},{"name":"icon-radio-receiver","path":"./icons/icon-radio-receiver.js"},{"name":"icon-radio","path":"./icons/icon-radio.js"},{"name":"icon-rain","path":"./icons/icon-rain.js"},{"name":"icon-rate","legacy":true,"path":"./icons/icon-rate.js"},{"name":"icon-re-post","path":"./icons/icon-re-post.js"},{"name":"icon-readonly","legacy":true,"path":"./icons/icon-readonly.js"},{"name":"icon-receipt-alt","path":"./icons/icon-receipt-alt.js"},{"name":"icon-reception","path":"./icons/icon-reception.js"},{"name":"icon-record","legacy":true,"path":"./icons/icon-record.js"},{"name":"icon-redo","path":"./icons/icon-redo.js"},{"name":"icon-refresh","path":"./icons/icon-refresh.js"},{"name":"icon-remote","legacy":true,"path":"./icons/icon-remote.js"},{"name":"icon-remove","path":"./icons/icon-remove.js"},{"name":"icon-repeat-one","path":"./icons/icon-repeat-one.js"},{"name":"icon-repeat","path":"./icons/icon-repeat.js"},{"name":"icon-reply-arrow","path":"./icons/icon-reply-arrow.js"},{"name":"icon-return-to-top","legacy":true,"path":"./icons/icon-return-to-top.js"},{"name":"icon-right-double-arrow","legacy":true,"path":"./icons/icon-right-double-arrow.js"},{"name":"icon-roadsign","legacy":true,"path":"./icons/icon-roadsign.js"},{"name":"icon-rocket","path":"./icons/icon-rocket.js"},{"name":"icon-rss","path":"./icons/icon-rss.js"},{"name":"icon-ruler-alt","path":"./icons/icon-ruler-alt.js"},{"name":"icon-ruler","path":"./icons/icon-ruler.js"},{"name":"icon-satellite-dish","path":"./icons/icon-satellite-dish.js"},{"name":"icon-save","path":"./icons/icon-save.js"},{"name":"icon-scan","path":"./icons/icon-scan.js"},{"name":"icon-school","path":"./icons/icon-school.js"},{"name":"icon-screensharing","path":"./icons/icon-screensharing.js"},{"name":"icon-script-alt","legacy":true,"path":"./icons/icon-script-alt.js"},{"name":"icon-script","path":"./icons/icon-script.js"},{"name":"icon-scull","path":"./icons/icon-scull.js"},{"name":"icon-search","path":"./icons/icon-search.js"},{"name":"icon-sensor","path":"./icons/icon-sensor.js"},{"name":"icon-server-alt","legacy":true,"path":"./icons/icon-server-alt.js"},{"name":"icon-server","path":"./icons/icon-server.js"},{"name":"icon-settings-alt","legacy":true,"path":"./icons/icon-settings-alt.js"},{"name":"icon-settings","path":"./icons/icon-settings.js"},{"name":"icon-share-alt","path":"./icons/icon-share-alt.js"},{"name":"icon-share","path":"./icons/icon-share.js"},{"name":"icon-sharing-iphone","path":"./icons/icon-sharing-iphone.js"},{"name":"icon-shield","path":"./icons/icon-shield.js"},{"name":"icon-shift","path":"./icons/icon-shift.js"},{"name":"icon-shipping-box","path":"./icons/icon-shipping-box.js"},{"name":"icon-shipping","path":"./icons/icon-shipping.js"},{"name":"icon-shoe","path":"./icons/icon-shoe.js"},{"name":"icon-shopping-basket-alt-2","legacy":true,"path":"./icons/icon-shopping-basket-alt-2.js"},{"name":"icon-shopping-basket-alt","path":"./icons/icon-shopping-basket-alt.js"},{"name":"icon-shopping-basket","path":"./icons/icon-shopping-basket.js"},{"name":"icon-shuffle","path":"./icons/icon-shuffle.js"},{"name":"icon-sience","path":"./icons/icon-sience.js"},{"name":"icon-single-note","path":"./icons/icon-single-note.js"},{"name":"icon-sitemap","legacy":true,"path":"./icons/icon-sitemap.js"},{"name":"icon-sleep","path":"./icons/icon-sleep.js"},{"name":"icon-slideshow","legacy":true,"path":"./icons/icon-slideshow.js"},{"name":"icon-smiley-inverted","legacy":true,"path":"./icons/icon-smiley-inverted.js"},{"name":"icon-smiley","path":"./icons/icon-smiley.js"},{"name":"icon-snow","path":"./icons/icon-snow.js"},{"name":"icon-sound-low","path":"./icons/icon-sound-low.js"},{"name":"icon-sound-medium","legacy":true,"path":"./icons/icon-sound-medium.js"},{"name":"icon-sound-off","path":"./icons/icon-sound-off.js"},{"name":"icon-sound-waves","path":"./icons/icon-sound-waves.js"},{"name":"icon-sound","path":"./icons/icon-sound.js"},{"name":"icon-spades","path":"./icons/icon-spades.js"},{"name":"icon-speaker","path":"./icons/icon-speaker.js"},{"name":"icon-speed-gauge","path":"./icons/icon-speed-gauge.js"},{"name":"icon-split","path":"./icons/icon-split.js"},{"name":"icon-sprout","path":"./icons/icon-sprout.js"},{"name":"icon-squiggly-line","legacy":true,"path":"./icons/icon-squiggly-line.js"},{"name":"icon-ssd","legacy":true,"path":"./icons/icon-ssd.js"},{"name":"icon-stacked-disks","legacy":true,"path":"./icons/icon-stacked-disks.js"},{"name":"icon-stamp","legacy":true,"path":"./icons/icon-stamp.js"},{"name":"icon-stop-alt","path":"./icons/icon-stop-alt.js"},{"name":"icon-stop-hand","legacy":true,"path":"./icons/icon-stop-hand.js"},{"name":"icon-stop","path":"./icons/icon-stop.js"},{"name":"icon-store","path":"./icons/icon-store.js"},{"name":"icon-stream","legacy":true,"path":"./icons/icon-stream.js"},{"name":"icon-sunny","path":"./icons/icon-sunny.js"},{"name":"icon-sweatshirt","legacy":true,"path":"./icons/icon-sweatshirt.js"},{"name":"icon-sync","path":"./icons/icon-sync.js"},{"name":"icon-t-shirt","path":"./icons/icon-t-shirt.js"},{"name":"icon-tab-key","path":"./icons/icon-tab-key.js"},{"name":"icon-tag","path":"./icons/icon-tag.js"},{"name":"icon-tags","path":"./icons/icon-tags.js"},{"name":"icon-takeaway-cup","legacy":true,"path":"./icons/icon-takeaway-cup.js"},{"name":"icon-target","path":"./icons/icon-target.js"},{"name":"icon-temperatrure-alt","path":"./icons/icon-temperatrure-alt.js"},{"name":"icon-temperature","path":"./icons/icon-temperature.js"},{"name":"icon-terminal","path":"./icons/icon-terminal.js"},{"name":"icon-theater","path":"./icons/icon-theater.js"},{"name":"icon-thumb-down","path":"./icons/icon-thumb-down.js"},{"name":"icon-thumb-up","path":"./icons/icon-thumb-up.js"},{"name":"icon-thumbnail-list","path":"./icons/icon-thumbnail-list.js"},{"name":"icon-thumbnails-small","path":"./icons/icon-thumbnails-small.js"},{"name":"icon-thumbnails","path":"./icons/icon-thumbnails.js"},{"name":"icon-ticket","path":"./icons/icon-ticket.js"},{"name":"icon-time","path":"./icons/icon-time.js"},{"name":"icon-timer","path":"./icons/icon-timer.js"},{"name":"icon-tools","legacy":true,"path":"./icons/icon-tools.js"},{"name":"icon-top","legacy":true,"path":"./icons/icon-top.js"},{"name":"icon-traffic-alt","legacy":true,"path":"./icons/icon-traffic-alt.js"},{"name":"icon-trafic","path":"./icons/icon-trafic.js"},{"name":"icon-train","path":"./icons/icon-train.js"},{"name":"icon-trash-alt-2","legacy":true,"path":"./icons/icon-trash-alt-2.js"},{"name":"icon-trash-alt","legacy":true,"path":"./icons/icon-trash-alt.js"},{"name":"icon-trash","path":"./icons/icon-trash.js"},{"name":"icon-tree","path":"./icons/icon-tree.js"},{"name":"icon-trophy","path":"./icons/icon-trophy.js"},{"name":"icon-truck","path":"./icons/icon-truck.js"},{"name":"icon-tv-old","path":"./icons/icon-tv-old.js"},{"name":"icon-tv","path":"./icons/icon-tv.js"},{"name":"icon-umb-content","legacy":true,"path":"./icons/icon-umb-content.js"},{"name":"icon-umb-developer","legacy":true,"path":"./icons/icon-umb-developer.js"},{"name":"icon-umb-media","legacy":true,"path":"./icons/icon-umb-media.js"},{"name":"icon-umb-settings","legacy":true,"path":"./icons/icon-umb-settings.js"},{"name":"icon-umb-users","legacy":true,"path":"./icons/icon-umb-users.js"},{"name":"icon-umbrella","path":"./icons/icon-umbrella.js"},{"name":"icon-undo","path":"./icons/icon-undo.js"},{"name":"icon-unlocked","path":"./icons/icon-unlocked.js"},{"name":"icon-untitled","legacy":true,"path":"./icons/icon-untitled.js"},{"name":"icon-usb-connector","legacy":true,"path":"./icons/icon-usb-connector.js"},{"name":"icon-usb","path":"./icons/icon-usb.js"},{"name":"icon-user-female","legacy":true,"path":"./icons/icon-user-female.js"},{"name":"icon-user-females-alt","legacy":true,"path":"./icons/icon-user-females-alt.js"},{"name":"icon-user-females","legacy":true,"path":"./icons/icon-user-females.js"},{"name":"icon-user-glasses","legacy":true,"path":"./icons/icon-user-glasses.js"},{"name":"icon-user","path":"./icons/icon-user.js"},{"name":"icon-users-alt","legacy":true,"path":"./icons/icon-users-alt.js"},{"name":"icon-users","path":"./icons/icon-users.js"},{"name":"icon-utilities","path":"./icons/icon-utilities.js"},{"name":"icon-vcard","path":"./icons/icon-vcard.js"},{"name":"icon-video","path":"./icons/icon-video.js"},{"name":"icon-voice","path":"./icons/icon-voice.js"},{"name":"icon-wall-plug","path":"./icons/icon-wall-plug.js"},{"name":"icon-wallet","path":"./icons/icon-wallet.js"},{"name":"icon-wand","path":"./icons/icon-wand.js"},{"name":"icon-webhook","path":"./icons/icon-webhook.js"},{"name":"icon-weight","path":"./icons/icon-weight.js"},{"name":"icon-width","path":"./icons/icon-width.js"},{"name":"icon-wifi","path":"./icons/icon-wifi.js"},{"name":"icon-window-popin","path":"./icons/icon-window-popin.js"},{"name":"icon-window-sizes","path":"./icons/icon-window-sizes.js"},{"name":"icon-wine-glass","path":"./icons/icon-wine-glass.js"},{"name":"icon-wrench","path":"./icons/icon-wrench.js"},{"name":"icon-wrong","path":"./icons/icon-wrong.js"},{"name":"icon-zip","path":"./icons/icon-zip.js"},{"name":"icon-zom-out","legacy":true,"path":"./icons/icon-zom-out.js"},{"name":"icon-zoom-in","path":"./icons/icon-zoom-in.js"},{"name":"icon-zoom-out","path":"./icons/icon-zoom-out.js"},{"name":"icon-star","path":"./icons/icon-star.js"},{"name":"icon-database","path":"./icons/icon-database.js"},{"name":"icon-umbraco","path":"./icons/icon-umbraco.js"},{"name":"icon-application-error","legacy":true,"path":"./icons/icon-application-error.js"},{"name":"icon-art-easel","legacy":true,"path":"./icons/icon-art-easel.js"},{"name":"icon-article","legacy":true,"path":"./icons/icon-article.js"},{"name":"icon-auction-hammer","legacy":true,"path":"./icons/icon-auction-hammer.js"},{"name":"icon-baby-stroller","legacy":true,"path":"./icons/icon-baby-stroller.js"},{"name":"icon-badge-count","legacy":true,"path":"./icons/icon-badge-count.js"},{"name":"icon-ball","legacy":true,"path":"./icons/icon-ball.js"},{"name":"icon-band-aid","legacy":true,"path":"./icons/icon-band-aid.js"},{"name":"icon-bill-dollar","legacy":true,"path":"./icons/icon-bill-dollar.js"},{"name":"icon-bill-euro","legacy":true,"path":"./icons/icon-bill-euro.js"},{"name":"icon-bill-pound","legacy":true,"path":"./icons/icon-bill-pound.js"},{"name":"icon-bill-yen","legacy":true,"path":"./icons/icon-bill-yen.js"},{"name":"icon-bill","legacy":true,"path":"./icons/icon-bill.js"},{"name":"icon-billboard","legacy":true,"path":"./icons/icon-billboard.js"},{"name":"icon-bills-dollar","legacy":true,"path":"./icons/icon-bills-dollar.js"},{"name":"icon-bills-euro","legacy":true,"path":"./icons/icon-bills-euro.js"},{"name":"icon-bills-pound","legacy":true,"path":"./icons/icon-bills-pound.js"},{"name":"icon-bills-yen","legacy":true,"path":"./icons/icon-bills-yen.js"},{"name":"icon-bills","legacy":true,"path":"./icons/icon-bills.js"},{"name":"icon-binoculars","legacy":true,"path":"./icons/icon-binoculars.js"},{"name":"icon-blueprint","legacy":true,"path":"./icons/icon-blueprint.js"},{"name":"icon-bomb","legacy":true,"path":"./icons/icon-bomb.js"},{"name":"icon-cash-register","legacy":true,"path":"./icons/icon-cash-register.js"},{"name":"icon-checkbox-dotted-active","legacy":true,"path":"./icons/icon-checkbox-dotted-active.js"},{"name":"icon-chess","legacy":true,"path":"./icons/icon-chess.js"},{"name":"icon-circus","legacy":true,"path":"./icons/icon-circus.js"},{"name":"icon-clothes-hanger","legacy":true,"path":"./icons/icon-clothes-hanger.js"},{"name":"icon-coin-dollar","legacy":true,"path":"./icons/icon-coin-dollar.js"},{"name":"icon-coin-pound","legacy":true,"path":"./icons/icon-coin-pound.js"},{"name":"icon-coin","legacy":true,"path":"./icons/icon-coin.js"},{"name":"icon-coins-dollar-alt","legacy":true,"path":"./icons/icon-coins-dollar-alt.js"},{"name":"icon-coins-dollar","legacy":true,"path":"./icons/icon-coins-dollar.js"},{"name":"icon-coins-euro-alt","legacy":true,"path":"./icons/icon-coins-euro-alt.js"},{"name":"icon-coins-euro","legacy":true,"path":"./icons/icon-coins-euro.js"},{"name":"icon-coins-pound-alt","legacy":true,"path":"./icons/icon-coins-pound-alt.js"},{"name":"icon-coins-pound","legacy":true,"path":"./icons/icon-coins-pound.js"},{"name":"icon-coins-yen-alt","legacy":true,"path":"./icons/icon-coins-yen-alt.js"},{"name":"icon-coins-yen","legacy":true,"path":"./icons/icon-coins-yen.js"},{"name":"icon-comb","legacy":true,"path":"./icons/icon-comb.js"},{"name":"icon-desk","legacy":true,"path":"./icons/icon-desk.js"},{"name":"icon-dollar-bag","legacy":true,"path":"./icons/icon-dollar-bag.js"},{"name":"icon-eject","legacy":true,"path":"./icons/icon-eject.js"},{"name":"icon-euro-bag","legacy":true,"path":"./icons/icon-euro-bag.js"},{"name":"icon-exit-fullscreen","legacy":true,"path":"./icons/icon-exit-fullscreen.js"},{"name":"icon-female-symbol","legacy":true,"path":"./icons/icon-female-symbol.js"},{"name":"icon-filter-arrows","legacy":true,"path":"./icons/icon-filter-arrows.js"},{"name":"icon-firewall","legacy":true,"path":"./icons/icon-firewall.js"},{"name":"icon-folder-open","legacy":true,"path":"./icons/icon-folder-open.js"},{"name":"icon-folder-outline","legacy":true,"path":"./icons/icon-folder-outline.js"},{"name":"icon-handprint","legacy":true,"path":"./icons/icon-handprint.js"},{"name":"icon-hat","legacy":true,"path":"./icons/icon-hat.js"},{"name":"icon-hd","legacy":true,"path":"./icons/icon-hd.js"},{"name":"icon-inactive-line","legacy":true,"path":"./icons/icon-inactive-line.js"},{"name":"icon-keychain","legacy":true,"path":"./icons/icon-keychain.js"},{"name":"icon-keyhole","legacy":true,"path":"./icons/icon-keyhole.js"},{"name":"icon-lightbulb-active","legacy":true,"path":"./icons/icon-lightbulb-active.js"},{"name":"icon-lightbulb","legacy":true,"path":"./icons/icon-lightbulb.js"},{"name":"icon-linux-tux","legacy":true,"path":"./icons/icon-linux-tux.js"},{"name":"icon-locate","legacy":true,"path":"./icons/icon-locate.js"},{"name":"icon-location-near-me","legacy":true,"path":"./icons/icon-location-near-me.js"},{"name":"icon-male-and-female","legacy":true,"path":"./icons/icon-male-and-female.js"},{"name":"icon-male-symbol","legacy":true,"path":"./icons/icon-male-symbol.js"},{"name":"icon-molecular-network","legacy":true,"path":"./icons/icon-molecular-network.js"},{"name":"icon-molecular","legacy":true,"path":"./icons/icon-molecular.js"},{"name":"icon-multiple-windows","legacy":true,"path":"./icons/icon-multiple-windows.js"},{"name":"icon-navigation-top","legacy":true,"path":"./icons/icon-navigation-top.js"},{"name":"icon-os-x","legacy":true,"path":"./icons/icon-os-x.js"},{"name":"icon-pants","legacy":true,"path":"./icons/icon-pants.js"},{"name":"icon-parachute-drop","legacy":true,"path":"./icons/icon-parachute-drop.js"},{"name":"icon-parental-control","legacy":true,"path":"./icons/icon-parental-control.js"},{"name":"icon-path","legacy":true,"path":"./icons/icon-path.js"},{"name":"icon-piracy","legacy":true,"path":"./icons/icon-piracy.js"},{"name":"icon-poker-chip","legacy":true,"path":"./icons/icon-poker-chip.js"},{"name":"icon-pound-bag","legacy":true,"path":"./icons/icon-pound-bag.js"},{"name":"icon-price-yen","legacy":true,"path":"./icons/icon-price-yen.js"},{"name":"icon-receipt-dollar","legacy":true,"path":"./icons/icon-receipt-dollar.js"},{"name":"icon-receipt-euro","legacy":true,"path":"./icons/icon-receipt-euro.js"},{"name":"icon-receipt-pound","legacy":true,"path":"./icons/icon-receipt-pound.js"},{"name":"icon-receipt-yen","legacy":true,"path":"./icons/icon-receipt-yen.js"},{"name":"icon-resize","legacy":true,"path":"./icons/icon-resize.js"},{"name":"icon-road","legacy":true,"path":"./icons/icon-road.js"},{"name":"icon-safe","legacy":true,"path":"./icons/icon-safe.js"},{"name":"icon-safedial","legacy":true,"path":"./icons/icon-safedial.js"},{"name":"icon-sandbox-toys","legacy":true,"path":"./icons/icon-sandbox-toys.js"},{"name":"icon-security-camera","legacy":true,"path":"./icons/icon-security-camera.js"},{"name":"icon-settings-alt-2","legacy":true,"path":"./icons/icon-settings-alt-2.js"},{"name":"icon-share-alt-2","legacy":true,"path":"./icons/icon-share-alt-2.js"},{"name":"icon-shorts","legacy":true,"path":"./icons/icon-shorts.js"},{"name":"icon-simcard","legacy":true,"path":"./icons/icon-simcard.js"},{"name":"icon-split-alt","legacy":true,"path":"./icons/icon-split-alt.js"},{"name":"icon-tab","legacy":true,"path":"./icons/icon-tab.js"},{"name":"icon-tactics","legacy":true,"path":"./icons/icon-tactics.js"},{"name":"icon-theif","legacy":true,"path":"./icons/icon-theif.js"},{"name":"icon-thought-bubble","legacy":true,"path":"./icons/icon-thought-bubble.js"},{"name":"icon-umb-contour","legacy":true,"path":"./icons/icon-umb-contour.js"},{"name":"icon-umb-deploy","legacy":true,"path":"./icons/icon-umb-deploy.js"},{"name":"icon-umb-members","legacy":true,"path":"./icons/icon-umb-members.js"},{"name":"icon-universal","legacy":true,"path":"./icons/icon-universal.js"},{"name":"icon-war","legacy":true,"path":"./icons/icon-war.js"},{"name":"icon-windows","legacy":true,"path":"./icons/icon-windows.js"},{"name":"icon-yen-bag","legacy":true,"path":"./icons/icon-yen-bag.js"}] \ No newline at end of file +[{"name":"icon-activity","path":"./icons/icon-activity.js"},{"name":"icon-add","path":"./icons/icon-add.js"},{"name":"icon-addressbook","path":"./icons/icon-addressbook.js"},{"name":"icon-alarm-clock","path":"./icons/icon-alarm-clock.js"},{"name":"icon-alert-alt","path":"./icons/icon-alert-alt.js"},{"name":"icon-alert","path":"./icons/icon-alert.js"},{"name":"icon-alt","path":"./icons/icon-alt.js"},{"name":"icon-anchor","path":"./icons/icon-anchor.js"},{"name":"icon-app","path":"./icons/icon-app.js"},{"name":"icon-application-window-alt","path":"./icons/icon-application-window-alt.js"},{"name":"icon-application-window","path":"./icons/icon-application-window.js"},{"name":"icon-arrivals","path":"./icons/icon-arrivals.js"},{"name":"icon-arrow-down","path":"./icons/icon-arrow-down.js"},{"name":"icon-arrow-left","path":"./icons/icon-arrow-left.js"},{"name":"icon-arrow-right","path":"./icons/icon-arrow-right.js"},{"name":"icon-arrow-up","path":"./icons/icon-arrow-up.js"},{"name":"icon-attachment","path":"./icons/icon-attachment.js"},{"name":"icon-autofill","path":"./icons/icon-autofill.js"},{"name":"icon-award","path":"./icons/icon-award.js"},{"name":"icon-axis-rotation-2","path":"./icons/icon-axis-rotation-2.js"},{"name":"icon-axis-rotation-3","path":"./icons/icon-axis-rotation-3.js"},{"name":"icon-axis-rotation","path":"./icons/icon-axis-rotation.js"},{"name":"icon-backspace","path":"./icons/icon-backspace.js"},{"name":"icon-badge-add","path":"./icons/icon-badge-add.js"},{"name":"icon-badge-remove","path":"./icons/icon-badge-remove.js"},{"name":"icon-badge-restricted","legacy":true,"path":"./icons/icon-badge-restricted.js"},{"name":"icon-bar-chart","path":"./icons/icon-bar-chart.js"},{"name":"icon-barcode","path":"./icons/icon-barcode.js"},{"name":"icon-bars","path":"./icons/icon-bars.js"},{"name":"icon-battery-full","path":"./icons/icon-battery-full.js"},{"name":"icon-battery-low","path":"./icons/icon-battery-low.js"},{"name":"icon-beer-glass","path":"./icons/icon-beer-glass.js"},{"name":"icon-bell-off","path":"./icons/icon-bell-off.js"},{"name":"icon-bell","path":"./icons/icon-bell.js"},{"name":"icon-binarycode","path":"./icons/icon-binarycode.js"},{"name":"icon-bird","path":"./icons/icon-bird.js"},{"name":"icon-birthday-cake","path":"./icons/icon-birthday-cake.js"},{"name":"icon-block","path":"./icons/icon-block.js"},{"name":"icon-bluetooth","path":"./icons/icon-bluetooth.js"},{"name":"icon-boat-shipping","path":"./icons/icon-boat-shipping.js"},{"name":"icon-bones","path":"./icons/icon-bones.js"},{"name":"icon-book-alt-2","path":"./icons/icon-book-alt-2.js"},{"name":"icon-book-alt","path":"./icons/icon-book-alt.js"},{"name":"icon-book","path":"./icons/icon-book.js"},{"name":"icon-bookmark","path":"./icons/icon-bookmark.js"},{"name":"icon-books","path":"./icons/icon-books.js"},{"name":"icon-box-alt","path":"./icons/icon-box-alt.js"},{"name":"icon-box-open","path":"./icons/icon-box-open.js"},{"name":"icon-box","path":"./icons/icon-box.js"},{"name":"icon-brackets","path":"./icons/icon-brackets.js"},{"name":"icon-brick","path":"./icons/icon-brick.js"},{"name":"icon-briefcase","path":"./icons/icon-briefcase.js"},{"name":"icon-browser-window","path":"./icons/icon-browser-window.js"},{"name":"icon-brush-alt-2","path":"./icons/icon-brush-alt-2.js"},{"name":"icon-brush-alt","path":"./icons/icon-brush-alt.js"},{"name":"icon-brush","path":"./icons/icon-brush.js"},{"name":"icon-bug","path":"./icons/icon-bug.js"},{"name":"icon-bulleted-list","path":"./icons/icon-bulleted-list.js"},{"name":"icon-burn","path":"./icons/icon-burn.js"},{"name":"icon-bus","path":"./icons/icon-bus.js"},{"name":"icon-calculator","path":"./icons/icon-calculator.js"},{"name":"icon-calendar-alt","path":"./icons/icon-calendar-alt.js"},{"name":"icon-calendar","path":"./icons/icon-calendar.js"},{"name":"icon-camcorder","legacy":true,"path":"./icons/icon-camcorder.js"},{"name":"icon-camera-roll","path":"./icons/icon-camera-roll.js"},{"name":"icon-candy","path":"./icons/icon-candy.js"},{"name":"icon-caps-lock","path":"./icons/icon-caps-lock.js"},{"name":"icon-car","path":"./icons/icon-car.js"},{"name":"icon-categories","path":"./icons/icon-categories.js"},{"name":"icon-certificate","path":"./icons/icon-certificate.js"},{"name":"icon-chart-curve","path":"./icons/icon-chart-curve.js"},{"name":"icon-chart","path":"./icons/icon-chart.js"},{"name":"icon-chat-active","legacy":true,"path":"./icons/icon-chat-active.js"},{"name":"icon-chat","path":"./icons/icon-chat.js"},{"name":"icon-check","path":"./icons/icon-check.js"},{"name":"icon-checkbox-dotted","path":"./icons/icon-checkbox-dotted.js"},{"name":"icon-checkbox-empty","legacy":true,"path":"./icons/icon-checkbox-empty.js"},{"name":"icon-checkbox","path":"./icons/icon-checkbox.js"},{"name":"icon-chip-alt","legacy":true,"path":"./icons/icon-chip-alt.js"},{"name":"icon-chip","path":"./icons/icon-chip.js"},{"name":"icon-cinema","path":"./icons/icon-cinema.js"},{"name":"icon-circle-dotted-active","path":"./icons/icon-circle-dotted-active.js"},{"name":"icon-circle-dotted","path":"./icons/icon-circle-dotted.js"},{"name":"icon-circuits","path":"./icons/icon-circuits.js"},{"name":"icon-client","legacy":true,"path":"./icons/icon-client.js"},{"name":"icon-cloud-drive","path":"./icons/icon-cloud-drive.js"},{"name":"icon-cloud-upload","path":"./icons/icon-cloud-upload.js"},{"name":"icon-cloud","path":"./icons/icon-cloud.js"},{"name":"icon-cloudy","path":"./icons/icon-cloudy.js"},{"name":"icon-clubs","path":"./icons/icon-clubs.js"},{"name":"icon-cocktail","path":"./icons/icon-cocktail.js"},{"name":"icon-code","path":"./icons/icon-code.js"},{"name":"icon-coffee","path":"./icons/icon-coffee.js"},{"name":"icon-coin-euro","path":"./icons/icon-coin-euro.js"},{"name":"icon-coin-yen","path":"./icons/icon-coin-yen.js"},{"name":"icon-coins-alt","legacy":true,"path":"./icons/icon-coins-alt.js"},{"name":"icon-coins","path":"./icons/icon-coins.js"},{"name":"icon-color-bucket","path":"./icons/icon-color-bucket.js"},{"name":"icon-colorpicker","path":"./icons/icon-colorpicker.js"},{"name":"icon-columns","path":"./icons/icon-columns.js"},{"name":"icon-combination-lock-open","path":"./icons/icon-combination-lock-open.js"},{"name":"icon-combination-lock","path":"./icons/icon-combination-lock.js"},{"name":"icon-command","path":"./icons/icon-command.js"},{"name":"icon-company","path":"./icons/icon-company.js"},{"name":"icon-compress","path":"./icons/icon-compress.js"},{"name":"icon-connection","path":"./icons/icon-connection.js"},{"name":"icon-console","path":"./icons/icon-console.js"},{"name":"icon-contrast","path":"./icons/icon-contrast.js"},{"name":"icon-conversation-alt","path":"./icons/icon-conversation-alt.js"},{"name":"icon-conversation","legacy":true,"path":"./icons/icon-conversation.js"},{"name":"icon-coverflow","path":"./icons/icon-coverflow.js"},{"name":"icon-credit-card-alt","legacy":true,"path":"./icons/icon-credit-card-alt.js"},{"name":"icon-credit-card","path":"./icons/icon-credit-card.js"},{"name":"icon-crop","path":"./icons/icon-crop.js"},{"name":"icon-crosshair","path":"./icons/icon-crosshair.js"},{"name":"icon-crown-alt","legacy":true,"path":"./icons/icon-crown-alt.js"},{"name":"icon-crown","path":"./icons/icon-crown.js"},{"name":"icon-cupcake","legacy":true,"path":"./icons/icon-cupcake.js"},{"name":"icon-curve","path":"./icons/icon-curve.js"},{"name":"icon-cut","path":"./icons/icon-cut.js"},{"name":"icon-dashboard","path":"./icons/icon-dashboard.js"},{"name":"icon-defrag","path":"./icons/icon-defrag.js"},{"name":"icon-delete-key","path":"./icons/icon-delete-key.js"},{"name":"icon-delete","path":"./icons/icon-delete.js"},{"name":"icon-departure","path":"./icons/icon-departure.js"},{"name":"icon-desktop","legacy":true,"path":"./icons/icon-desktop.js"},{"name":"icon-diagnostics","path":"./icons/icon-diagnostics.js"},{"name":"icon-diagonal-arrow-alt","path":"./icons/icon-diagonal-arrow-alt.js"},{"name":"icon-diagonal-arrow","path":"./icons/icon-diagonal-arrow.js"},{"name":"icon-diamond","path":"./icons/icon-diamond.js"},{"name":"icon-diamonds","path":"./icons/icon-diamonds.js"},{"name":"icon-dice","path":"./icons/icon-dice.js"},{"name":"icon-diploma-alt","legacy":true,"path":"./icons/icon-diploma-alt.js"},{"name":"icon-diploma","path":"./icons/icon-diploma.js"},{"name":"icon-directions-alt","path":"./icons/icon-directions-alt.js"},{"name":"icon-directions","path":"./icons/icon-directions.js"},{"name":"icon-disc","path":"./icons/icon-disc.js"},{"name":"icon-disk-image","path":"./icons/icon-disk-image.js"},{"name":"icon-display","path":"./icons/icon-display.js"},{"name":"icon-dna","path":"./icons/icon-dna.js"},{"name":"icon-dock-connector","path":"./icons/icon-dock-connector.js"},{"name":"icon-document-dashed-line","path":"./icons/icon-document-dashed-line.js"},{"name":"icon-document","path":"./icons/icon-document.js"},{"name":"icon-documents","path":"./icons/icon-documents.js"},{"name":"icon-donate","legacy":true,"path":"./icons/icon-donate.js"},{"name":"icon-door-open-alt","legacy":true,"path":"./icons/icon-door-open-alt.js"},{"name":"icon-door-open","path":"./icons/icon-door-open.js"},{"name":"icon-download-alt","path":"./icons/icon-download-alt.js"},{"name":"icon-download","path":"./icons/icon-download.js"},{"name":"icon-drop","path":"./icons/icon-drop.js"},{"name":"icon-eco","path":"./icons/icon-eco.js"},{"name":"icon-economy","legacy":true,"path":"./icons/icon-economy.js"},{"name":"icon-edit","path":"./icons/icon-edit.js"},{"name":"icon-employee","legacy":true,"path":"./icons/icon-employee.js"},{"name":"icon-energy-saving-bulb","path":"./icons/icon-energy-saving-bulb.js"},{"name":"icon-enter","path":"./icons/icon-enter.js"},{"name":"icon-equalizer","path":"./icons/icon-equalizer.js"},{"name":"icon-escape","path":"./icons/icon-escape.js"},{"name":"icon-ethernet","path":"./icons/icon-ethernet.js"},{"name":"icon-eye","path":"./icons/icon-eye.js"},{"name":"icon-facebook-like","path":"./icons/icon-facebook-like.js"},{"name":"icon-factory","path":"./icons/icon-factory.js"},{"name":"icon-favorite","path":"./icons/icon-favorite.js"},{"name":"icon-file-cabinet","path":"./icons/icon-file-cabinet.js"},{"name":"icon-files","path":"./icons/icon-files.js"},{"name":"icon-filter","path":"./icons/icon-filter.js"},{"name":"icon-fingerprint","path":"./icons/icon-fingerprint.js"},{"name":"icon-fire","path":"./icons/icon-fire.js"},{"name":"icon-firewire","legacy":true,"path":"./icons/icon-firewire.js"},{"name":"icon-flag-alt","path":"./icons/icon-flag-alt.js"},{"name":"icon-flag","path":"./icons/icon-flag.js"},{"name":"icon-flash","path":"./icons/icon-flash.js"},{"name":"icon-flashlight","path":"./icons/icon-flashlight.js"},{"name":"icon-flowerpot","path":"./icons/icon-flowerpot.js"},{"name":"icon-folder","path":"./icons/icon-folder.js"},{"name":"icon-folders","path":"./icons/icon-folders.js"},{"name":"icon-font","path":"./icons/icon-font.js"},{"name":"icon-food","path":"./icons/icon-food.js"},{"name":"icon-footprints","path":"./icons/icon-footprints.js"},{"name":"icon-forking","path":"./icons/icon-forking.js"},{"name":"icon-frame-alt","legacy":true,"path":"./icons/icon-frame-alt.js"},{"name":"icon-frame","path":"./icons/icon-frame.js"},{"name":"icon-fullscreen-alt","path":"./icons/icon-fullscreen-alt.js"},{"name":"icon-fullscreen","path":"./icons/icon-fullscreen.js"},{"name":"icon-game","path":"./icons/icon-game.js"},{"name":"icon-geometry","legacy":true,"path":"./icons/icon-geometry.js"},{"name":"icon-gift","path":"./icons/icon-gift.js"},{"name":"icon-glasses","path":"./icons/icon-glasses.js"},{"name":"icon-globe-alt","path":"./icons/icon-globe-alt.js"},{"name":"icon-globe-asia","legacy":true,"path":"./icons/icon-globe-asia.js"},{"name":"icon-globe-europe-africa","legacy":true,"path":"./icons/icon-globe-europe-africa.js"},{"name":"icon-globe-inverted-america","legacy":true,"path":"./icons/icon-globe-inverted-america.js"},{"name":"icon-globe-inverted-asia","legacy":true,"path":"./icons/icon-globe-inverted-asia.js"},{"name":"icon-globe-inverted-europe-africa","legacy":true,"path":"./icons/icon-globe-inverted-europe-africa.js"},{"name":"icon-globe","path":"./icons/icon-globe.js"},{"name":"icon-gps","path":"./icons/icon-gps.js"},{"name":"icon-graduate","path":"./icons/icon-graduate.js"},{"name":"icon-grid","path":"./icons/icon-grid.js"},{"name":"icon-hammer","path":"./icons/icon-hammer.js"},{"name":"icon-hand-active-alt","legacy":true,"path":"./icons/icon-hand-active-alt.js"},{"name":"icon-hand-active","path":"./icons/icon-hand-active.js"},{"name":"icon-hand-pointer-alt","legacy":true,"path":"./icons/icon-hand-pointer-alt.js"},{"name":"icon-hand-pointer","path":"./icons/icon-hand-pointer.js"},{"name":"icon-handshake","path":"./icons/icon-handshake.js"},{"name":"icon-handtool-alt","legacy":true,"path":"./icons/icon-handtool-alt.js"},{"name":"icon-handtool","path":"./icons/icon-handtool.js"},{"name":"icon-hard-drive-alt","legacy":true,"path":"./icons/icon-hard-drive-alt.js"},{"name":"icon-hard-drive","legacy":true,"path":"./icons/icon-hard-drive.js"},{"name":"icon-headphones","path":"./icons/icon-headphones.js"},{"name":"icon-headset","legacy":true,"path":"./icons/icon-headset.js"},{"name":"icon-hearts","path":"./icons/icon-hearts.js"},{"name":"icon-height","path":"./icons/icon-height.js"},{"name":"icon-help-alt","path":"./icons/icon-help-alt.js"},{"name":"icon-help","path":"./icons/icon-help.js"},{"name":"icon-home","path":"./icons/icon-home.js"},{"name":"icon-hourglass","path":"./icons/icon-hourglass.js"},{"name":"icon-imac","legacy":true,"path":"./icons/icon-imac.js"},{"name":"icon-inbox-full","legacy":true,"path":"./icons/icon-inbox-full.js"},{"name":"icon-inbox","path":"./icons/icon-inbox.js"},{"name":"icon-indent","path":"./icons/icon-indent.js"},{"name":"icon-infinity","path":"./icons/icon-infinity.js"},{"name":"icon-info","path":"./icons/icon-info.js"},{"name":"icon-invoice","legacy":true,"path":"./icons/icon-invoice.js"},{"name":"icon-ipad","legacy":true,"path":"./icons/icon-ipad.js"},{"name":"icon-iphone","legacy":true,"path":"./icons/icon-iphone.js"},{"name":"icon-item-arrangement","legacy":true,"path":"./icons/icon-item-arrangement.js"},{"name":"icon-junk","path":"./icons/icon-junk.js"},{"name":"icon-key","path":"./icons/icon-key.js"},{"name":"icon-keyboard","path":"./icons/icon-keyboard.js"},{"name":"icon-lab","path":"./icons/icon-lab.js"},{"name":"icon-laptop","path":"./icons/icon-laptop.js"},{"name":"icon-layers-alt","legacy":true,"path":"./icons/icon-layers-alt.js"},{"name":"icon-layers","path":"./icons/icon-layers.js"},{"name":"icon-layout","path":"./icons/icon-layout.js"},{"name":"icon-left-double-arrow","path":"./icons/icon-left-double-arrow.js"},{"name":"icon-legal","path":"./icons/icon-legal.js"},{"name":"icon-lense","legacy":true,"path":"./icons/icon-lense.js"},{"name":"icon-library","path":"./icons/icon-library.js"},{"name":"icon-light-down","path":"./icons/icon-light-down.js"},{"name":"icon-light-up","path":"./icons/icon-light-up.js"},{"name":"icon-lightning","path":"./icons/icon-lightning.js"},{"name":"icon-link","path":"./icons/icon-link.js"},{"name":"icon-list","path":"./icons/icon-list.js"},{"name":"icon-load","legacy":true,"path":"./icons/icon-load.js"},{"name":"icon-loading","legacy":true,"path":"./icons/icon-loading.js"},{"name":"icon-location-nearby","path":"./icons/icon-location-nearby.js"},{"name":"icon-lock","path":"./icons/icon-lock.js"},{"name":"icon-log-out","path":"./icons/icon-log-out.js"},{"name":"icon-logout","legacy":true,"path":"./icons/icon-logout.js"},{"name":"icon-loupe","legacy":true,"path":"./icons/icon-loupe.js"},{"name":"icon-magnet","path":"./icons/icon-magnet.js"},{"name":"icon-mailbox","path":"./icons/icon-mailbox.js"},{"name":"icon-map-alt","path":"./icons/icon-map-alt.js"},{"name":"icon-map-location","legacy":true,"path":"./icons/icon-map-location.js"},{"name":"icon-map-marker","path":"./icons/icon-map-marker.js"},{"name":"icon-map","path":"./icons/icon-map.js"},{"name":"icon-medal","path":"./icons/icon-medal.js"},{"name":"icon-medical-emergency","path":"./icons/icon-medical-emergency.js"},{"name":"icon-medicine","path":"./icons/icon-medicine.js"},{"name":"icon-meeting","legacy":true,"path":"./icons/icon-meeting.js"},{"name":"icon-megaphone","path":"./icons/icon-megaphone.js"},{"name":"icon-merge","path":"./icons/icon-merge.js"},{"name":"icon-message-open","path":"./icons/icon-message-open.js"},{"name":"icon-message-unopened","legacy":true,"path":"./icons/icon-message-unopened.js"},{"name":"icon-message","path":"./icons/icon-message.js"},{"name":"icon-microscope","path":"./icons/icon-microscope.js"},{"name":"icon-mindmap","legacy":true,"path":"./icons/icon-mindmap.js"},{"name":"icon-mobile","path":"./icons/icon-mobile.js"},{"name":"icon-mountain","path":"./icons/icon-mountain.js"},{"name":"icon-mouse-cursor","path":"./icons/icon-mouse-cursor.js"},{"name":"icon-mouse","path":"./icons/icon-mouse.js"},{"name":"icon-movie-alt","path":"./icons/icon-movie-alt.js"},{"name":"icon-movie","path":"./icons/icon-movie.js"},{"name":"icon-multiple-credit-cards","path":"./icons/icon-multiple-credit-cards.js"},{"name":"icon-music","path":"./icons/icon-music.js"},{"name":"icon-name-badge","legacy":true,"path":"./icons/icon-name-badge.js"},{"name":"icon-navigation-bottom","legacy":true,"path":"./icons/icon-navigation-bottom.js"},{"name":"icon-navigation-down","legacy":true,"path":"./icons/icon-navigation-down.js"},{"name":"icon-navigation-first","legacy":true,"path":"./icons/icon-navigation-first.js"},{"name":"icon-navigation-horizontal","legacy":true,"path":"./icons/icon-navigation-horizontal.js"},{"name":"icon-navigation-last","legacy":true,"path":"./icons/icon-navigation-last.js"},{"name":"icon-navigation-left","legacy":true,"path":"./icons/icon-navigation-left.js"},{"name":"icon-navigation-right","legacy":true,"path":"./icons/icon-navigation-right.js"},{"name":"icon-navigation-road","legacy":true,"path":"./icons/icon-navigation-road.js"},{"name":"icon-navigation-up","legacy":true,"path":"./icons/icon-navigation-up.js"},{"name":"icon-navigation-vertical","legacy":true,"path":"./icons/icon-navigation-vertical.js"},{"name":"icon-navigation","legacy":true,"path":"./icons/icon-navigation.js"},{"name":"icon-navigational-arrow","path":"./icons/icon-navigational-arrow.js"},{"name":"icon-network-alt","path":"./icons/icon-network-alt.js"},{"name":"icon-newspaper-alt","legacy":true,"path":"./icons/icon-newspaper-alt.js"},{"name":"icon-newspaper","path":"./icons/icon-newspaper.js"},{"name":"icon-next-media","legacy":true,"path":"./icons/icon-next-media.js"},{"name":"icon-next","legacy":true,"path":"./icons/icon-next.js"},{"name":"icon-nodes","legacy":true,"path":"./icons/icon-nodes.js"},{"name":"icon-notepad-alt","legacy":true,"path":"./icons/icon-notepad-alt.js"},{"name":"icon-notepad","path":"./icons/icon-notepad.js"},{"name":"icon-old-key","path":"./icons/icon-old-key.js"},{"name":"icon-old-phone","legacy":true,"path":"./icons/icon-old-phone.js"},{"name":"icon-operator","path":"./icons/icon-operator.js"},{"name":"icon-ordered-list","path":"./icons/icon-ordered-list.js"},{"name":"icon-out","path":"./icons/icon-out.js"},{"name":"icon-outbox","legacy":true,"path":"./icons/icon-outbox.js"},{"name":"icon-outdent","path":"./icons/icon-outdent.js"},{"name":"icon-page-add","path":"./icons/icon-page-add.js"},{"name":"icon-page-down","path":"./icons/icon-page-down.js"},{"name":"icon-page-remove","path":"./icons/icon-page-remove.js"},{"name":"icon-page-restricted","path":"./icons/icon-page-restricted.js"},{"name":"icon-page-up","path":"./icons/icon-page-up.js"},{"name":"icon-paint-roller","legacy":true,"path":"./icons/icon-paint-roller.js"},{"name":"icon-palette","path":"./icons/icon-palette.js"},{"name":"icon-panel-show","path":"./icons/icon-panel-show.js"},{"name":"icon-pannel-close","path":"./icons/icon-pannel-close.js"},{"name":"icon-paper-bag","legacy":true,"path":"./icons/icon-paper-bag.js"},{"name":"icon-paper-plane-alt","path":"./icons/icon-paper-plane-alt.js"},{"name":"icon-paper-plane","path":"./icons/icon-paper-plane.js"},{"name":"icon-partly-cloudy","path":"./icons/icon-partly-cloudy.js"},{"name":"icon-paste-in","legacy":true,"path":"./icons/icon-paste-in.js"},{"name":"icon-pause","path":"./icons/icon-pause.js"},{"name":"icon-pc","legacy":true,"path":"./icons/icon-pc.js"},{"name":"icon-people-alt-2","legacy":true,"path":"./icons/icon-people-alt-2.js"},{"name":"icon-people-alt","legacy":true,"path":"./icons/icon-people-alt.js"},{"name":"icon-people-female","legacy":true,"path":"./icons/icon-people-female.js"},{"name":"icon-people","path":"./icons/icon-people.js"},{"name":"icon-phone-ring","path":"./icons/icon-phone-ring.js"},{"name":"icon-phone","path":"./icons/icon-phone.js"},{"name":"icon-photo-album","path":"./icons/icon-photo-album.js"},{"name":"icon-picture","path":"./icons/icon-picture.js"},{"name":"icon-pictures-alt-2","path":"./icons/icon-pictures-alt-2.js"},{"name":"icon-pictures-alt","legacy":true,"path":"./icons/icon-pictures-alt.js"},{"name":"icon-pictures","path":"./icons/icon-pictures.js"},{"name":"icon-pie-chart","path":"./icons/icon-pie-chart.js"},{"name":"icon-piggy-bank","path":"./icons/icon-piggy-bank.js"},{"name":"icon-pin-location","path":"./icons/icon-pin-location.js"},{"name":"icon-plane","path":"./icons/icon-plane.js"},{"name":"icon-planet","legacy":true,"path":"./icons/icon-planet.js"},{"name":"icon-play","path":"./icons/icon-play.js"},{"name":"icon-playing-cards","legacy":true,"path":"./icons/icon-playing-cards.js"},{"name":"icon-playlist","path":"./icons/icon-playlist.js"},{"name":"icon-plugin","path":"./icons/icon-plugin.js"},{"name":"icon-podcast","path":"./icons/icon-podcast.js"},{"name":"icon-poll","legacy":true,"path":"./icons/icon-poll.js"},{"name":"icon-post-it","path":"./icons/icon-post-it.js"},{"name":"icon-power-outlet","legacy":true,"path":"./icons/icon-power-outlet.js"},{"name":"icon-power","path":"./icons/icon-power.js"},{"name":"icon-presentation","path":"./icons/icon-presentation.js"},{"name":"icon-previous-media","path":"./icons/icon-previous-media.js"},{"name":"icon-previous","path":"./icons/icon-previous.js"},{"name":"icon-price-dollar","legacy":true,"path":"./icons/icon-price-dollar.js"},{"name":"icon-price-euro","legacy":true,"path":"./icons/icon-price-euro.js"},{"name":"icon-price-pound","legacy":true,"path":"./icons/icon-price-pound.js"},{"name":"icon-print","path":"./icons/icon-print.js"},{"name":"icon-printer-alt","legacy":true,"path":"./icons/icon-printer-alt.js"},{"name":"icon-projector","path":"./icons/icon-projector.js"},{"name":"icon-pulse","path":"./icons/icon-pulse.js"},{"name":"icon-pushpin","path":"./icons/icon-pushpin.js"},{"name":"icon-qr-code","path":"./icons/icon-qr-code.js"},{"name":"icon-quote","path":"./icons/icon-quote.js"},{"name":"icon-radio-alt","path":"./icons/icon-radio-alt.js"},{"name":"icon-radio-receiver","path":"./icons/icon-radio-receiver.js"},{"name":"icon-radio","path":"./icons/icon-radio.js"},{"name":"icon-rain","path":"./icons/icon-rain.js"},{"name":"icon-rate","legacy":true,"path":"./icons/icon-rate.js"},{"name":"icon-re-post","path":"./icons/icon-re-post.js"},{"name":"icon-readonly","legacy":true,"path":"./icons/icon-readonly.js"},{"name":"icon-receipt-alt","path":"./icons/icon-receipt-alt.js"},{"name":"icon-reception","path":"./icons/icon-reception.js"},{"name":"icon-record","legacy":true,"path":"./icons/icon-record.js"},{"name":"icon-redo","path":"./icons/icon-redo.js"},{"name":"icon-refresh","path":"./icons/icon-refresh.js"},{"name":"icon-remote","legacy":true,"path":"./icons/icon-remote.js"},{"name":"icon-remove","path":"./icons/icon-remove.js"},{"name":"icon-repeat-one","path":"./icons/icon-repeat-one.js"},{"name":"icon-repeat","path":"./icons/icon-repeat.js"},{"name":"icon-reply-arrow","path":"./icons/icon-reply-arrow.js"},{"name":"icon-return-to-top","legacy":true,"path":"./icons/icon-return-to-top.js"},{"name":"icon-right-double-arrow","legacy":true,"path":"./icons/icon-right-double-arrow.js"},{"name":"icon-roadsign","legacy":true,"path":"./icons/icon-roadsign.js"},{"name":"icon-rocket","path":"./icons/icon-rocket.js"},{"name":"icon-rss","path":"./icons/icon-rss.js"},{"name":"icon-ruler-alt","path":"./icons/icon-ruler-alt.js"},{"name":"icon-ruler","path":"./icons/icon-ruler.js"},{"name":"icon-satellite-dish","path":"./icons/icon-satellite-dish.js"},{"name":"icon-save","path":"./icons/icon-save.js"},{"name":"icon-scan","path":"./icons/icon-scan.js"},{"name":"icon-school","path":"./icons/icon-school.js"},{"name":"icon-screensharing","path":"./icons/icon-screensharing.js"},{"name":"icon-script-alt","legacy":true,"path":"./icons/icon-script-alt.js"},{"name":"icon-script","path":"./icons/icon-script.js"},{"name":"icon-scull","path":"./icons/icon-scull.js"},{"name":"icon-search","path":"./icons/icon-search.js"},{"name":"icon-sensor","path":"./icons/icon-sensor.js"},{"name":"icon-server-alt","legacy":true,"path":"./icons/icon-server-alt.js"},{"name":"icon-server","path":"./icons/icon-server.js"},{"name":"icon-settings-alt","legacy":true,"path":"./icons/icon-settings-alt.js"},{"name":"icon-settings","path":"./icons/icon-settings.js"},{"name":"icon-share-alt","path":"./icons/icon-share-alt.js"},{"name":"icon-share","path":"./icons/icon-share.js"},{"name":"icon-sharing-iphone","path":"./icons/icon-sharing-iphone.js"},{"name":"icon-shield","path":"./icons/icon-shield.js"},{"name":"icon-shift","path":"./icons/icon-shift.js"},{"name":"icon-shipping-box","path":"./icons/icon-shipping-box.js"},{"name":"icon-shipping","path":"./icons/icon-shipping.js"},{"name":"icon-shoe","path":"./icons/icon-shoe.js"},{"name":"icon-shopping-basket-alt-2","legacy":true,"path":"./icons/icon-shopping-basket-alt-2.js"},{"name":"icon-shopping-basket-alt","path":"./icons/icon-shopping-basket-alt.js"},{"name":"icon-shopping-basket","path":"./icons/icon-shopping-basket.js"},{"name":"icon-shuffle","path":"./icons/icon-shuffle.js"},{"name":"icon-sience","path":"./icons/icon-sience.js"},{"name":"icon-single-note","path":"./icons/icon-single-note.js"},{"name":"icon-sitemap","legacy":true,"path":"./icons/icon-sitemap.js"},{"name":"icon-sleep","path":"./icons/icon-sleep.js"},{"name":"icon-slideshow","legacy":true,"path":"./icons/icon-slideshow.js"},{"name":"icon-smiley-inverted","legacy":true,"path":"./icons/icon-smiley-inverted.js"},{"name":"icon-smiley","path":"./icons/icon-smiley.js"},{"name":"icon-snow","path":"./icons/icon-snow.js"},{"name":"icon-sound-low","path":"./icons/icon-sound-low.js"},{"name":"icon-sound-medium","legacy":true,"path":"./icons/icon-sound-medium.js"},{"name":"icon-sound-off","path":"./icons/icon-sound-off.js"},{"name":"icon-sound-waves","path":"./icons/icon-sound-waves.js"},{"name":"icon-sound","path":"./icons/icon-sound.js"},{"name":"icon-spades","path":"./icons/icon-spades.js"},{"name":"icon-speaker","path":"./icons/icon-speaker.js"},{"name":"icon-speed-gauge","path":"./icons/icon-speed-gauge.js"},{"name":"icon-split","path":"./icons/icon-split.js"},{"name":"icon-sprout","path":"./icons/icon-sprout.js"},{"name":"icon-squiggly-line","legacy":true,"path":"./icons/icon-squiggly-line.js"},{"name":"icon-ssd","legacy":true,"path":"./icons/icon-ssd.js"},{"name":"icon-stacked-disks","legacy":true,"path":"./icons/icon-stacked-disks.js"},{"name":"icon-stamp","legacy":true,"path":"./icons/icon-stamp.js"},{"name":"icon-stop-alt","path":"./icons/icon-stop-alt.js"},{"name":"icon-stop-hand","legacy":true,"path":"./icons/icon-stop-hand.js"},{"name":"icon-stop","path":"./icons/icon-stop.js"},{"name":"icon-store","path":"./icons/icon-store.js"},{"name":"icon-stream","legacy":true,"path":"./icons/icon-stream.js"},{"name":"icon-sunny","path":"./icons/icon-sunny.js"},{"name":"icon-sweatshirt","legacy":true,"path":"./icons/icon-sweatshirt.js"},{"name":"icon-sync","path":"./icons/icon-sync.js"},{"name":"icon-t-shirt","path":"./icons/icon-t-shirt.js"},{"name":"icon-tab-key","path":"./icons/icon-tab-key.js"},{"name":"icon-tag","path":"./icons/icon-tag.js"},{"name":"icon-tags","path":"./icons/icon-tags.js"},{"name":"icon-takeaway-cup","legacy":true,"path":"./icons/icon-takeaway-cup.js"},{"name":"icon-target","path":"./icons/icon-target.js"},{"name":"icon-temperatrure-alt","path":"./icons/icon-temperatrure-alt.js"},{"name":"icon-temperature","path":"./icons/icon-temperature.js"},{"name":"icon-terminal","path":"./icons/icon-terminal.js"},{"name":"icon-theater","path":"./icons/icon-theater.js"},{"name":"icon-thumb-down","path":"./icons/icon-thumb-down.js"},{"name":"icon-thumb-up","path":"./icons/icon-thumb-up.js"},{"name":"icon-thumbnail-list","path":"./icons/icon-thumbnail-list.js"},{"name":"icon-thumbnails-small","path":"./icons/icon-thumbnails-small.js"},{"name":"icon-thumbnails","path":"./icons/icon-thumbnails.js"},{"name":"icon-ticket","path":"./icons/icon-ticket.js"},{"name":"icon-time","path":"./icons/icon-time.js"},{"name":"icon-timer","path":"./icons/icon-timer.js"},{"name":"icon-tools","legacy":true,"path":"./icons/icon-tools.js"},{"name":"icon-top","legacy":true,"path":"./icons/icon-top.js"},{"name":"icon-traffic-alt","legacy":true,"path":"./icons/icon-traffic-alt.js"},{"name":"icon-trafic","path":"./icons/icon-trafic.js"},{"name":"icon-train","path":"./icons/icon-train.js"},{"name":"icon-trash-alt-2","legacy":true,"path":"./icons/icon-trash-alt-2.js"},{"name":"icon-trash-alt","legacy":true,"path":"./icons/icon-trash-alt.js"},{"name":"icon-trash","path":"./icons/icon-trash.js"},{"name":"icon-tree","path":"./icons/icon-tree.js"},{"name":"icon-trophy","path":"./icons/icon-trophy.js"},{"name":"icon-truck","path":"./icons/icon-truck.js"},{"name":"icon-tv-old","path":"./icons/icon-tv-old.js"},{"name":"icon-tv","path":"./icons/icon-tv.js"},{"name":"icon-umb-content","legacy":true,"path":"./icons/icon-umb-content.js"},{"name":"icon-umb-developer","legacy":true,"path":"./icons/icon-umb-developer.js"},{"name":"icon-umb-media","legacy":true,"path":"./icons/icon-umb-media.js"},{"name":"icon-umb-settings","legacy":true,"path":"./icons/icon-umb-settings.js"},{"name":"icon-umb-users","legacy":true,"path":"./icons/icon-umb-users.js"},{"name":"icon-umbrella","path":"./icons/icon-umbrella.js"},{"name":"icon-undo","path":"./icons/icon-undo.js"},{"name":"icon-unlocked","path":"./icons/icon-unlocked.js"},{"name":"icon-untitled","legacy":true,"path":"./icons/icon-untitled.js"},{"name":"icon-usb-connector","legacy":true,"path":"./icons/icon-usb-connector.js"},{"name":"icon-usb","path":"./icons/icon-usb.js"},{"name":"icon-user-female","legacy":true,"path":"./icons/icon-user-female.js"},{"name":"icon-user-females-alt","legacy":true,"path":"./icons/icon-user-females-alt.js"},{"name":"icon-user-females","legacy":true,"path":"./icons/icon-user-females.js"},{"name":"icon-user-glasses","legacy":true,"path":"./icons/icon-user-glasses.js"},{"name":"icon-user","path":"./icons/icon-user.js"},{"name":"icon-users-alt","legacy":true,"path":"./icons/icon-users-alt.js"},{"name":"icon-users","path":"./icons/icon-users.js"},{"name":"icon-utilities","path":"./icons/icon-utilities.js"},{"name":"icon-vcard","path":"./icons/icon-vcard.js"},{"name":"icon-video","path":"./icons/icon-video.js"},{"name":"icon-voice","path":"./icons/icon-voice.js"},{"name":"icon-wall-plug","path":"./icons/icon-wall-plug.js"},{"name":"icon-wallet","path":"./icons/icon-wallet.js"},{"name":"icon-wand","path":"./icons/icon-wand.js"},{"name":"icon-webhook","path":"./icons/icon-webhook.js"},{"name":"icon-weight","path":"./icons/icon-weight.js"},{"name":"icon-width","path":"./icons/icon-width.js"},{"name":"icon-wifi","path":"./icons/icon-wifi.js"},{"name":"icon-window-popin","path":"./icons/icon-window-popin.js"},{"name":"icon-window-sizes","path":"./icons/icon-window-sizes.js"},{"name":"icon-wine-glass","path":"./icons/icon-wine-glass.js"},{"name":"icon-wrench","path":"./icons/icon-wrench.js"},{"name":"icon-wrong","path":"./icons/icon-wrong.js"},{"name":"icon-zip","path":"./icons/icon-zip.js"},{"name":"icon-zom-out","legacy":true,"path":"./icons/icon-zom-out.js"},{"name":"icon-zoom-in","path":"./icons/icon-zoom-in.js"},{"name":"icon-zoom-out","path":"./icons/icon-zoom-out.js"},{"name":"icon-star","path":"./icons/icon-star.js"},{"name":"icon-database","path":"./icons/icon-database.js"},{"name":"icon-azure","path":"./icons/icon-azure.js"},{"name":"icon-facebook","path":"./icons/icon-facebook.js"},{"name":"icon-gitbook","path":"./icons/icon-gitbook.js"},{"name":"icon-github","path":"./icons/icon-github.js"},{"name":"icon-gitlab","path":"./icons/icon-gitlab.js"},{"name":"icon-google","path":"./icons/icon-google.js"},{"name":"icon-linkedin","path":"./icons/icon-linkedin.js"},{"name":"icon-mastodon","path":"./icons/icon-mastodon.js"},{"name":"icon-microsoft","path":"./icons/icon-microsoft.js"},{"name":"icon-twitter","path":"./icons/icon-twitter.js"},{"name":"icon-twitter-x","path":"./icons/icon-twitter-x.js"},{"name":"icon-umbraco","path":"./icons/icon-umbraco.js"},{"name":"icon-application-error","legacy":true,"path":"./icons/icon-application-error.js"},{"name":"icon-art-easel","legacy":true,"path":"./icons/icon-art-easel.js"},{"name":"icon-article","legacy":true,"path":"./icons/icon-article.js"},{"name":"icon-auction-hammer","legacy":true,"path":"./icons/icon-auction-hammer.js"},{"name":"icon-baby-stroller","legacy":true,"path":"./icons/icon-baby-stroller.js"},{"name":"icon-badge-count","legacy":true,"path":"./icons/icon-badge-count.js"},{"name":"icon-ball","legacy":true,"path":"./icons/icon-ball.js"},{"name":"icon-band-aid","legacy":true,"path":"./icons/icon-band-aid.js"},{"name":"icon-bill-dollar","legacy":true,"path":"./icons/icon-bill-dollar.js"},{"name":"icon-bill-euro","legacy":true,"path":"./icons/icon-bill-euro.js"},{"name":"icon-bill-pound","legacy":true,"path":"./icons/icon-bill-pound.js"},{"name":"icon-bill-yen","legacy":true,"path":"./icons/icon-bill-yen.js"},{"name":"icon-bill","legacy":true,"path":"./icons/icon-bill.js"},{"name":"icon-billboard","legacy":true,"path":"./icons/icon-billboard.js"},{"name":"icon-bills-dollar","legacy":true,"path":"./icons/icon-bills-dollar.js"},{"name":"icon-bills-euro","legacy":true,"path":"./icons/icon-bills-euro.js"},{"name":"icon-bills-pound","legacy":true,"path":"./icons/icon-bills-pound.js"},{"name":"icon-bills-yen","legacy":true,"path":"./icons/icon-bills-yen.js"},{"name":"icon-bills","legacy":true,"path":"./icons/icon-bills.js"},{"name":"icon-binoculars","legacy":true,"path":"./icons/icon-binoculars.js"},{"name":"icon-blueprint","legacy":true,"path":"./icons/icon-blueprint.js"},{"name":"icon-bomb","legacy":true,"path":"./icons/icon-bomb.js"},{"name":"icon-cash-register","legacy":true,"path":"./icons/icon-cash-register.js"},{"name":"icon-checkbox-dotted-active","legacy":true,"path":"./icons/icon-checkbox-dotted-active.js"},{"name":"icon-chess","legacy":true,"path":"./icons/icon-chess.js"},{"name":"icon-circus","legacy":true,"path":"./icons/icon-circus.js"},{"name":"icon-clothes-hanger","legacy":true,"path":"./icons/icon-clothes-hanger.js"},{"name":"icon-coin-dollar","legacy":true,"path":"./icons/icon-coin-dollar.js"},{"name":"icon-coin-pound","legacy":true,"path":"./icons/icon-coin-pound.js"},{"name":"icon-coin","legacy":true,"path":"./icons/icon-coin.js"},{"name":"icon-coins-dollar-alt","legacy":true,"path":"./icons/icon-coins-dollar-alt.js"},{"name":"icon-coins-dollar","legacy":true,"path":"./icons/icon-coins-dollar.js"},{"name":"icon-coins-euro-alt","legacy":true,"path":"./icons/icon-coins-euro-alt.js"},{"name":"icon-coins-euro","legacy":true,"path":"./icons/icon-coins-euro.js"},{"name":"icon-coins-pound-alt","legacy":true,"path":"./icons/icon-coins-pound-alt.js"},{"name":"icon-coins-pound","legacy":true,"path":"./icons/icon-coins-pound.js"},{"name":"icon-coins-yen-alt","legacy":true,"path":"./icons/icon-coins-yen-alt.js"},{"name":"icon-coins-yen","legacy":true,"path":"./icons/icon-coins-yen.js"},{"name":"icon-comb","legacy":true,"path":"./icons/icon-comb.js"},{"name":"icon-desk","legacy":true,"path":"./icons/icon-desk.js"},{"name":"icon-dollar-bag","legacy":true,"path":"./icons/icon-dollar-bag.js"},{"name":"icon-eject","legacy":true,"path":"./icons/icon-eject.js"},{"name":"icon-euro-bag","legacy":true,"path":"./icons/icon-euro-bag.js"},{"name":"icon-exit-fullscreen","legacy":true,"path":"./icons/icon-exit-fullscreen.js"},{"name":"icon-female-symbol","legacy":true,"path":"./icons/icon-female-symbol.js"},{"name":"icon-filter-arrows","legacy":true,"path":"./icons/icon-filter-arrows.js"},{"name":"icon-firewall","legacy":true,"path":"./icons/icon-firewall.js"},{"name":"icon-folder-open","legacy":true,"path":"./icons/icon-folder-open.js"},{"name":"icon-folder-outline","legacy":true,"path":"./icons/icon-folder-outline.js"},{"name":"icon-handprint","legacy":true,"path":"./icons/icon-handprint.js"},{"name":"icon-hat","legacy":true,"path":"./icons/icon-hat.js"},{"name":"icon-hd","legacy":true,"path":"./icons/icon-hd.js"},{"name":"icon-inactive-line","legacy":true,"path":"./icons/icon-inactive-line.js"},{"name":"icon-keychain","legacy":true,"path":"./icons/icon-keychain.js"},{"name":"icon-keyhole","legacy":true,"path":"./icons/icon-keyhole.js"},{"name":"icon-lightbulb-active","legacy":true,"path":"./icons/icon-lightbulb-active.js"},{"name":"icon-lightbulb","legacy":true,"path":"./icons/icon-lightbulb.js"},{"name":"icon-linux-tux","legacy":true,"path":"./icons/icon-linux-tux.js"},{"name":"icon-locate","legacy":true,"path":"./icons/icon-locate.js"},{"name":"icon-location-near-me","legacy":true,"path":"./icons/icon-location-near-me.js"},{"name":"icon-male-and-female","legacy":true,"path":"./icons/icon-male-and-female.js"},{"name":"icon-male-symbol","legacy":true,"path":"./icons/icon-male-symbol.js"},{"name":"icon-molecular-network","legacy":true,"path":"./icons/icon-molecular-network.js"},{"name":"icon-molecular","legacy":true,"path":"./icons/icon-molecular.js"},{"name":"icon-multiple-windows","legacy":true,"path":"./icons/icon-multiple-windows.js"},{"name":"icon-navigation-top","legacy":true,"path":"./icons/icon-navigation-top.js"},{"name":"icon-os-x","legacy":true,"path":"./icons/icon-os-x.js"},{"name":"icon-pants","legacy":true,"path":"./icons/icon-pants.js"},{"name":"icon-parachute-drop","legacy":true,"path":"./icons/icon-parachute-drop.js"},{"name":"icon-parental-control","legacy":true,"path":"./icons/icon-parental-control.js"},{"name":"icon-path","legacy":true,"path":"./icons/icon-path.js"},{"name":"icon-piracy","legacy":true,"path":"./icons/icon-piracy.js"},{"name":"icon-poker-chip","legacy":true,"path":"./icons/icon-poker-chip.js"},{"name":"icon-pound-bag","legacy":true,"path":"./icons/icon-pound-bag.js"},{"name":"icon-price-yen","legacy":true,"path":"./icons/icon-price-yen.js"},{"name":"icon-receipt-dollar","legacy":true,"path":"./icons/icon-receipt-dollar.js"},{"name":"icon-receipt-euro","legacy":true,"path":"./icons/icon-receipt-euro.js"},{"name":"icon-receipt-pound","legacy":true,"path":"./icons/icon-receipt-pound.js"},{"name":"icon-receipt-yen","legacy":true,"path":"./icons/icon-receipt-yen.js"},{"name":"icon-resize","legacy":true,"path":"./icons/icon-resize.js"},{"name":"icon-road","legacy":true,"path":"./icons/icon-road.js"},{"name":"icon-safe","legacy":true,"path":"./icons/icon-safe.js"},{"name":"icon-safedial","legacy":true,"path":"./icons/icon-safedial.js"},{"name":"icon-sandbox-toys","legacy":true,"path":"./icons/icon-sandbox-toys.js"},{"name":"icon-security-camera","legacy":true,"path":"./icons/icon-security-camera.js"},{"name":"icon-settings-alt-2","legacy":true,"path":"./icons/icon-settings-alt-2.js"},{"name":"icon-share-alt-2","legacy":true,"path":"./icons/icon-share-alt-2.js"},{"name":"icon-shorts","legacy":true,"path":"./icons/icon-shorts.js"},{"name":"icon-simcard","legacy":true,"path":"./icons/icon-simcard.js"},{"name":"icon-split-alt","legacy":true,"path":"./icons/icon-split-alt.js"},{"name":"icon-tab","legacy":true,"path":"./icons/icon-tab.js"},{"name":"icon-tactics","legacy":true,"path":"./icons/icon-tactics.js"},{"name":"icon-theif","legacy":true,"path":"./icons/icon-theif.js"},{"name":"icon-thought-bubble","legacy":true,"path":"./icons/icon-thought-bubble.js"},{"name":"icon-umb-contour","legacy":true,"path":"./icons/icon-umb-contour.js"},{"name":"icon-umb-deploy","legacy":true,"path":"./icons/icon-umb-deploy.js"},{"name":"icon-umb-members","legacy":true,"path":"./icons/icon-umb-members.js"},{"name":"icon-universal","legacy":true,"path":"./icons/icon-universal.js"},{"name":"icon-war","legacy":true,"path":"./icons/icon-war.js"},{"name":"icon-windows","legacy":true,"path":"./icons/icon-windows.js"},{"name":"icon-yen-bag","legacy":true,"path":"./icons/icon-yen-bag.js"}] \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg new file mode 100644 index 0000000000..02f6e8c48b --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg @@ -0,0 +1,5 @@ + + + + From 68ff40ba97b2da4b3c0f64d8607ce0eba24211f7 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:19:11 +0200 Subject: [PATCH 098/177] use correct path to locate icons --- src/Umbraco.Web.UI.Client/devops/icons/index.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/devops/icons/index.js b/src/Umbraco.Web.UI.Client/devops/icons/index.js index 0835e420c5..909ee19094 100644 --- a/src/Umbraco.Web.UI.Client/devops/icons/index.js +++ b/src/Umbraco.Web.UI.Client/devops/icons/index.js @@ -6,7 +6,7 @@ const path = pathModule.default; const getDirName = path.dirname; const glob = globModule.default; -const moduleDirectory = 'src/shared/icon-registry'; +const moduleDirectory = 'src/packages/core/icon-registry'; const iconsOutputDirectory = `${moduleDirectory}/icons`; const umbracoSvgDirectory = `${moduleDirectory}/svgs`; const iconMapJson = `${moduleDirectory}/icon-dictionary.json`; @@ -31,7 +31,7 @@ const collectDictionaryIcons = async () => { // Lucide: fileJSON.lucide.forEach((iconDef) => { - if(iconDef.file && iconDef.name) { + if (iconDef.file && iconDef.name) { const path = lucideSvgDirectory + "/" + iconDef.file; try { @@ -90,7 +90,7 @@ const collectDictionaryIcons = async () => { // Umbraco: fileJSON.umbraco.forEach((iconDef) => { - if(iconDef.file && iconDef.name) { + if (iconDef.file && iconDef.name) { const path = umbracoSvgDirectory + "/" + iconDef.file; try { @@ -107,8 +107,8 @@ const collectDictionaryIcons = async () => { }; icons.push(icon); - } catch(e) { - console.log(`Could not load file: '${path}'`); + } catch (e) { + console.log(`[Umbraco] Could not load file: '${path}'`); } } }); @@ -136,7 +136,7 @@ const collectDiskIcons = async (icons) => { const iconName = iconFileName; // Only append not already defined icons: - if(!icons.find(x => x.name === iconName)) { + if (!icons.find(x => x.name === iconName)) { const icon = { name: iconName, From 12624b76604b330e8da000f0cb9e667a77d5a560 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:20:44 +0200 Subject: [PATCH 099/177] use umbraco's icon for its provider --- .../src/packages/core/auth/providers/manifests.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts index f1f2f89b41..5c8e7dc2de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/providers/manifests.ts @@ -10,6 +10,7 @@ export const manifests: Array = [ meta: { label: 'Sign in with Umbraco', defaultView: { + icon: 'icon-umbraco', look: 'primary', }, }, From ef49a07e391056415f3ed5025a9f272c1c244482 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:32:12 +0200 Subject: [PATCH 100/177] add fill="currentColor" to the umbraco icon --- .../src/packages/core/icon-registry/icons/icon-umbraco.js | 8 +++++--- .../src/packages/core/icon-registry/svgs/icon-umbraco.svg | 7 ++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbraco.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbraco.js index 268d9f441c..1bcdcda9fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbraco.js +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-umbraco.js @@ -1,3 +1,5 @@ -export default ` - -`; \ No newline at end of file +export default ` + + +`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg index 0e121eebf3..1e69d80a4b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-umbraco.svg @@ -1,3 +1,4 @@ - - - \ No newline at end of file + + + From 74724a079e8b5dbcb52518b0a1e4d0e6abcdfb10 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:33:18 +0200 Subject: [PATCH 101/177] use the name property for icons --- .../core/auth/components/auth-provider-default.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts index 8c30b32f48..91a4faca9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts @@ -21,7 +21,7 @@ export class UmbAuthProviderDefaultElement extends UmbLitElement { .look=${this.manifest.meta?.defaultView?.look ?? 'outline'} .color=${this.manifest.meta?.defaultView?.color ?? 'default'}> ${this.manifest.meta?.defaultView?.icon - ? html`` + ? html`` : nothing} ${this.manifest.meta?.label ?? this.manifest.forProviderName}
From 465843233fbdec41d778ff96f9e012d37380b323 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:34:08 +0200 Subject: [PATCH 102/177] dont store the references to the icon registries --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 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 80be3c84e1..d502c4a487 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 @@ -75,8 +75,6 @@ export class UmbAppElement extends UmbLitElement { ]; #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; - #umbIconRegistry = new UmbIconRegistry(); - #uuiIconRegistry = new UUIIconRegistryEssential(); #serverConnection?: UmbServerConnection; #authController?: UmbAppAuthController; @@ -85,14 +83,14 @@ export class UmbAppElement extends UmbLitElement { OpenAPI.BASE = window.location.origin; + new UmbIconRegistry().attach(this); + new UUIIconRegistryEssential().attach(this); + new UmbContextDebugController(this); new UmbBundleExtensionInitializer(this, umbExtensionsRegistry); new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry); - this.#umbIconRegistry.attach(this); - this.#uuiIconRegistry.attach(this); - umbExtensionsRegistry.registerMany(coreExtensions); } From dcee2672471a2bae46e1526b2b5cb7a502f4146f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:34:17 +0200 Subject: [PATCH 103/177] change mock background slightly --- src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 518f62d1ff..9fed38ab05 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -96,7 +96,7 @@ export class UmbAppAuthController extends UmbControllerBase { }, modal: { backdropBackground: this.#firstTimeLoggingIn - ? "url('https://picsum.photos/1440') center center / cover no-repeat" + ? "url('https://picsum.photos/1440?grayscale&blur=2') center center / cover no-repeat" : 'rgb(0, 0, 0)', }, }) From 917da25555cd3ab96f6efa6031a9ba194a65b4dc Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:44:09 +0200 Subject: [PATCH 104/177] add interface to control props of a provider element --- .../auth-provider-default.element.ts | 4 ++-- .../src/packages/core/auth/types.ts | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts index 91a4faca9b..eecf6bee2c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts @@ -4,12 +4,12 @@ import { UmbTextStyles } from '../../style/index.js'; import { css, customElement, html, nothing, property } from '@umbraco-cms/backoffice/external/lit'; @customElement('umb-auth-provider-default') -export class UmbAuthProviderDefaultElement extends UmbLitElement { +export class UmbAuthProviderDefaultElement extends UmbLitElement implements UmbAuthProviderDefaultProps { @property({ attribute: false }) manifest!: ManifestAuthProvider; @property({ attribute: false }) - onSubmit!: (providerName: string) => void; + onSubmit!: (providerName: string, loginHint?: string) => void; render() { return html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts index d1933d0607..7074b49380 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/types.ts @@ -1,5 +1,26 @@ +import type { ManifestAuthProvider } from '../extension-registry/index.js'; + /** * User login state that can be used to determine the current state of the user. * @example 'loggedIn' */ export type UmbUserLoginState = 'loggingIn' | 'loggedOut' | 'timedOut'; + +export interface UmbAuthProviderDefaultProps { + /** + * The manifest for the registered provider. + */ + manifest?: ManifestAuthProvider; + + /** + * The current user login state. + */ + userLoginState?: UmbUserLoginState; + + /** + * Callback that is called when the user selects a provider. + * @param providerName The name of the provider that the user selected. + * @param loginHint The login hint to use for login if available. + */ + onSubmit: (providerName: string, loginHint?: string) => void; +} From 8d986aaa827e793904e8c1b33b743b61492e2b73 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:44:28 +0200 Subject: [PATCH 105/177] use a `part` attribute to style gap between providers --- .../core/auth/components/auth-provider-default.element.ts | 7 ++++++- .../core/auth/modals/umb-app-auth-modal.element.ts | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts index eecf6bee2c..2b93881d87 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts @@ -1,4 +1,5 @@ import type { ManifestAuthProvider } from '../../index.js'; +import type { UmbAuthProviderDefaultProps } from '../types.js'; import { UmbLitElement } from '../../lit-element/lit-element.element.js'; import { UmbTextStyles } from '../../style/index.js'; import { css, customElement, html, nothing, property } from '@umbraco-cms/backoffice/external/lit'; @@ -11,6 +12,11 @@ export class UmbAuthProviderDefaultElement extends UmbLitElement implements UmbA @property({ attribute: false }) onSubmit!: (providerName: string, loginHint?: string) => void; + connectedCallback(): void { + super.connectedCallback(); + this.setAttribute('part', 'auth-provider-default'); + } + render() { return html` Date: Fri, 5 Apr 2024 16:45:56 +0200 Subject: [PATCH 106/177] use flex to style the provider column --- .../packages/core/auth/modals/umb-app-auth-modal.element.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 1516c92e96..2db0be78a8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -43,8 +43,10 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement Date: Fri, 5 Apr 2024 17:19:34 +0200 Subject: [PATCH 107/177] update handlers --- .../src/mocks/handlers/manifests.handlers.ts | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts index df03f8cffd..d0ee368388 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts @@ -4,7 +4,7 @@ import type { PackageManifestResponse } from '../../packages/packages/types.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; export const manifestDevelopmentHandlers = [ - rest.get(umbracoPath('/package/manifest'), (_req, res, ctx) => { + rest.get(umbracoPath('/manifest/manifest/private'), (_req, res, ctx) => { return res( // Respond with a 200 status code ctx.status(200), @@ -94,7 +94,7 @@ export const manifestDevelopmentHandlers = [ ]), ); }), - rest.get(umbracoPath('/package/manifest/public'), (_req, res, ctx) => { + rest.get(umbracoPath('/manifest/manifest/public'), (_req, res, ctx) => { return res( ctx.status(200), ctx.json([ @@ -112,14 +112,16 @@ export const manifestDevelopmentHandlers = [ }, { type: 'authProvider', - alias: 'My.AUthProvider.Github', + alias: 'My.AuthProvider.Github', name: 'My Github Auth Provider', forProviderName: 'Umbraco.Github', meta: { - label: 'Use Github!', - look: 'primary', - icon: 'icon-github', - color: 'success', + label: 'GitHub', + defaultView: { + look: 'primary', + icon: 'icon-github', + color: 'success', + }, }, }, ], @@ -130,10 +132,10 @@ export const manifestDevelopmentHandlers = [ ]; export const manifestEmptyHandlers = [ - rest.get(umbracoPath('/package/manifest'), (_req, res, ctx) => { + rest.get(umbracoPath('/manifest/manifest/private'), (_req, res, ctx) => { return res(ctx.status(200), ctx.json([])); }), - rest.get(umbracoPath('/package/manifest/public'), (_req, res, ctx) => { + rest.get(umbracoPath('/manifest/manifest/public'), (_req, res, ctx) => { return res(ctx.status(200), ctx.json([])); }), ]; From 54f5a4c0ecd30a32dd721eb3248f77af7c16d778 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:19:44 +0200 Subject: [PATCH 108/177] add fallback variable to backdrop --- src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 9fed38ab05..f629ea9ac1 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -96,8 +96,8 @@ export class UmbAppAuthController extends UmbControllerBase { }, modal: { backdropBackground: this.#firstTimeLoggingIn - ? "url('https://picsum.photos/1440?grayscale&blur=2') center center / cover no-repeat" - : 'rgb(0, 0, 0)', + ? "var(--umb-auth-backdrop, url('https://picsum.photos/1440?grayscale&blur=2') center center / cover no-repeat)" + : 'var(--umb-auth-backdrop-timedout, rgb(0, 0, 0))', }, }) .onSubmit() From f28592bef779d6fb3065050b699ced7262a076db Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:20:11 +0200 Subject: [PATCH 109/177] update api types --- .../src/apps/backoffice/backoffice.element.ts | 2 +- .../src/external/backend-api/src/index.ts | 5 +- ...ponseModel.ts => ManifestResponseModel.ts} | 2 +- .../models/VerifyInviteUserResponseModel.ts | 11 ++++ .../VerifyResetPasswordResponseModel.ts | 11 ++++ .../src/services/ManifestResource.ts | 52 +++++++++++++++++++ .../src/services/PackageResource.ts | 26 ---------- .../src/services/SecurityResource.ts | 5 +- .../backend-api/src/services/UserResource.ts | 7 ++- ...server-extension-registrator.controller.ts | 24 ++++++--- .../src/packages/packages/types.ts | 4 +- 11 files changed, 104 insertions(+), 45 deletions(-) rename src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/{PackageManifestResponseModel.ts => ManifestResponseModel.ts} (82%) create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordResponseModel.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ManifestResource.ts 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 ae2d293e3e..a0d998a91f 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 @@ -41,7 +41,7 @@ export class UmbBackofficeElement extends UmbLitElement { super(); new UmbBackofficeContext(this); - new UmbServerExtensionRegistrator(this, umbExtensionsRegistry).registerAllExtensions(); + new UmbServerExtensionRegistrator(this, umbExtensionsRegistry).registerPrivateExtensions(); // So far local packages are this simple to registerer, so no need for a manager to do that: CORE_PACKAGES.forEach(async (packageImport) => { 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 2c78b0aa5e..d225cf8c87 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 @@ -195,6 +195,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 { ManifestResponseModel } from './models/ManifestResponseModel'; export type { MediaCollectionResponseModel } from './models/MediaCollectionResponseModel'; export type { MediaConfigurationResponseModel } from './models/MediaConfigurationResponseModel'; export type { MediaItemResponseModel } from './models/MediaItemResponseModel'; @@ -255,7 +256,6 @@ export type { OutOfDateStatusResponseModel } from './models/OutOfDateStatusRespo 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'; export type { PackageModelBaseModel } from './models/PackageModelBaseModel'; export type { PagedAllowedDocumentTypeModel } from './models/PagedAllowedDocumentTypeModel'; @@ -461,6 +461,8 @@ export type { VariantItemResponseModelBaseModel } from './models/VariantItemResp export type { VariantModelBaseModel } from './models/VariantModelBaseModel'; export type { VariantResponseModelBaseModel } from './models/VariantResponseModelBaseModel'; export type { VerifyInviteUserRequestModel } from './models/VerifyInviteUserRequestModel'; +export type { VerifyInviteUserResponseModel } from './models/VerifyInviteUserResponseModel'; +export type { VerifyResetPasswordResponseModel } from './models/VerifyResetPasswordResponseModel'; export type { VerifyResetPasswordTokenRequestModel } from './models/VerifyResetPasswordTokenRequestModel'; export type { WebhookEventResponseModel } from './models/WebhookEventResponseModel'; export type { WebhookItemResponseModel } from './models/WebhookItemResponseModel'; @@ -482,6 +484,7 @@ export { IndexerResource } from './services/IndexerResource'; export { InstallResource } from './services/InstallResource'; export { LanguageResource } from './services/LanguageResource'; export { LogViewerResource } from './services/LogViewerResource'; +export { ManifestResource } from './services/ManifestResource'; export { MediaResource } from './services/MediaResource'; export { MediaTypeResource } from './services/MediaTypeResource'; export { MemberResource } from './services/MemberResource'; 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/ManifestResponseModel.ts similarity index 82% rename from src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/PackageManifestResponseModel.ts rename to src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/ManifestResponseModel.ts index c247a475af..792e0482bb 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/ManifestResponseModel.ts @@ -3,7 +3,7 @@ /* tslint:disable */ /* eslint-disable */ -export type PackageManifestResponseModel = { +export type ManifestResponseModel = { name: string; version?: string | null; extensions: Array; diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserResponseModel.ts new file mode 100644 index 0000000000..cc7f102b7f --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyInviteUserResponseModel.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 VerifyInviteUserResponseModel = { + passwordConfiguration: PasswordConfigurationResponseModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordResponseModel.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordResponseModel.ts new file mode 100644 index 0000000000..1c80084a94 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/models/VerifyResetPasswordResponseModel.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 VerifyResetPasswordResponseModel = { + passwordConfiguration: PasswordConfigurationResponseModel; +}; + diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ManifestResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ManifestResource.ts new file mode 100644 index 0000000000..a206603b17 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/ManifestResource.ts @@ -0,0 +1,52 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { ManifestResponseModel } from '../models/ManifestResponseModel'; + +import type { CancelablePromise } from '../core/CancelablePromise'; +import { OpenAPI } from '../core/OpenAPI'; +import { request as __request } from '../core/request'; + +export class ManifestResource { + + /** + * @returns any Success + * @throws ApiError + */ + public static getManifestManifest(): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/manifest/manifest', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static getManifestManifestPrivate(): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/manifest/manifest/private', + errors: { + 401: `The resource is protected and requires an authentication token`, + }, + }); + } + + /** + * @returns any Success + * @throws ApiError + */ + public static getManifestManifestPublic(): CancelablePromise> { + return __request(OpenAPI, { + method: 'GET', + url: '/umbraco/management/api/v1/manifest/manifest/public', + }); + } + +} 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 9e35f2a517..e55cffe247 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 @@ -5,7 +5,6 @@ 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'; import type { PagedPackageMigrationStatusResponseModel } from '../models/PagedPackageMigrationStatusResponseModel'; import type { UpdatePackageRequestModel } from '../models/UpdatePackageRequestModel'; @@ -195,31 +194,6 @@ export class PackageResource { }); } - /** - * @returns any Success - * @throws ApiError - */ - public static getPackageManifest(): CancelablePromise> { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/package/manifest', - errors: { - 401: `The resource is protected and requires an authentication token`, - }, - }); - } - - /** - * @returns any Success - * @throws ApiError - */ - public static getPackageManifestPublic(): CancelablePromise> { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/package/manifest/public', - }); - } - /** * @returns PagedPackageMigrationStatusResponseModel Success * @throws ApiError 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 f229959ef2..3424b9b118 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 @@ -5,6 +5,7 @@ import type { ResetPasswordRequestModel } from '../models/ResetPasswordRequestModel'; import type { ResetPasswordTokenRequestModel } from '../models/ResetPasswordTokenRequestModel'; import type { SecurityConfigurationResponseModel } from '../models/SecurityConfigurationResponseModel'; +import type { VerifyResetPasswordResponseModel } from '../models/VerifyResetPasswordResponseModel'; import type { VerifyResetPasswordTokenRequestModel } from '../models/VerifyResetPasswordTokenRequestModel'; import type { CancelablePromise } from '../core/CancelablePromise'; @@ -72,14 +73,14 @@ export class SecurityResource { } /** - * @returns void + * @returns any Success * @throws ApiError */ public static postSecurityForgotPasswordVerify({ requestBody, }: { requestBody?: (VerifyResetPasswordTokenRequestModel | ResetPasswordTokenRequestModel), - }): CancelablePromise { + }): 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/UserResource.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services/UserResource.ts index 18a940811c..a5f3578e4a 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 @@ -31,6 +31,7 @@ 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 { VerifyInviteUserResponseModel } from '../models/VerifyInviteUserResponseModel'; import type { CancelablePromise } from '../core/CancelablePromise'; import { OpenAPI } from '../core/OpenAPI'; @@ -755,7 +756,6 @@ export class UserResource { responseHeader: 'Umb-Notifications', errors: { 400: `Bad Request`, - 401: `The resource is protected and requires an authentication token`, 404: `Not Found`, }, }); @@ -785,20 +785,19 @@ export class UserResource { } /** - * @returns string Success + * @returns any Success * @throws ApiError */ public static postUserInviteVerify({ requestBody, }: { requestBody?: (VerifyInviteUserRequestModel | CreateInitialPasswordUserRequestModel), - }): CancelablePromise { + }): CancelablePromise { return __request(OpenAPI, { method: 'POST', url: '/umbraco/management/api/v1/user/invite/verify', body: requestBody, mediaType: 'application/json', - responseHeader: 'Umb-Notifications', errors: { 400: `Bad Request`, 404: `Not Found`, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/server-extension-registrator.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/server-extension-registrator.controller.ts index c663868854..a20359fd72 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/server-extension-registrator.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/server-extension-registrator.controller.ts @@ -1,10 +1,6 @@ import type { ManifestBase } from '../types/index.js'; import { isManifestBaseType } from '../type-guards/index.js'; -import { - PackageResource, - OpenAPI, - type PackageManifestResponseModel, -} from '@umbraco-cms/backoffice/external/backend-api'; +import { OpenAPI, ManifestResource, type ManifestResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import type { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; @@ -26,7 +22,19 @@ export class UmbServerExtensionRegistrator extends UmbControllerBase { * @remark Users must have the BACKOFFICE_ACCESS permission to access this method. */ public async registerAllExtensions() { - const { data: packages } = await tryExecuteAndNotify(this, PackageResource.getPackageManifest()); + const { data: packages } = await tryExecuteAndNotify(this, ManifestResource.getManifestManifest()); + if (packages) { + await this.#loadServerPackages(packages); + } + } + + /** + * Registers all private extensions from the server. + * This is used to register all private extensions that are available to the user. + * @remark Users must have the BACKOFFICE_ACCESS permission to access this method. + */ + public async registerPrivateExtensions() { + const { data: packages } = await tryExecuteAndNotify(this, ManifestResource.getManifestManifestPrivate()); if (packages) { await this.#loadServerPackages(packages); } @@ -38,13 +46,13 @@ export class UmbServerExtensionRegistrator extends UmbControllerBase { * @remark Any user can access this method without any permissions. */ public async registerPublicExtensions() { - const { data: packages } = await tryExecuteAndNotify(this, PackageResource.getPackageManifestPublic()); + const { data: packages } = await tryExecuteAndNotify(this, ManifestResource.getManifestManifestPublic()); if (packages) { await this.#loadServerPackages(packages); } } - async #loadServerPackages(packages: PackageManifestResponseModel[]) { + async #loadServerPackages(packages: ManifestResponseModel[]) { const extensions: ManifestBase[] = []; packages.forEach((p) => { 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 93ebce7414..e628d84d15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts @@ -1,6 +1,6 @@ -import type { PackageManifestResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; +import type { ManifestResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; -export type UmbPackage = PackageManifestResponseModel; +export type UmbPackage = ManifestResponseModel; export type PackageManifestResponse = UmbPackage[]; From e531bb4ba5646681523241937e95f48442098cdc Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 08:56:51 +0200 Subject: [PATCH 110/177] fix test error --- src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 17cf239c92..45c56d006b 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 configHandlers } from './handlers/config.handlers.js'; export const handlers = [ serverHandlers.serverRunningHandler, serverHandlers.serverInformationHandler, - manifestsHandlers.manifestEmptyHandler, + manifestsHandlers.manifestEmptyHandlers, ...auditLogHandlers, ...installHandlers, ...upgradeHandlers, From fe1c3d2f43ba24dfab5d7aa5bbe24e93c0cb2cf2 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 09:05:16 +0200 Subject: [PATCH 111/177] if the user times out, always show the login screen --- .../src/apps/app/app-auth.controller.ts | 60 +++++++++++++------ .../src/assets/lang/da-dk.ts | 1 + .../src/assets/lang/en-us.ts | 1 + .../auth/modals/umb-app-auth-modal.element.ts | 1 + 4 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index f629ea9ac1..a85fd82d3d 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -69,6 +69,17 @@ export class UmbAppAuthController extends UmbControllerBase { throw new Error('[Fatal] Auth context is not available'); } + // If the user is timed out, we can show the login modal directly + if (userLoginState === 'timedOut') { + const selected = await this.#showLoginModal(userLoginState); + + if (!selected) { + return false; + } + + return this.#updateState(); + } + // Figure out which providers are available const availableProviders = await firstValueFrom(this.#authContext.getAuthProviders()); @@ -88,32 +99,47 @@ export class UmbAppAuthController extends UmbControllerBase { this.#authContext.makeAuthorizationRequest(redirectProvider.forProviderName); } else { // Show the provider selection screen - const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - const selected = await modalManager - .open(this._host, UMB_MODAL_APP_AUTH, { - data: { - userLoginState, - }, - modal: { - backdropBackground: this.#firstTimeLoggingIn - ? "var(--umb-auth-backdrop, url('https://picsum.photos/1440?grayscale&blur=2') center center / cover no-repeat)" - : 'var(--umb-auth-backdrop-timedout, rgb(0, 0, 0))', - }, - }) - .onSubmit() - .catch(() => undefined); + const selected = await this.#showLoginModal(userLoginState); - if (!selected?.providerName) { + if (!selected) { return false; } - - this.#authContext.makeAuthorizationRequest(selected.providerName, selected.loginHint); } } return this.#updateState(); } + async #showLoginModal(userLoginState: UmbUserLoginState): Promise { + if (!this.#authContext) { + throw new Error('[Fatal] Auth context is not available'); + } + + // Show the provider selection screen + const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); + const selected = await modalManager + .open(this._host, UMB_MODAL_APP_AUTH, { + data: { + userLoginState, + }, + modal: { + backdropBackground: this.#firstTimeLoggingIn + ? "var(--umb-auth-backdrop, url('https://picsum.photos/1440?grayscale&blur=2') center center / cover no-repeat)" + : 'var(--umb-auth-backdrop-timedout, rgb(0, 0, 0))', + }, + }) + .onSubmit() + .catch(() => undefined); + + if (!selected?.providerName) { + return false; + } + + this.#authContext.makeAuthorizationRequest(selected.providerName, selected.loginHint); + + return true; + } + #updateState() { if (!this.#authContext) { throw new Error('[Fatal] Auth context is not available'); 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 17bd03e419..3fb582cda0 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 @@ -1016,6 +1016,7 @@ export default { login: { instruction: 'Log ind på Umbraco', signInWith: 'Log ind med {0}', + timeout: 'Du er blevet logget ud på grund af inaktivitet, vil du logge ind igen?', }, main: { dashboard: 'Skrivebord', 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 7dc7c62b8d..39c6073f9b 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 @@ -1013,6 +1013,7 @@ export default { login: { instruction: 'Sign in to Umbraco', signInWith: 'Sign in with {0}', + timeout: 'Your session has timed out. Please sign in again below.', }, main: { dashboard: 'Dashboard', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 2db0be78a8..8e129664a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -15,6 +15,7 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement + ${this.data?.userLoginState === 'timedOut' ? html`

${this.localize.term('login_timeout')}

` : ''} Date: Mon, 8 Apr 2024 09:14:03 +0200 Subject: [PATCH 112/177] use new resource to fetch packages --- .../package/repository/sources/package.server.data.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts index b8cc78864e..fe56e10015 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts @@ -1,5 +1,5 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; -import { PackageResource } from '@umbraco-cms/backoffice/external/backend-api'; +import { ManifestResource, PackageResource } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** @@ -14,7 +14,7 @@ export class UmbPackageServerDataSource { * @memberof UmbPackageServerDataSource */ getRootItems() { - return tryExecuteAndNotify(this.host, PackageResource.getPackageManifest()); + return tryExecuteAndNotify(this.host, ManifestResource.getManifestManifest()); } /** From dfde7e7474951ba0a277214bf6c2bece4d7ad3b7 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 09:45:18 +0200 Subject: [PATCH 113/177] add logo and graphics to login --- src/Umbraco.Web.UI.Client/public/login.jpg | Bin 0 -> 366426 bytes .../public/umbraco_logo_blue.svg | 51 ++++++++++++++ .../public/umbraco_logo_white.svg | 52 +++++++++++++- .../auth/modals/umb-app-auth-modal.element.ts | 65 +++++++++++++++--- 4 files changed, 157 insertions(+), 11 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/public/login.jpg create mode 100644 src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg diff --git a/src/Umbraco.Web.UI.Client/public/login.jpg b/src/Umbraco.Web.UI.Client/public/login.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6b97f2c9439bdaabb9172019081f9afb6b87bcb0 GIT binary patch literal 366426 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
yu9tN}s3Cwo+N_0sSF(yJrXN0wmd2gkoBF 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≫0m*T$-UoS(m&+$j@TiDQ#uA% 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 z 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˦#& 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 RoZB^R@^NtHar)np{{sh8y1M`X literal 0 HcmV?d00001 diff --git a/src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg b/src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg new file mode 100644 index 0000000000..578bf592f6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg b/src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg index 3de8e82ed3..01f7260cd3 100644 --- a/src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg +++ b/src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg @@ -1 +1,51 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 8e129664a3..966f86044b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -14,14 +14,19 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement - ${this.data?.userLoginState === 'timedOut' ? html`

${this.localize.term('login_timeout')}

` : ''} - - +
+ + + ${this.data?.userLoginState === 'timedOut' ? html`

${this.localize.term('login_timeout')}

` : ''} + +
+
`; } @@ -36,12 +41,41 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement Date: Mon, 8 Apr 2024 09:48:16 +0200 Subject: [PATCH 114/177] remove the attribute fill-background altogether --- .../backoffice-modal-container.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ee8be1c38b..1ad2272850 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 @@ -38,7 +38,7 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { /** We cannot render the umb-modal element directly in the uui-modal-container because it wont get recognized by UUI. * We therefore have a helper class which creates the uui-modal element and returns it. */ #createModalElements(modals: Array) { - this.fillBackground = false; + this.removeAttribute('fill-background'); const oldValue = this._modals; this._modals = modals; From 22282ef72886627251809f0c43ae261fd3e9159c Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 09:59:20 +0200 Subject: [PATCH 115/177] adjust background for the not-logged-in state --- src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index a85fd82d3d..e25de952cd 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -124,8 +124,8 @@ export class UmbAppAuthController extends UmbControllerBase { }, modal: { backdropBackground: this.#firstTimeLoggingIn - ? "var(--umb-auth-backdrop, url('https://picsum.photos/1440?grayscale&blur=2') center center / cover no-repeat)" - : 'var(--umb-auth-backdrop-timedout, rgb(0, 0, 0))', + ? 'var(--umb-auth-backdrop, rgba(0, 0, 0, 0.75))' + : 'var(--umb-auth-backdrop-timedout, #000)', }, }) .onSubmit() From b30b8a4e198d6c40ec202b30e970f2c300122fdf Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 09:59:29 +0200 Subject: [PATCH 116/177] add the welcome greeting --- .../src/assets/lang/da-dk.ts | 7 ++++ .../src/assets/lang/en-us.ts | 7 ++++ .../auth/modals/umb-app-auth-modal.element.ts | 37 ++++++++++++++++++- 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts index 3fb582cda0..cf53ada307 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 @@ -1014,6 +1014,13 @@ export default { renewSession: 'Forny for at gemme dine ændringer', }, login: { + greeting0: 'Velkommen', + greeting1: 'Velkommen', + greeting2: 'Velkommen', + greeting3: 'Velkommen', + greeting4: 'Velkommen', + greeting5: 'Velkommen', + greeting6: 'Velkommen', instruction: 'Log ind på Umbraco', signInWith: 'Log ind med {0}', timeout: 'Du er blevet logget ud på grund af inaktivitet, vil du logge ind igen?', 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 39c6073f9b..00a3ebc3a2 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 @@ -1011,6 +1011,13 @@ export default { renewSession: 'Renew now to save your work', }, login: { + greeting0: 'Welcome', + greeting1: 'Welcome', + greeting2: 'Welcome', + greeting3: 'Welcome', + greeting4: 'Welcome', + greeting5: 'Welcome', + greeting6: 'Welcome', instruction: 'Sign in to Umbraco', signInWith: 'Sign in with {0}', timeout: 'Your session has timed out. Please sign in again below.', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 966f86044b..5ed4f90fbb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -12,14 +12,33 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement - - ${this.data?.userLoginState === 'timedOut' ? html`

${this.localize.term('login_timeout')}

` : ''} + +

${this.headline}

+ ${this.data?.userLoginState === 'timedOut' + ? html`

${this.localize.term('login_timeout')}

` + : ''} Date: Mon, 8 Apr 2024 10:09:48 +0200 Subject: [PATCH 117/177] remove unused assets --- src/Umbraco.Web.UI.Client/public/login.jpg | Bin 366426 -> 0 bytes .../public/umbraco_logo_blue.svg | 51 ------------------ .../public/umbraco_logo_white.svg | 51 ------------------ 3 files changed, 102 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/public/login.jpg delete mode 100644 src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg delete mode 100644 src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg diff --git a/src/Umbraco.Web.UI.Client/public/login.jpg b/src/Umbraco.Web.UI.Client/public/login.jpg deleted file mode 100644 index 6b97f2c9439bdaabb9172019081f9afb6b87bcb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366426 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
yu9tN}s3Cwo+N_0sSF(yJrXN0wmd2gkoBF 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≫0m*T$-UoS(m&+$j@TiDQ#uA% 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 z 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˦#& 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 RoZB^R@^NtHar)np{{sh8y1M`X diff --git a/src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg b/src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg deleted file mode 100644 index 578bf592f6..0000000000 --- a/src/Umbraco.Web.UI.Client/public/umbraco_logo_blue.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg b/src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg deleted file mode 100644 index 01f7260cd3..0000000000 --- a/src/Umbraco.Web.UI.Client/public/umbraco_logo_white.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - From a15f22f959c0c313ffeb51d1f9e554e01e853cb3 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:10:02 +0200 Subject: [PATCH 118/177] move assets to src/assets and remove unused files --- .../src/assets/installer.jpg | Bin 191322 -> 0 bytes .../src/assets/login.jpg | Bin 0 -> 366426 bytes .../src/assets/umbraco_background.jpg | Bin 30678 -> 0 bytes .../src/assets/umbraco_logo_blue.svg | 51 +++++++++++++++++ .../src/assets/umbraco_logo_white.svg | 52 +++++++++++++++++- .../auth/modals/umb-app-auth-modal.element.ts | 4 +- 6 files changed, 104 insertions(+), 3 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/assets/installer.jpg create mode 100644 src/Umbraco.Web.UI.Client/src/assets/login.jpg delete mode 100644 src/Umbraco.Web.UI.Client/src/assets/umbraco_background.jpg create mode 100644 src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_blue.svg diff --git a/src/Umbraco.Web.UI.Client/src/assets/installer.jpg b/src/Umbraco.Web.UI.Client/src/assets/installer.jpg deleted file mode 100644 index f0f5de8695c4ad6284a7ed6f5031e1c445834979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191322 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

#ln95|EI8(sR+#vBZS}rGqyh2EemdNvn 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�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

yu9tN}s3Cwo+N_0sSF(yJrXN0wmd2gkoBF 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≫0m*T$-UoS(m&+$j@TiDQ#uA% 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 z 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˦#& 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 RoZB^R@^NtHar)np{{sh8y1M`X literal 0 HcmV?d00001 diff --git a/src/Umbraco.Web.UI.Client/src/assets/umbraco_background.jpg b/src/Umbraco.Web.UI.Client/src/assets/umbraco_background.jpg deleted file mode 100644 index 412cd17865c1b847affa4f0c2abc74645f678187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30678 zcmd4(c|4V07e9>ebB=kQGiPWpXAYr5$PkV>MCK{VoVg=oiX?={JY*g#4HBYI#>`1F zMNw&@>9?9Z;$q*)&Be~i z$+JsrFAtvxKPRWaenAm&32ABRoqOe#ubU?C{&h9XpFe*LFy9pLe;M*)$&FFk2I3n^)V@>4-6FjPHzZ;{w9RHCq$2A@ z*P@eiwq~gm8hQ_~aAP+t3b3Y|96@Hv%MlW!+k6tyy?ddhfaONcmg$}iX0t>~qfItg z%Ca0ls~E5$2+~nJ`pb?&jT}z^Fq0nvDn52YX~@HzxNSz0_0*#oIRsmSsXPKuj#C?Y zrr1BGb3lD%=R=4Sxoi#+b!HKuUT!We8GhGB8(3m0PO^NzVg@;;*c2?Ri1~%^z{&~$ zBUUK=O_-unojxbSAjm_QB)_T+;7$jCOnoze^kT53NHv=HZ1Pi#+uqEXSPe3aSrQfvUThY>G#jp@$ znK*X15NGoZ;{o7>LkFM$Itywg2!QrBC~cFz>vR8en21*h(0SU1x9cMw_K&PCF(2aG zshYnR6S09-%XhNgk{Vk%uI{+XjK5#15d>?)!lSiXwOdvQc~*KkX5hLrUF> zi0c$n7^@jm{Dz7S*)(KX53_Fogp%#vxK|?}?HS5};(?;0sDv5T&81uU=sx20J5WD5?AvI`L2@)m*Rvmha1v5umF5a{z^pE)nD(e@s$r8idR?v3XR3 zz*m0a5WwVoJO?OgRL&wwHnDdAxMtpj>wyUzX)i3Uj|hUG7a28Ljva*Hqlw*hsqH6l{H8Bcf|c9^#8_0eiX z=K8tV+1b+G*#e7xJOnsQXQ(L=%{D20sRpj81aZd>=~_I(p#o3PAvJN3--7t}Hwe2$ zPO>>5I*Op(f?$ohy1-+UKJo_wIP@HVLN2u+!|3vpgHyL`zvjrIvwgXD& z)#5?Yi(((P6iD4TiA5ET;5Q-Ec3zmckwbE+ViP7*PB-viwRd}wDb%!cHq`ppgYgm* zy?@wZPITc(_8Dv;Xz9&xiK;n;#bnyyw-m5;t{rXwGUeOTr_X_Bk3g^4u&62*{Dwd% zX^%u7<`2MV)oo#DX`;<^DjB*9NQ6xPX^mRC^l0YfMJ|SIPy@d?WRleyJa71r7j~;7 zq$X`T%s>Bo#s%0T1TAW1Fcg?CS6#Le0Y~oCDHqi0U9Hct^_e1G({=P?` z*x?eAJZ^k*b6U>BOuGYV{=0jo*uTeyz652eUqJsUp105kxwN3vnYKGbY2pc~aeHWn zJZXS=A&UWvvVZhx3V^&gLP|!_{3zljVEqRR6L^hw$I9OSV`2B$;v7~lbaTrwca6l;n_HTc8xWByJbx=K93YGVvU z;O{Yjc(_4ar(s&4+LN6hfJ_J_gh%>7Dj0k>JbrT=XtWJ#Uyc|Sus%7chh%5^9K_Q% zMnj(?gf4|mf0N;^W{lwTW?;Uk;EzT$@o*AbWB+Z2aA-JNS>;~9&0dsU-V6bhHV%1o z0d_M^Kz^GF9C2Xu8xNZOX;x_f9>OSgWZ?wqHV+A6$efInkWlP{K$d%uSmwt8gL(oY z$W#jJLKK#eO%aILQC{08IcYZ6EIEb>H*#ZF9 zhhKoJ`1Obl0YPcww>1C=`^oF&0LlZN+t`G=%-26HHWhnA#R2Ms+qT(%F{WQ&_f2p>yy}=6r!?G>@7lXce8UTB{|59yZsFgq*sQv(D z9%5DOHvA7mTKJ}!_zE7Pc*IBkBqDg2HVGx%V}l+Vgc8rcuOcLUp#}I&GXQp&VJU-= zehRS2Ir)PyzKfZ4+P?wr;Re(zWCj#!M9sfpgj=xUee{VA;Uw=A%~yON>>$xfD2SGW z*!G1VF+hmuw*N=3dkzTe{6%Ttpy|$eLStl+ijc7o^Znz?wAM8@5(M#3g%Zv7o%qlk zvJ?RYIQ$)cRPI>F81fWxaP=M-%5_QuIO@$WFnAKnqvADa>hiwqBR^KW~| z?f7v~oQCouxHI7pV7yozs03^q2X29AybTv%H$8&g4{Nz?M zVh6;QO;Zt$$aU*|4M8D|93bwc&6Q{INFc()72{8BYHCY?Tp#=%zR)K2xRE6U{ zsDy_rdtcKSV2q}62s*|u4M_bv&=XLO4ucZnD`?0oN5e7kt}5ja@c$@$PsRefubOZi zgST@4CJx>w|C@+zr@jH=nOLap38e#|KOo@04dD&7!UKz{^uohVKSmz~=ofQmV1s|g zh+dhbkF+Q2C3Irt&-oQzww0lvFb{pr^PV(Z10+QKLC4p_SzE*}*kU1u;UD?X3|uGD zAn(ET6`*pE$1%kdoC#tZgc6Cwqck<>-^D_?`?K&nz`kD$vW)AdUje#ft^|(oj|hk~ zqP2v(!37zN{n8fz*h%3)0L>FPOiofW#3Q#ZY=|)=%Ja>DL=q2Q)N z!FLDwDt@@{E~Z!r{3ha+TY&5p7B(!q7<}=}8TfDGzcaz-8WW^&MnLJ)h$#PTY370#5>p{m-unh?PDs4g_ppO#vq4Eta?R zb%r%Et>2#x?z~$?i~;!E1c)1Q2rN>F{Y*={Ip|vf^9+(Lklcw7`t;2&Uw+;$;vq;V zKVQI-+Dzb);&erA$B_Y@p3J80h==$0vVGx$+m zn*^B6B!z4ph5eSrMor`bHuqO2_!Gcb592|hFwz(L!xWK3^IyhjuzAl%)jH!r`|Byd zL)dG$MVNLZ)&D^S*iAQ6x|xp0^r+^*djR1;5o=EK}juMTW%32_P4B)W+>N z_&B*EnSZP!^ zZ9yW_j>(qRNANKGl_-f^Hp3k0jh6vHwB82Zv5;#SN_Z^|x|HF@*N3hC(U%xE*dPyi z94ZewZvmF@4ejIo3W<6ssr(fJQQC%^50g5uvl?U6h6h-HT%m{`&cK!4PA*&1<>w*v zj#8X-TOgsdKrU%O*aDi*lw;wzHn#1b`N9Z3Q*}}aceC9Vx%wfqLmdzHMDC3n>mo=G zANUXPV+r>;h~hVv1Ab$8^p6dEYrvZ}Y=B$0Uqc>Yo`21Le?*Mm=oC6w3ie;C-=h%7 zBXkOHo;Lp)k!?M1Q&E8ZCkOr8V9OK!2mcL_Z5^QB&_CQid;E_U5$XPS*8fea3Yjg@M-V6gO+I>JFV_!^_`*(FB0t<3O=I58)g?SEGBh5N?BL?)2*@?bjK+ z3q=YwB%1ntdq){2k7!YWo*+S)2XZ7YE(2Q`Jmk=3X37m0vl?I^fn@fYszgynR7w|# z7Me&5pvi*YqSna>N?vi&6c~BnB*&|6k(9+CY{jSV_ypxnJi?DCM}tF02c+-9tYOFl z&lkq~1(4q(j_9~=P7xPYLk1Pt7zFw%@Q~FJ^#qo7glTZ;U&j-RvsLB4Jh~(G=X=o3u-%d`w>q9uReV%}2Bm-e-b62MT>+!4{B(%W;NprqFyhjF$sE`}O z(LjWw4Xxr~tNBBuYd#jLpcyl$yNPfV zbN)MhEFK`N=`X+om>x7k7Jed~0+@u=YUH;Bc*r?ObxWSfPeBbpc?F<6To8_^cI`rR zI>9f3XF~yrLNlU%;hzX7LPp_A#uGyKn8L0EBf?^W9ZgfB8)ugL5@8sr+V8--R-~`v zp`tv1`qX?c94t{OyraqVoqC^{h^WBs#6%YVDFTZWl;s6@{&0kQ@l6h3l6~MvkV^pS z^$p9#DFg?f?qhcT4lE$ZVHqpV1aZ{F7jZ!PGz|-gHj^u2Z8Z_;m4h%F)bwbOIs~$$ z_Xm`l;nHU|Z+ukVR8zcIr_{086kw%P+mt&S2^rL#)3A}m%oHH{BdcHrcmhYD#~`F8 zfJ}|pdw)w8D-<#HD>;BRy8&+P9}Pg`op_`>NHAF-iL|j(H~Jl{(Pwlf;VWj-i5!6X zvw_&#DX4{nCR{I2idkNWB>VIu0P~ri(B-g*{1?&Z5PHz&f#|-Q9s_Rh@)@y+NdH3` zcvI{qD0Y*2;8Y_J4Rc=oA2SG`*f-KDqEqs}H{ksU^aa43`Co!xCYv`=l+_jA=TfM) zdYk_>gHyWnI~QW)Z=Vd_k=^}ytLa}2wl66VrMmXucbNXu3VmtMpW=V;M4MNg|4?l} zD7OEp8rcin^i8$t6N-2%wY zZCDdw)6u&iNd9^_3RV=GFg@BK5@}7m{&B$*$royruz(cHC=hM~@p`{RGcxEgbX(7e zMHt4r7;0EClM_0Z>%jq`qX0#Yx-ljB9yZ1zPXaXN(q90P+9N=AwpscMs*48!Va(ib z-3*KvZ=?fy7DB(Tt1&$rD!JLG!}WmT<-W>hI9MX=k?;jzzY!mZrJQmG?gFyry~nZ8 zxa3H9RSDGup&60qlV<9x0NCK4jR4gAI-n;{q#29!o_$JClkQW<;m*bZ))JcaT`)iH z{`3Rz@=%_f@5+LDN!yitbv&S-^FihJ!e4D3(PWeZTE^BdKk$UsnC^D{lk4B$0iDNj zg>t}5H;o=!2K=wSzFr?CSb%`c2aAgUR33SD-1Iv9j?&}WP&9Bt6Rd{0tjA9gY&gGT z^&4&A3c+uraLGb$F!rzG2pXy|n**?S7#fi^lL|>@{LF<%WDuD4;0__l@F6Qs+Ovjw z`wfpMfMRCzr+S2CMl?)c7fCKwK?zb($ai`DJ3NphhU*SUFRi{Zt5`gSsNmc1hkm3I zLOzeJiPXIg8pk6tfrxgY^BmxLJSe{ubPvA?!c)!HOvC^KV2tZF1c+3jAwpz{M5cru z;owyyH!yli@bdDx0ln*h49*pCBOZbR8jy(K{XV**>7dUT@4>>&#S=8lj69EHF;#^; zd?-mkakiNVi%bd<^qQ&^K)sG-CdQ+A_FyT(H=iMNl+6==T<=NQUX27eShb^o4^0@q=m|?XM9=#E%fKWSfJi(P0Pt(5 zaILm2L0F+`q$H5TpU*Sok|->4+OZnQZF3I-%}E02qD^53fgHBOa(i8-!k_DFM)mC%$(bYTWPy z3>HpPjCX;2z!Z1oHsl{S1Wnj(ogK%cUiqNv`T#x8hWU{B^xQz75 z3k%r^Cc=u6UcD5`?yCt1v4&Xc{mYKwWw>VJ4)TPp!$f;16#z0MK2fFL@}WKK30>XF zwpAQ<0|}iA9R>5Wg`~=uOcRjAWA<<0fD8}ABI!PM)EQ4=!$ctSNz!{$6HD|6Ud|4X zaS!A8Agebnfg_wp*cs0eJOCH>2`DMy)zF6ExWg14#uq|6=%Mh}ga|6?YiShtBlrWZ z%_sx-Xd+G64Do)Sj_j-VOVK<;1*jKz7=WSiW=p6n*@K101Ik3$YA6y&jgbd7hvy4% z>kWtyGY}S@f=y(zBG%d%#cwor^Bimhl|T1Kg!dl7D6d5A?c{yRd+&31>Nx2q?c?JB9_A z_W4kS;72Grbo1Afm_;Q#AgOGT=mnV0PU)a2!10+T>=X~&K~B+pz4HKW+D_4#9pB3E zfTLV67NDCPM0r_rC6?F1TDSy%O-sBzV~o54e=X@|wf}O_(_8^#UZqDZbdbhzDS_w-tv> zhvY{@8$g}!K`Bq*V-YWb9_o|^YZMWl>j%f`2N=T@f$Jwg2;czt4Q5(8M*bWev!a|6!=g4{Hehv*ci45AqE?Z?!p8WZHvo>=+CiP?ne#;V|=q0!L z4QA7c|3Uvx;+c&*3E@)mhaC!yfqy|pxRYS$AU^+x?!Q=}e?XMl7J#zZ;PMESmJ6&3 zHV|AmvaGveyLjMAMs8ra6i`52z{B_jm>`P~F%K+;P{?BB!hbO1N&s{stZjia7LgI^ z@`rJ@8ooVZII)h15|ZOUnI_l~OpS#KH2l*g^v2Z!oLXGC8^Qyu<`in9%%hrq7 z1F6@GBl0jy_>z~=K`|HD$L`pe85fu3f?Pl|IF(xl55;jFbRybDw4TsNcHJBwXn_YO zAF+SJgVB!%58we1N6yB6-^FK@@Ex?Wmvhn+kW4gpz`wRBUJO+BBs4?~-%UHwhX+(Y zl<)&{SU}x~&#(da)$80_i4iw9+)T)pXwyoB?HxmkBuEOyHX#KvxTk3-uwv_~AH zuq_Z65;_v!e-OFwRKzj=Ae00GZ4CgOgQ&<~vrOCa>}0Q{xnY9oxCoH}V62Lme5 z%eUb>`g1EwXL!}eaGHrD^B@q_P0lIQ=}*3IXoZvEEuO^&P~bN-Qe*PXnBfJ~W5fqq z;Z|&pgz9sQ95}rWB;IWr63nTuqFn%WQ!nYIryI@Ttpo?1%ZI2J(4KIi*(bdPGqM(% z0E|D@z5sAv^rQ~s+3Fa+*N=c5C$SR!fcj@MX?y`F*=*B6CuRc*O^(37^OB+pY;3Fn zhKL3_3@Vbi8)0enYhw2AQv^tG09{T`(%+weObdxQECK3%*%d6HfKGz(f1Vz*PY$Nk zX30m03MvsV@$*F$!=!~u;1|IoAPgS@7=AI^T=yc>*Wao^x6tF!Z zgb~B1Zx9n6c7oeDMq3zC6GrkUu=&v6kjQTq;T(DXmO)QlUSj|jf~ai&dqJO?x78;< zx~#4tBC76|_;4|N_y%DP8eRxVM0nZLgyq_RQR73LnOKBBu12G~fx(j2O#B0kb_{qx z^E_v&8NpEl(Ma>4kFKj&z^Xcn1+t$bSD}q4G(Y9Uc^5iq4v*5Y4pMRGr0Sh`;D3_+ z79NPV9fQB&pQ>kF^(_q?BxO2@Z2ZHoja3h}Q0kDS-9^uiq_`qX1OnB7& zVi;U8WE+Wt)efrOe#GljY-|!L63IL8(3Ot?>**bSDVLdF>d*rtyR%7o zHTL+HzLzY!Ow?*+WQ{K;=S*+@-8kwX_yv?B=NmjyY(npI2Ju?Ipi$y+bq~GA8Dujs z-q(SpR*K;iHF7U=q#5M&+ThXp!| z!IwXHH|6o9B=Z5k6M(r}DKQZi?{PdV_IeJ)<}AFL zH+;VmyHvj3T$b3Tm>qpk^)&6CFc_qRaP{*tds)lV=U`c48JP zNiFqW?me84OHq12kKeGpOHaEqfV=-j|D=~_eUzwMH^U`E522Z#UOUy>c8lwBRnD7z z7&Gy7=wB3_>$Y!w8vOXDB`=u=xhg|)uKZa;0aCs9Qr*^Cmu+xlSID^YDjuBXp4%tV z@Z_2#KKL94yDF+CdE=Ugm~4$YuWHVD>$2FHJ7Th?DF?{oMjz^)xizHOb1SwlLRW?2 zG0qHQ3tcr~IQA`PLCV~f}IY1$A(3CsvhXp5dY-*sQR?r>hVpJ59|LML~DEk4Zt?kAyk7Gt|66px{|`C22j~yPk)4*`pmhGUa&dQ#iEO zplLTIi0Q;wzYs@iSG(Qdsn?H90o9fgN?QP6MQ5H)%I($1Uwo?Vmkv(;5W z?zv|q^6n06FogB_N!!Wum%igRyKb7+Wj8BvJ}Tbf#$uQ@r^<_6#x4&}l&A`K>US8z zm}S)FA7tV?FBK#htIm6Qt;&zl_4uAd5rfCcs?%oQr2Xh!1VeT;CU$d59pR5~E%aR# z2;U)n{@lpwlFyvh#D1&Epd}sV7B0ax3YU3FO~E&8F&9qOKaF8b*Hlz#n7U(dGidMb z_fN(1znm&?GW*8$AvYI2ILHc5;h=GSekYE_*vS4dv8h3)xtv)Y&XeAUw6R3a`S@{? zeqB-FnSS|oF-N*sV-F85zcDl4g8mCB5@c7ncV>LCvWR~f|4n(NL)|p)(5}6c@-c(U z!jWGN_)N7Ab@u&m)?y}WbC-NMZJ|?MZlHOz;dSG_$Fbhh zw`I0$){U4ESJ6Ylq**4Y`l`$4j_uyTIsJ-rDk!#IQJC&Rv~9XaYCD++FTc^Oqyzhv zLpp{*EBi8!-`>AtPr~f;n^(ssw41K$CF9j;Snin-35zLckC5)*J^V#IIVpvygf7QL zh4rNHRZL=6Ul-f(7nfz$u{G?fm#9XLlc&SJyKa%bs(wdJOm2HBFpH9ZNG48U35N-; zq%c!Jr0}}6!QQ%w3_Wy47;dqys7h)*-awn2SeplxdHF=o{%>xf^ejm_GLKG7aGXyX zK0ztz+-I?4l~h0IHd+B2J!qgCLee3|z+e~EtO8|JB~xoM-M4~L)My)>j=?9Dn#UrB{D#&qDxt2=1@Il4tkM_Dzi+mcDtD%4A zX}%^Byfe{ME@!AyH8C%xpddcd$Y;W`d$&Y1TGTfp*3^-c!@5v5kj#5eCUY*1Ro9=fFX`xd>6CaP>Vl(K?Om0Tfb-VD z*~~oVp{4iHdd~j&gB3w4sA-01OI-f>Zx6p@Q!j$+@=gS0(%!}5e z9NN^Sdx~;Ih>4|Xq{kmW_Np)U#8q6oguRz3YpIBH|1^5^X`8D4b-UCc1I~88L)Q<* zDGc!xB<84a(9GN#ZWa~o+@oh;Uq7z>d#EZ)+I=}NeqQ;}&#eNO*Q zr6x~E*vT$8W{;f#O)q;b7^az`@P@gna_5iOJVS|xv02;Iaq~O7F0XRF=@OY5)B5_d z&@cKplV5>I*oPA?*EvzHCyB0?CmL&;G>Td z*C2i2Ro$tAYNtIiy^(9zS5pH}Cmsj!tuX0ZSE%y*7{EA}zdw+QU6BeXtaPUr9lj&r zcBS-{jC5E06{0$hxJzfbegS)z*weYkEopBQJy*#~%vF^s%f)o-Tw%%`4w?IMSYxeu z&Pg8gUFK(2@tq?MstTWS?tf;hw*;??YVfOfNVrhi-)cAH?Gtq>-1xv zc*T1h)I4mvyZS_3J%~>j8b-#Y2=r3wHy%10PHA_PaR>c3{Vx4)W44kPG9C);k@=+f zddw4p=OCH0ed@$}Gn6>$D4n_n`+jcMp{99w@ z#Y~J7a-&6wtpct!YP`IH+_`;es(Tbr3yy)Wa};U1L@7KT^4dfdBp$|$x%zPL6SKXS z%X4itTQ~69l6do{@?{%M8Ini~ldyTo=F|ya^;*T@)$Fqs`)2u!7{CRO1)2B!qB|vA zv?eMQt_h1r`>qRmn$7lF^p0t#))(?KAH);S=bQuDP= zKsvamz5&g}7qUH>e*w6BhZ6T6yK?RHgv02hQDMZpoV?)`hoYw+3Ot>R-dlb? zojh7wCqqt>@UAfI#_42^mRWB*ixU%$vi@K6CqK+x!c6cU9DDktNdKpFi)c^iEQg@F zT9VdY*9kLOQqlSRR4M-Dz85!(gLy(sU3+p2ZiT0Ow+z-H>bamHIrLBf^Sn6oUe6Qm z19aY`t$tEmJ7@&jjNZ~tc%BcvFaHa4b^HQr!nN~tr-^sSB;cm(b~s!6%{nSf4+UIT zTkdHnQtV{=rYf9)CD)dpHQ=!UwL>?VlN(aFg=C)FFbe=7J#>Ew@4nPJ>iOL=W_NwA zWzB@YA3YGoS1I-7+*kWC%UeD2;zk8d9y^VS0-L*p{f_eP*61{_=uGx08T>|k`<=4< ze$_#t@tpy|pIw~A4>~{LwxKEXzO;O;->O}b$Mp5Xhd)R%LVf`$;iF?O$+*t#X;uCX zTkRFliDUBm*|cMV_-~^MbVl#wOSBc6_&B8WR_+Vm{b0lCnEq= z^esh&E%I^NDH-jh;CznVyn-kmAce|}i%~Ncu3iqL*;O#co6@Q#*LwE6hx*=n!_Ogh zHm$}b!pzHUujf{LRu4a`7Ty(dfKE4rXQk|q1U#M(@4DUI{0s_J6vC5Sd3W4r+i$&o zP#>z7!Q0z*AR&`3sf@u`OD;2*rZV=x%c9iPN3Jy{6)J+-qD0r=*9&m)(xyB)n9VV&y(Yf4MELEFocR*kKTU zbyC5y6*DarV|Ynp;#*rt@FCPeH*T&QoH00Uz@{lTn%;)_s+@d{a&c6Mf?11*D_<+n zy7Qc4w#x3quSOy+YI3dcguf?0B(RYLvP9p8zdvVl4!hKvk?s3xOg7su#iW=e;#*Ow z(;3cZ=+rCNk^0fA-TigSEdxs`73mqx_h;02xG5G#=rlZt`j*2S*59)Q^1r-VLs~@h zDX}>;SJttC;zq*lZ_ydfa;Yu#uO!5xQqU>V7iLC{uRpGkHLLG#YkE+oFUq}m-RTt7 z3G-Ck!jGBJtDP-%ik-ay#d3900&*8yW7YK@vhS=?6|nbG#^Y&bI4c+YJ_?t?&k6$p-L*u zD2{x&PLwwqH((d5s%ofo=n#kW*(*gg`*MXolK6#GaD}9n<`Lt=za5s!PRYx+vp2iK zus(4>GQoC2DL3M7r8|w~a)*f1sgi`%i@Mt6S_V9*bFvBd7``eLHl)SK?T>ld_a)Dk z&G<$Q&FIMF!2`_94229@ZP|{y`dg`w#4V^4y#q<`7xw-%c;qCIBX|6+*TO@MR+atm zK^*$!uUwX9#@u3AD0+(KY(Lby_siOxS+--UUuWGr`=&f2fP_7lo&L^p8*PGaFWi@o zN$ww6WJ|4L_)_C{UOg)1bA7|NW%){?wQc)4n9YZe1-85@GaT|VjMuMiaec{3ZHgb? zo3H9l^6qx8vY?<&>BbRs&UWIeeYMP6Pb;r+wr{wFIU|q0LHWMsCnJ~FZ(3||OS7Wc zU8f{NuQ2N2TaOlAzneDK_<3#mkolo~yPOO2PepXbb+>|Q%?&Pl%h8T#?y({L@q!=^t znm59xq!J15?KxBSvAus;w-EPIDBf?O;Vttc^_-d7#!y8=G*_PD%niw=Q082*UAe9l zT5a?OE=z@cX~uWN9EFsFtqy&x@48H7CX%r1#&f2`!j&&wEAw$eq~#%S*DyGCBAdgJ zruA};zFX&Q!9j-|8ukZy+xDhKj(v;R-x^giZs4kU zmK+u?k9oV=X}!KMuZJ=`Ye>FV96c;M$7eC_!*<>;L4MrhsMIf@aQ=-9L(52L{jL6X z?ZjN1dX-HVAmColLq}Rov3yBH{>vuOrQl3M+Ep+|%$~9qyn}U*xG3=SunO*s( z1`-~+6_^h8U65%l&|`0u9-s=w1s&p&d64|0Fd%V#z|@vhA#`QGS%%JdhW0d%)dy=8 z-2kqbDfe%}(Xn1JMoF)91aMO-xz98!V*B<|d%i4Sb!!{YlX$De#q_%Iz?Fckar#}M zGZvk{K%^6UedlK_M-$riTs_*Z6P0C0*7QRC)N08^X~zy`evitVo=iCJFT@*oN};^4 z1PJ+g%efd;a!N-~o7UIJ3|t5{R6nd{Td1u)M0d#qUK6pZMI^_m$u90rO&a-1t><_! zMO)?l$k5f}xfWG3Qe)1YK6WLkD$Jf#igNqUan&kF@UNs)#f;g7) z`CE1#QnQl88F^MzGurp|E1au;y4JJDPkXwHI=johL_}*(!Tj)}*HnHFZQ*((SCojV zxLHKpgzMUNDifx929~M?1(%XXE_-xp^lx<8KlQ>=9$C{!ZZV;A@s@bXUve?M9q~YvBCWUva((s+@7}<2OG+m1qQR)HC~!>cQ7fE4;-WY=^6Ef^A{NNJ$ZYa z`U;m9^^MF~9UQQ5K2wm$rs?=hLqS$t;r_Vw~46b^(bMfxC4hq(#-cPLWNuFmm*5Nrz(sBH0nCbxA z$9{MHg!bEu`so(@YZ@L?>am5F8(rP}$#x$Gx)Ea8;vP`sDTQq3f~nM_qmzS*fky1cEgLkIkKZ9Hkni`k1?n%(R{7Dv1TR zO|`ZLImYNblP@=a&2Z57bf)udM|eXAZ|OKxo+Fn{f8jdQd0oOBIDORoz~oHA|5G^Gvr;yxwv<|?C$KYFcb+LQNHid-8N7<|Fn77 z@Eo(P_4rt*?wtHU%cG+fZkG*8ZVUB)yLXG%&HdS)CyG}N6MGJll@#Bk(|jt$A;rM_ z%-X&K=V|be)_mx3VX3Hr+gQ`!Xsp0um4Z7NuH>n7A6vF*V{~-UGui9atz(uaujgNt z8xt8n=V=^LU!!{Qbi8NWYZ9*8f;deBt;f6Yu4&gE?^Y+dE-mZ&Zq7d4Li0fusTJRC z3H;k9gN-XaS@aU9BVGMIRVS_$j3*!U=gBKf#65`~b&N;~$M=kC*m-LI43ew)V)IVn zJ#!z;gcV0pW3F1rW1*9jO#8!6|G4Zlc1U!0QDU-exLP3}p3*zx_N0J=`w@Zl3ab>? z50my;vf3>J#u@Qcnq{QN`I?%=qT0nAjyO~MNw~3DpRO>4zf{LWBs7j@8NbBPEseHu&BlQy6mT@B#JiS7WvZEFBz6`=*aU$xSh{9 z!WC*Af#H=+wMrMsh(;f4)!CVTr0^Gz=*ekfxL>>PSPR{r_|?MpAJ3dQ8q&^Y><;YU zKr^A(I<)K(1cJVhbJ1V);IXkQGKg?LF0y}=7E!Z*kY>siI&hX<#o!d54xPWV`=lVX}7s;<(D<$D+y%l!-=i>7xibVol34Y)?l! z)P%?RUYu8$AgWY$nct5g`L23nRdY{j$_FEb^LhDMcEn9Yvz7f#Ix}?A$25cF`x>4Z z9OQM;6gWz9NZhl#wO+A3kwJQR&ir#l??p$xO6i2arjO3g7YtNNb*a-sm z&RYIcrC#Op$@E9`+}|nq`01vvp1!tQi}ZObT4X@Cy4N+ecii=X06>)_lJUevoM;u1 z41U0cnyY-LRFPE=>XcU>-^Uh}%O}UPG z!?(wiqRN)tK1GjlM@x0p^EwRn4mV2FFjaTl*r7LfPtn3IuO%H%%2l}@m7AL$5p$B8 ztNzA--8oea+uZX<)fkuLb~o%Sx_Nrf8T&~Avh~E&YiwaJyQ^|#I}B&p%|E9+i8E9` z7RASVkSZ*4WzU3>TS;AI;Sf3NS?c|Q%++k)j{AzK&ap9)XHf7;cw|!EfA7FcEt@*7 zii^ZEB*y`1qo`GH%}+z=;!oM%EoOPoJW(FHElykVY;b>f z^yxgL@y9Ap>_E@?9lBk#)E=|bWmt83jghU@`bMs?a%sP{da_k|?#>^=5p!8SN#w;A zwu0s_=|HACcuxnaF|34T?(ytCG60`{>d2D4qsBjn|6J*W3#rok^y4@`ff0>YQ+zy=-}jFjxh?ah#zlM6NGzB|aXCJe ztyv<8vDkaiJ@J9?tBLjvY^ZU4FelVT zAN#y^&DXeJ0y@nOZtDltUb1)go3gANnso}2v0vHAzo29hh8r^Sea?Nkgnea~k)HQ) zE@6wh+UixCcc#Ui?p1HTO)f1kxk;d2z6c-EI|XF8YKYE@ugGQo#C2eC5pgOtw)u0E ztfoEm_9U_*BQ5*vqAp0~!~Z)CF)Ez9p$1R<<2_03`uve1{C*!Nl(k72Jb3Q(o(`ju zqRK2b`C7$k>PKTZeA(ZeJK6B?$1`@`Q&FLqPVT8-H+>gL$k7FN4N zM!JehhNtrz&Z_%HrRLqLaJHVwaDBBubSYdRI+vwb*FxjMzVPUetk`#Al zEWWAW#1#JmPWK)s55T<~ppvReCS2 zhs$M{Gk6cglgL(}~ouN|yMG06pe7rtw;s81(}80$`jNszM~>9?N0w3DK8KFK|1 z)H|If*Q9kf_G=){$|+G`>cK&)AeP;a}zJiI2B{`J!UU8#&WdCQA;nXfc8HFqU~wlUYR$~UFg{q171 zc3z?V5TKnzuV;JCD+20Y(2@yV~>~Jrw5#Qck-5(66NZtp(#Mq`XpN+kZwyO){8 z3<4sn!ZCp!asu@k^mo&OubR*%`M!@Sy|nZuq*C7darrJEyV4jxF{5}I7RN#5u2Zt! ziPNe{0TF%Y6C&{^vM$6qaoyK?7J2^2nn5D=nRwyC{J|DI?J%bSWs~AdDMuLHvH5Wt z7Vyn!KyK}7=8UiXdx{Y&a}$|a7smT^W6$M9bF~#2gq<8}R>D-U({(yh{-!?n=q@d) zo^W!YqYl)xjQR4+DL2htN|%>=5&O=1PhexBbq5{IYIJb7S*tEf&};6>N8UbC-?Zmi z3N-?^IP}Wb3XqyioFWj(63VxEviEy=Oq#)RFF)S`*vXXKxI?)mu1sI=)OZ z5xG0T7{aP|CcR$GSk1C<A-F^tUee0A z4jm@9FP?9r2AaHf7~E=;qKXZtW58N0(5V+?=1j^L8kW4Gf-f){hle>tPk1?=Fig(R zOkux#>scPD><8q_pRAJ^`!8^b>b4i|@lH!A|2(s-;j5?a$k*-nre~Y5OyFLpl-d_z z|L)~DX}plHkAL86%h#-tv$WBn3n@$j0_F`dbWGA0GwwG19J_3kr}sYbL5q4!;OE+* zvx0`6vaZqQOs)m|&o$Zob_wp@<-`~L^oB*CM6}u z?bt^q7jd`pj*E*#6 z$<0~3+RWv(rNc@!;Rh&vN&4P3%7bCyL!S~9f;*ocvDaI7Def}hi#cTJc$B{KkkXpl zSKqvN>tfXPY#`lmV(iFOTs->pdD=#*57w^c!dmrBN+qAsed+dHhcQKW-DkV{rye%^ zpvlunx1X4&)A{ z;%dTKQlDmA$k*$;`7>_0|6yIXhT>3LdHC~^GF(OYvr*q0x8KN((B|nKN;Hr z(gtE#zH3A)S|MvALHilaEMLu29(pLjGHFRee6gf&k|nS)-MWK;dEHGeUi(I8HNQzr zFt0g<{KfDAjnq(!^j0jj2+fL6^?~WLgZx4DOBdu=`Uj)puggZ>P2f8hcS!z#}s``d<_Y29t-`l>&Y zg{t%0t)7<(%w)S3qkYdsy6$uwdDu}e(xIz-Ui+-+1;3sZ*&_~?)nDBAOtdZsb&G0IjG8w~{(RKHmuNfm>3Z-$(rNK5lml&nJtIfr?(Otiy6rdvyGrv#)>4Grm-eW5;hq}8^5 z=^qS!wd{4;MPuDxqTlK|PeU;O0OGQR`^g5+NFZJEQnt_TD$iY&jO@fD`j(nm=`4FV zuvR#r*2`^et0ibsPX!8l9hS=?X3=6E6%|%0QNbgLw3b5&C1Q;Xx70fCD--_1MLn2( znI?&e28#*FZ{9hFWA4DJ;#I&Te|-|rhZB;tg$@K(&q<&j&SAn&6lSy6WwV`_g(uXp zTRnH`zdBd^yU;hAC{2#8J>2w?a0ErCQJV2qe>RAf{!W?9*ElZ|JH6F!M zl`UZiNm7((0K}VJxf&$W@D>4zcRQ;808Wj^5X(z-!V-i6r5*rUV;HG~#rU=2>dL9W zY#oog3hTtDh)MqXh30!IC6-5+oUfm;TaPCZ5h|HHnzqTwXc3C^m(pS4a#F$#9Emv} z!?&^*ZFw^Vqta~u0CA{I-sk3zt6)}0_-6Jf%S(OaGTL&MwFIPbCeqjxOQp<0H-kw4 zo+oM2UkQhgPgdGZTZbIb@7vi4JG|7@gT+}tJv*)jS#iUH5>#xZ6)33ZB-Hy9xiBIs zdC#a-5Xmd};53tH;VqR!MVeK#9FfIX3n@ivD^Vp%H6-mlkV4CDC1Vtti!|b1X$~jJ zSPB|xqI8$~VVWLXgZ?X@*nYi|kVJFR(1Lo+9Gx}h zdov6VTFS=*bC5QiuR&CewKHGMhw2pCxPRdXh5@%$8hM2|pVM zMQuKwkR7ZhZBlV!*j?Yxrv7~qeQ$iemgYN*SXoM#>T)v?5a{! zLQ)AQFapF=F&l{5qSe;r=?Ip>pkS6zKAJno=ptLVv+7SmK2tB6H<2F%#6ZAvhy;$~veQmV zB++$L1Mk4EhvFjBPE0QZ1y>G+qnhH%sIQTC zZ8SO0eCJoxo}5%1G;<}GxOSgt;)hTaEi~l9@5kjT9S*>{cCxCcJ~T5v02rMYn-`?}ILvb8pUzw4sEvkq<*iFyuq zPdL8ehUQ9&R0zabw*!a@8aJBf5$hOQlsk?VCCEsGJkjeX>MaQt+-y2tYXgYjcxbO1 z*>eQ9v9x_o;sBFCGuerGS6SS{(XtyuX`&JmJz57FL#fGHLWQ4~sU2pCQ1o{0i0Wh2kYsy~=!)s>Ez3fm1e!Ho!tih@zh;zNk<8Y%q4?K#v$ zKs9eGA-{BPc3tL|U56V3QKO1)B|&2Yxh2yFCGi<)&f2prJZ!`5#Il!KP*N44k9(h( zKIX!+PVK^kDa8b&RGULWC4dxjua6BROd4JpNzA|RWhF>aN`(mA+>lED0QiL2Y2gmp z`m6mKY;82TH+pSVL`zyjr}G&5wS6(P(~=BVDVcXS6hG80G`W|8QB_3CT~lN8864t% zmcvq3lnUw+sO3v$knw5!wSu9=I2$2pakRLF1tCBXM$w?X6A!bbPpu}7JNHQMKk;4D z4DaQW-J@|CXer#X`HQmms-ClF%0W2V7A=^@L#(c&Xxa}>G45gw=XRw8j{U*`Q2+{) zXjowmik~dvbkT6Z^i+9c4_$~L(2V19+__)bH%ea)Q%4lvI_JE+`jqPL$Yu;W{LTU$ zK?y5cw8>Zl_lA2qP^Xrr(U5|oQkvF-hN5xO0jXS>u!@%$7ghJr{!gtM3-vJP=54_s z^&!($d&hLvhRnOpBi1p|zMPkoH!Lh$&~FD>T@KN(+FdtdI0O^Tz33BfvL-84$C9ji)8hXbB&4{MWCY@m_fA^!m8VXqooxPh)73b z9W+BoD>jLUaxN*@hfP-M%GJ7?S#5bj$xu>37#$Q?>!k4;m>r7vGFTMVPUTAwR(PJVR>EkWwSwU)nmfA9vRanS*)-Fv`g5nRjUm^V*b z_YWH(X>kc!6cm*Tf(=0(8}%^eC9T0A_2Ly(d!u$kJCLk{fzd`_jnIXywS}Q-N`?g{ zhS0Z)C8{O#hm*$zS{io)5kOt$)xpfxN|L07B!W1DX~W#~(etqXw;(Z-3 z*z?6m_i#_p4M^jm16R8@rBcF}NWxbLPGw?Rvu+{g(&I}?(4kbRCZO~$Jj3l7>+4CY zO`d7K;r{?N-LUTErzH79Lm7fMTTi;dt4^&4_f$ocqNNom)RR(oDpsT@DI|qj8aXa? zU7}UTVbVsUE){%6eZ?o2u4_4ifJH%lH*ugqZH*;kPcyv z{H>}u+P0{*MXRf^5VjRmoZCg1i9_k?nk#BgN+nqk&L7>}JeSJ+diDsFrmaD?UH&Wv zr^@uxA{GKvg=boe?hjDRom>joc15QPYp%_<1SnKt;d#)~J!cD4lT*EFZBuHSROnNV zuoP0Nq>x3Sqr$q6WqpDAG~2M!ScSnO}-sr(>3yIU4OpxSYf5m8sv!r`or| zImD{1GOl61Sw|QZHHvxouSB92M+^_OKBxmTFZ*cJJ^cp6RktVt&GR4juvU= z-cC{te@_fsy!1gM$r*;=X{EmM8f_&@T7puZB-&K~iCm@<1-~VRlHYj)In<}KAt;c? zN0I?yr71PqtP(zCSxQpWRH90hYDv`22fzh;ESR7g>t|51)~6L!Z-OggDWVwbZMe3T zl!Xv&4H}ndmC-Bu8%Dp)GeCOk%r_4wQoppXj4G6xw+akGz8HN-)cIPPc)XGpT7`9@ zoy%XijZooWJ&2t4BAOA7x}~Xf$|RASIovYIyuwWoUzbI>4&f9f2Qlv$8%p_GnXyDn zpxKK?)uZm$X}cLCjj`V4~TGM;4Y8G?N(C<+9kA*L;Q=Q-{|O<*I~h})8d^@n)GXn9ncc%9cw5)B-UbRheQ&VNs3WORl-hf0)% z1tCQ$7!YV}E5Fx{S45&cQ4NpFi5%dxua)R$D2c4OZ5^&doT2hImENfw<0L^$m|KSi zlyVpHJuXz{o;!MkB28O@Xe0Q}bL_B=h{v&VyWc*OoRB`mxXc{v^-Fnxsj2~|=2r!}K_N}J4NF;d93m{EN>9QpxDfc9QR zf5;IP{{SFFSHM5W0TurM^auaM05K5&0s#U91P1^C1Ofv9000010s{aM1QIboAR#bN z1rQT5K~Z2rB2r;+6eBZ$!T;I-2mt~C0Y3o!)&Bs{2hRThzB~i*2CrA{XM}cu3DSft zXh1${Rm$7L<_~f_BZl>VA-xf?p$FNa5{?PSAa{p=cPn|@v7+WSp#qI)C>n9dE~j{Z z0yk=GZ_;sQBX)R4Xq1ov6p{w*@tdgV&N<(CYPDLe+Gh57M=kj`T=@-^{D(#ZsOZct zz1f&9rk@lCwxN)^-0URwA2{W=BiJv(IuRQ;M2m}eN1Ya*630$dNj%S%5c4Bo+8zXu ztt$o>8{^gn;{6##o47No>S^&`+9~8`)bQbb$7-xp+)_v%wZd+_8H$}dbK((n=TC@s z)0aaCH9Hpf9uRF&%bStet}q-~hvWYMy<2pkJnh0=My8D8;*88_l6CE}vnt(botsnA zg)$%;89m32Ic>?dGs+^2xuGKm&+}18BtYZmY=+Dak(EUm&%mQ29Zu^Q){fM($hsO_ zYY%Xx#m05zO6uAjnW_NQak%&2=#!jkzT6ajka? z!nlbSLraZ6$W&7-qn5@*4lHU&${QXyp)w!wN})xD%6&&gT&d+q;fGX^1mO|&t z3pb-Me(5u2a(M8IXz#LR3@mBzzbQ={E~Cw2cF$|mNBfBB^e~@#gJROG)UTt7*q@xc2mGNSjoLd`N_<1L5>CErE3Sr<6b~lY-mlsRcpV9`AH_NmOk*^x z7+iF(#x_^0)%Ih*;$^q=4wN$FKjUIHgJwJPHdQ8xB;54y&zWuYup2?M9n|>_JX2Xf z=`2p#3S2Mu8c5YN9guz~apI5l0mi7!pryi-?liEX=sP(4N$6s|{0gPCrNXh+k_2AV zJ17LujlQTt)F3n<`!st#ENEx~bfm*M*Oew27g_)fKNcZs5E>8)5UmK;>Vkp9{^Qx% z0}C2e3!waRNLGUaE;>_tzizBl+)_vzqdvd52Go+@k?2qGdiSf<>h*fR>7$n1jRSru zy}ywp0dq=o3-*+9w5%IW8GWZwiQ3#r(i z{O%M}F=KP&p3$*+<6TWQGy6q6(mtoi8ykvKadEbeZ-(GMjd=pmB%7Zxr&N$B@iDDF zF^{xUNbjlQ!oB0S*4-p4K!PqjoLP>@_o*ez$Wb@g;z1G+dN@b3+wX9$RNPWHYM0;m zxh1zD!aCT*(Yh$vSTzoNfNf0Kxu3;JFT(LIqpdP#jEc1>)n*DVY2+`_i{3i;gv}Z0K>4Ew@ew`w9)UI;e4?^1)p~37UXp!R zqLt{adJA5FuS5LOMU>xQ>y?V}1ue)5Oe39nQehBl&Xq!o4w>wQfYk0mwIk*navLe_ z7{#*&^HgT`icA|HakVBEHJ|{~VmGZKE~c9q7}A>>$J!~e61U9~O<|ifLvoB%-hl*M zaZT;*7>LY?VM&8O$kJisUyX_1ONtS;TT^2sI#WvRsp7#mBD<)h%6O;HegJN9sb&q( z!ZoC~M*AqF{wIcW%y*-|nmoLpFOc@1JbVrS(a^on^N zLw7gx@QG)6vgSEQXPDYDXfYa6;$>f&TzB^hTwF$#)wDm4$K%EsY`oaik~EB6&Cd^n zLFvJq>fN6e{{V>bEb=afmm1?yQR0=(TYfJSI>8Zav4A_QFq%o`ihuwi}|T+6a$ z3@mDR3}^gsV3$_d;c{P|ylkO`jYx$W$7PId7o!*@fE^Rp$6>$ZLR07BnM#`Fu1YB`qlIxr6Wjp4Oo{kYN`MM`z z;(i_K{{Y(-zJ4DEqlZ;Go_lCt_?{Vk`$vsm+$r!t`%Nn4P&RSO(VkTl%O;#IE~IQ^ ze2816g-o&E@1k}%&kc_e{X>&fJ{L0L6=WQ@5x!x-=Inb=By$xOE8+II$Fha!fpcL% zSXgvVYDUU$K-^q;J7pcVDcU|?6p|~8k11O!6S2g;X%9yVnWVqhNcOm%+>exxnD!CX zRw`~P97ujmtzzW<17PiyOHnuI;L^#PyEB#+J&13}2a%`3#?<&W9@9-5C%AE<w?dPIAAvg47{C4Bf9obczYD^;^l}{LrtT+q5t0!$e z^)T+#m{c44&;WZ6Ojz~@fH%;}4H0hYJA$J>#8P1o_B4?qY&7EjBZ@`omffuMM{Z0r zw*J(ZWL^FG7_+e8jkPk{hH%!yi8$v~s@=L3R(mxnD*Q)EXU^pCS8Z&cjto(m94!FH!f*!r}nyPA^}PqI-r;m7H5S%qg6p0n0-Sw4ucz;@os36du|dekq^nyj*C2Z{C6k?+WO@-Q{Z@b{{V78 zx=6UOsiQHuUgH3=-(Dc>JP!dCl)3xW`h;6ZJB)6&16;=M;7Fy|D5Ow|6l$C)jD|hP zF&j{whV&;NbRAB|(9t(H@GJyZa_8$zn26)~8khA3KFBRh?B?uyuyz|7GcguE2ZxXL z;|u6W0_LU1M!w7MQsU)*yLsjkFWi)V1xYeT@-;8&A5n^uSCHM0pCrzJg)~V%=l=j5 z0Gj=`{83Uj^Vr~Lq{E`n0B!2fqi!lpDIV)YTh3v_{{Uy`OA5#-l&P`vd^A@%&q{c+ zulw_4Qp^CQ0Y!&T6q#Ev`}15P-HUXdR87r3FZ@M3jQ;>5=D0!p3D(Z5xu?aC>M7@T z-1){6;h~r==ARU!<4=fo@e9@J^?uQWJBlO?>G3GLd(+}ww)Ub)-@@-#tJUiI$7e?< zZnVr>e-0z2Jm8Lq^O8CX=R|8BA_eG+c9Jy@5CZfCskh=JF8c~>D=HQ|Vl)pA3wi?H zhkgoS%LBTee{dc9t+z*VED7jsXHjBW2vjB~fOGZr^JyaIVd zYaOEo_d>p{BB#jH<4}A>>G4uE5>EZNBOQeZ7|?)ynh_xMlv&SU9itB@jqYjjqxy<` zOpW*3(h|b-AX*5cVXATN4=9aG<1jb1x)Y19ER8GUDA`*51{W6Q5ukX~Fa1wJ#h8wG z@wny9?045V{#WJ^^Wn<%{#b92NxM+g!P#YZ4*7=y6jw?G^4ut~dgWFRRg zkrU)=&^PtPJ(n*O>Krtm>8Km}Om6%ly43Kn>6S1$ILESOwnq!#U_hH*e zy%Fd);Nep&W21|FvD@?ANc01@m8Bd6T+9}Lw?`QFe7)M<0tp`ClNBP;V^sWwEQtRA v6R4Y0wq`BoX^D}3=`o}G3Q3XnKDd|58T0g-MA*_}Pxcjwm`Py2@qho>T_+Ml diff --git a/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_blue.svg b/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_blue.svg new file mode 100644 index 0000000000..578bf592f6 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_blue.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_white.svg b/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_white.svg index 3de8e82ed3..01f7260cd3 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_white.svg +++ b/src/Umbraco.Web.UI.Client/src/assets/umbraco_logo_white.svg @@ -1 +1,51 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 5ed4f90fbb..c767b57350 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -32,7 +32,7 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement

${this.headline}

@@ -64,7 +64,7 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement Date: Mon, 8 Apr 2024 10:10:09 +0200 Subject: [PATCH 119/177] serve all images through vite --- src/Umbraco.Web.UI.Client/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/vite.config.ts b/src/Umbraco.Web.UI.Client/vite.config.ts index f058a79d6f..4ecc0d2ab2 100644 --- a/src/Umbraco.Web.UI.Client/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/vite.config.ts @@ -22,7 +22,7 @@ export const plugins: PluginOption[] = [ dest: 'umbraco/backoffice/css', }, { - src: 'src/assets/*.svg', + src: 'src/assets/*', dest: 'umbraco/backoffice/assets', }, { From 1dba67ac4331fedef3b8fccef264779c5a3ec4eb Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:16:24 +0200 Subject: [PATCH 120/177] export types from the appauth module to fix tests --- .../src/external/openid/index.ts | 14 ++--- .../umbraco-news-dashboard.element.ts | 58 ++++++------------- 2 files changed, 24 insertions(+), 48 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts index ff18b32b45..8b049e918b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts @@ -5,14 +5,12 @@ export { LocalStorageBackend, RedirectRequestHandler, RevokeTokenRequest, -} from '@openid/appauth'; -export { AuthorizationRequest } from '@openid/appauth/built/authorization_request'; -export { AuthorizationNotifier } from '@openid/appauth/built/authorization_request_handler'; -export { AuthorizationServiceConfiguration } from '@openid/appauth/built/authorization_service_configuration'; -export { + AuthorizationNotifier, + AuthorizationRequest, + AuthorizationServiceConfiguration, GRANT_TYPE_AUTHORIZATION_CODE, GRANT_TYPE_REFRESH_TOKEN, TokenRequest, -} from '@openid/appauth/built/token_request'; -export { TokenResponse } from '@openid/appauth/built/token_response'; -export type { LocationLike, StringMap } from '@openid/appauth/built/types'; + TokenResponse, +} from '@openid/appauth'; +export type { LocationLike, StringMap } from '@openid/appauth'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts index d9a5135dbb..3f605ebf38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts @@ -1,61 +1,39 @@ -import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; -import { UMB_CURRENT_USER_CONTEXT } from '@umbraco-cms/backoffice/current-user'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UMB_AUTH_CONTEXT } from '../core/auth/auth.context.token.js'; +import { tryExecuteAndNotify } from '../core/resources/tryExecuteAndNotify.function.js'; +import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import { UserGroupResource, type UserGroupResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; @customElement('umb-umbraco-news-dashboard') export class UmbUmbracoNewsDashboardElement extends UmbLitElement { - #currentUserContext?: typeof UMB_CURRENT_USER_CONTEXT.TYPE; - @state() - private _name = ''; + _groups: UserGroupResponseModel[] = []; - constructor() { - super(); - this.consumeContext(UMB_CURRENT_USER_CONTEXT, (instance) => { - this.#currentUserContext = instance; - this.#observeCurrentUser(); - }); + async clearToken() { + const authContext = await this.getContext(UMB_AUTH_CONTEXT); + authContext.clearTokenStorage(); } - #observeCurrentUser(): void { - if (!this.#currentUserContext) return; - this.observe(this.#currentUserContext.currentUser, (user) => { - this._name = user?.name ?? ''; - }); + async makeAuthorizedRequest() { + const { data } = await tryExecuteAndNotify(this, UserGroupResource.getUserGroup({ skip: 0, take: 10 })); + + if (data) { + this._groups = data.items; + } } render() { return html` -

- Welcome, ${this._name} -

-

- This is the beta version of Umbraco 14, where you can have a first-hand look at the new Backoffice. -

- Please refer to the - documentation to learn - more about what is possible. Here you will find excellent tutorials, guides, and references to help you get - started extending the Backoffice. + Clear all tokens + Make authorized request + + ${this._groups.map((group) => html`

${group.name}

`)}

`; } - - static styles = [ - UmbTextStyles, - css` - :host { - display: block; - padding: var(--uui-size-layout-1); - } - p { - position: relative; - } - `, - ]; } export default UmbUmbracoNewsDashboardElement; From 1881d37c7433a9ad41baef9cc9f1ea1d9e588d2f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:16:36 +0200 Subject: [PATCH 121/177] Revert "export types from the appauth module to fix tests" This reverts commit 1dba67ac4331fedef3b8fccef264779c5a3ec4eb. --- .../src/external/openid/index.ts | 14 +++-- .../umbraco-news-dashboard.element.ts | 60 +++++++++++++------ 2 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts index 8b049e918b..ff18b32b45 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts @@ -5,12 +5,14 @@ export { LocalStorageBackend, RedirectRequestHandler, RevokeTokenRequest, - AuthorizationNotifier, - AuthorizationRequest, - AuthorizationServiceConfiguration, +} from '@openid/appauth'; +export { AuthorizationRequest } from '@openid/appauth/built/authorization_request'; +export { AuthorizationNotifier } from '@openid/appauth/built/authorization_request_handler'; +export { AuthorizationServiceConfiguration } from '@openid/appauth/built/authorization_service_configuration'; +export { GRANT_TYPE_AUTHORIZATION_CODE, GRANT_TYPE_REFRESH_TOKEN, TokenRequest, - TokenResponse, -} from '@openid/appauth'; -export type { LocationLike, StringMap } from '@openid/appauth'; +} from '@openid/appauth/built/token_request'; +export { TokenResponse } from '@openid/appauth/built/token_response'; +export type { LocationLike, StringMap } from '@openid/appauth/built/types'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts index 3f605ebf38..d9a5135dbb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-news-dashboard.element.ts @@ -1,39 +1,61 @@ -import { UMB_AUTH_CONTEXT } from '../core/auth/auth.context.token.js'; -import { tryExecuteAndNotify } from '../core/resources/tryExecuteAndNotify.function.js'; -import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UMB_CURRENT_USER_CONTEXT } from '@umbraco-cms/backoffice/current-user'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UserGroupResource, type UserGroupResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; @customElement('umb-umbraco-news-dashboard') export class UmbUmbracoNewsDashboardElement extends UmbLitElement { - @state() - _groups: UserGroupResponseModel[] = []; + #currentUserContext?: typeof UMB_CURRENT_USER_CONTEXT.TYPE; - async clearToken() { - const authContext = await this.getContext(UMB_AUTH_CONTEXT); - authContext.clearTokenStorage(); + @state() + private _name = ''; + + constructor() { + super(); + this.consumeContext(UMB_CURRENT_USER_CONTEXT, (instance) => { + this.#currentUserContext = instance; + this.#observeCurrentUser(); + }); } - async makeAuthorizedRequest() { - const { data } = await tryExecuteAndNotify(this, UserGroupResource.getUserGroup({ skip: 0, take: 10 })); - - if (data) { - this._groups = data.items; - } + #observeCurrentUser(): void { + if (!this.#currentUserContext) return; + this.observe(this.#currentUserContext.currentUser, (user) => { + this._name = user?.name ?? ''; + }); } render() { return html` +

+ Welcome, ${this._name} +

+

+ This is the beta version of Umbraco 14, where you can have a first-hand look at the new Backoffice. +

- Clear all tokens - Make authorized request - - ${this._groups.map((group) => html`

${group.name}

`)} + Please refer to the + documentation to learn + more about what is possible. Here you will find excellent tutorials, guides, and references to help you get + started extending the Backoffice.

`; } + + static styles = [ + UmbTextStyles, + css` + :host { + display: block; + padding: var(--uui-size-layout-1); + } + p { + position: relative; + } + `, + ]; } export default UmbUmbracoNewsDashboardElement; From 44a6e0085f759dabad73c973d2c462c1d2f92724 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 10:17:08 +0200 Subject: [PATCH 122/177] export types from the appauth module to fix tests --- .../src/external/openid/index.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts index ff18b32b45..8b049e918b 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts @@ -5,14 +5,12 @@ export { LocalStorageBackend, RedirectRequestHandler, RevokeTokenRequest, -} from '@openid/appauth'; -export { AuthorizationRequest } from '@openid/appauth/built/authorization_request'; -export { AuthorizationNotifier } from '@openid/appauth/built/authorization_request_handler'; -export { AuthorizationServiceConfiguration } from '@openid/appauth/built/authorization_service_configuration'; -export { + AuthorizationNotifier, + AuthorizationRequest, + AuthorizationServiceConfiguration, GRANT_TYPE_AUTHORIZATION_CODE, GRANT_TYPE_REFRESH_TOKEN, TokenRequest, -} from '@openid/appauth/built/token_request'; -export { TokenResponse } from '@openid/appauth/built/token_response'; -export type { LocationLike, StringMap } from '@openid/appauth/built/types'; + TokenResponse, +} from '@openid/appauth'; +export type { LocationLike, StringMap } from '@openid/appauth'; From 677d1304372407f3ada4d395646b2bf6ec76d4e8 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 11:52:15 +0200 Subject: [PATCH 123/177] import openid from the ts source instead to build properly as esmodule --- .../src/external/openid/index.ts | 21 ++++++++++--------- .../web-test-runner.config.mjs | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts index 8b049e918b..fa968cbfc8 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts @@ -1,16 +1,17 @@ export { - BaseTokenRequestHandler, - BasicQueryStringUtils, - FetchRequestor, - LocalStorageBackend, - RedirectRequestHandler, - RevokeTokenRequest, AuthorizationNotifier, AuthorizationRequest, AuthorizationServiceConfiguration, - GRANT_TYPE_AUTHORIZATION_CODE, - GRANT_TYPE_REFRESH_TOKEN, + BaseTokenRequestHandler, + FetchRequestor, + BasicQueryStringUtils, + LocalStorageBackend, + RedirectRequestHandler, TokenRequest, TokenResponse, -} from '@openid/appauth'; -export type { LocationLike, StringMap } from '@openid/appauth'; + RevokeTokenRequest, + GRANT_TYPE_AUTHORIZATION_CODE, + GRANT_TYPE_REFRESH_TOKEN, +} from '@openid/appauth/src/index.js'; + +export type { LocationLike, StringMap } from '@openid/appauth/src/types.js'; 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 3da2a3dc6f..832c831714 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -35,7 +35,7 @@ export default { }, }), commonjs({ - include: ['node_modules/**', 'src/external/**'], + include: [/node_modules/], }), ], testRunnerHtml: (testFramework, devMode) => From fe908fc565625b1f1b694d38240d48415a03def3 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:02:42 +0200 Subject: [PATCH 124/177] avoid cyclic dependency --- .../src/packages/core/auth/modals/umb-app-auth-modal.token.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts index 9b763e4c36..97dd990b68 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.token.ts @@ -1,5 +1,5 @@ +import { UmbModalToken } from '../../modal/token/index.js'; import type { UmbUserLoginState } from '../types.js'; -import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; export type UmbModalAppAuthConfig = { userLoginState: UmbUserLoginState; From b26f1d4a81c8b99d86d25c4dcba967301ea12e46 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:44:25 +0200 Subject: [PATCH 125/177] import relative to avoid cyclic dependencies in test --- .../packages/core/collection/collection-view.manager.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 02eed66b19..d08174ea78 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 @@ -1,9 +1,9 @@ import { expect } from '@open-wc/testing'; +import type { ManifestCollectionView } from '../extension-registry/models/index.js'; +import { umbExtensionsRegistry } from '../index.js'; import { UmbCollectionViewManager } from './collection-view.manager.js'; import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; -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') From 4de47f8078d03443f3f7c82ae82a7e7df48d886b Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:03:16 +0200 Subject: [PATCH 126/177] avoid cyclic dependency --- .../packages/core/collection/collection-view.manager.test.ts | 2 +- .../src/packages/core/extension-registry/index.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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 d08174ea78..0f6024506d 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 @@ -1,6 +1,6 @@ import { expect } from '@open-wc/testing'; import type { ManifestCollectionView } from '../extension-registry/models/index.js'; -import { umbExtensionsRegistry } from '../index.js'; +import { umbExtensionsRegistry } from '../extension-registry/index.js'; import { UmbCollectionViewManager } from './collection-view.manager.js'; import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts index 9d63aeebbb..7442cd6ae9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/index.ts @@ -1,6 +1,6 @@ export * from './conditions/index.js'; -export * from './interfaces/index.js'; -export * from './models/index.js'; +export type * from './interfaces/index.js'; +export type * from './models/index.js'; export * from './registry.js'; export * from './utils/index.js'; From 0e264553ab1c0e8968bb78913ab974365f043056 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:03:22 +0200 Subject: [PATCH 127/177] avoid cyclic dependency --- .../property-editor-ui-multi-url-picker.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 fe5de77170..4e3a978277 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 @@ -1,10 +1,10 @@ +import { UmbLitElement } from '../../../lit-element/index.js'; import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; 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/backoffice/lit-element'; import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor'; /** From 1607e08953d933ac5fc360edb5b8d8b6e4a2a6d7 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:14:30 +0200 Subject: [PATCH 128/177] use relative imports to avoid cyclic dependency --- .../property-editor-ui-multi-url-picker.element.ts | 2 +- .../src/packages/core/property/property/property.element.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) 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 4e3a978277..a4602e52ef 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 @@ -1,5 +1,5 @@ import { UmbLitElement } from '../../../lit-element/index.js'; -import { UMB_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/property'; +import { UMB_PROPERTY_CONTEXT } from '../../../property/property/index.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UUIModalSidebarSize } from '@umbraco-cms/backoffice/external/uui'; import type { UmbInputMultiUrlElement } from '@umbraco-cms/backoffice/components'; 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 b52179f9f7..1bf8e3c8d2 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 @@ -1,9 +1,8 @@ +import { umbExtensionsRegistry, type ManifestPropertyEditorUi } from '../../extension-registry/index.js'; 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 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/backoffice/lit-element'; import type { From 5781e8151f7a580662e71807d4375a8e623c5dc4 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:16:15 +0200 Subject: [PATCH 129/177] use relative import to avoid cyclic dependency --- .../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/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts index 7ccc036d14..4c85e03a05 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts @@ -1,3 +1,4 @@ +import { loadManifestApi } from '../../../../libs/extension-api/functions/load-manifest-api.function.js'; import { pastePreProcessHandler } from './input-tiny-mce.handlers.js'; import { defaultFallbackConfig } from './input-tiny-mce.defaults.js'; import { availableLanguages } from './input-tiny-mce.languages.js'; @@ -6,7 +7,6 @@ import type { TinyMcePluginArguments, UmbTinyMcePluginBase } from './tiny-mce-pl import { getProcessedImageUrl } from '@umbraco-cms/backoffice/utils'; import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import type { EditorEvent, Editor, RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce'; -import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; import { type ManifestTinyMcePlugin, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { css, customElement, html, property, query, state } from '@umbraco-cms/backoffice/external/lit'; import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs'; From 08935284118786ff795b22f66ab959c23661a0c1 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:17:30 +0200 Subject: [PATCH 130/177] add export type --- .../src/libs/extension-api/functions/index.ts | 2 +- src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/index.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/index.ts index cf2758ba9f..21d7768a87 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/index.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/functions/index.ts @@ -6,4 +6,4 @@ export * from './load-manifest-api.function.js'; export * from './load-manifest-element.function.js'; export * from './load-manifest-plain-css.function.js'; export * from './load-manifest-plain-js.function.js'; -export * from './types.js'; +export type * from './types.js'; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts index c8ce6b7200..22c8863cb0 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/index.ts @@ -2,7 +2,7 @@ export * from './condition/index.js'; export * from './controller/index.js'; export * from './functions/index.js'; export * from './initializers/index.js'; -export * from './models/index.js'; +export type * from './models/index.js'; export * from './registry/extension.registry.js'; export * from './type-guards/index.js'; -export * from './types/index.js'; +export type * from './types/index.js'; From 93d408d94c8e8e2489501e849c730c3a5efcb6bd Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:24:42 +0200 Subject: [PATCH 131/177] fix import path after merge --- .../core/auth/components/auth-provider-default.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts index 2b93881d87..c6c10745c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/components/auth-provider-default.element.ts @@ -1,4 +1,4 @@ -import type { ManifestAuthProvider } from '../../index.js'; +import type { ManifestAuthProvider } from '../../extension-registry/models/index.js'; import type { UmbAuthProviderDefaultProps } from '../types.js'; import { UmbLitElement } from '../../lit-element/lit-element.element.js'; import { UmbTextStyles } from '../../style/index.js'; From 7979139afcd2e0e8d3a62103ff258f5a891d707c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 15:28:48 +0200 Subject: [PATCH 132/177] remove double registration --- src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts index e941207544..daba6cd6d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/manifests.ts @@ -22,13 +22,6 @@ export const manifests: Array = [ ...extensionManifests, ...cultureManifests, ...localizationManifests, - ...modalManifests, - ...propertyActionManifests, - ...propertyEditorManifests, - ...recycleBinManifests, - ...sectionManifests, - ...serverFileSystemManifests, - ...settingsManifests, ...themeManifests, ...sectionManifests, ...treeManifests, @@ -42,4 +35,5 @@ export const manifests: Array = [ ...propertyActionManifests, ...serverFileSystemManifests, ...debugManifests, + ...recycleBinManifests, ]; From 582654cc82a35ea521c07551b792be2123cd4c2d Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:56:57 +0200 Subject: [PATCH 133/177] no need for distinctUntilChanged on boolean states --- src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index e25de952cd..2a61b36e2a 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -6,7 +6,7 @@ import { } from '@umbraco-cms/backoffice/auth'; import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { distinctUntilChanged, filter, firstValueFrom, skip } from '@umbraco-cms/backoffice/external/rxjs'; +import { filter, firstValueFrom, skip } from '@umbraco-cms/backoffice/external/rxjs'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; export class UmbAppAuthController extends UmbControllerBase { @@ -22,8 +22,6 @@ export class UmbAppAuthController extends UmbControllerBase { // Observe the user's authorization state and start the authorization flow if the user is not authorized this.observe( context.isAuthorized.pipe( - // Only continue if the value has changed - distinctUntilChanged(), // Skip the first since it is always false skip(1), // Only continue if the value is false From 51edd913de302340c06772ad0975b8885e89203d Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:57:16 +0200 Subject: [PATCH 134/177] save location when making auth requests --- .../src/apps/app/app-auth.controller.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 2a61b36e2a..db450075c4 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -51,9 +51,6 @@ export class UmbAppAuthController extends UmbControllerBase { return true; } - // Save location.href so we can redirect to it after login - window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); - // Make a request to the auth server to start the auth flow return this.makeAuthorizationRequest(); } @@ -67,6 +64,9 @@ export class UmbAppAuthController extends UmbControllerBase { throw new Error('[Fatal] Auth context is not available'); } + // Save location.href so we can redirect to it after login + window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); + // If the user is timed out, we can show the login modal directly if (userLoginState === 'timedOut') { const selected = await this.#showLoginModal(userLoginState); From c046fefbc67cf11bd4ed88058e920d72f2e97c36 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:57:57 +0200 Subject: [PATCH 135/177] bind controller on startup --- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 3 +-- 1 file changed, 1 insertion(+), 2 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 d502c4a487..901ab5b0e5 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 @@ -76,7 +76,7 @@ export class UmbAppElement extends UmbLitElement { #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; #serverConnection?: UmbServerConnection; - #authController?: UmbAppAuthController; + #authController = new UmbAppAuthController(this); constructor() { super(); @@ -114,7 +114,6 @@ export class UmbAppElement extends UmbLitElement { if (this.#serverConnection.getStatus() === RuntimeLevelModel.INSTALL) { await this.#authContext.clearTokenStorage(); } else { - this.#authController = new UmbAppAuthController(this); await this.#setAuthStatus(); } From def6534d6b61c337aa2e6005e150ec4fb02b0a5d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 17:04:58 +0200 Subject: [PATCH 136/177] add keys to dashboard manifests --- .../src/packages/core/settings/welcome-dashboard/manifests.ts | 2 +- .../src/packages/dictionary/dashboard/manifests.ts | 2 +- .../src/packages/documents/dashboards/manifests.ts | 2 +- .../src/packages/health-check/manifests.ts | 2 +- .../src/packages/models-builder/manifests.ts | 2 +- src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts | 2 +- .../src/packages/settings/dashboards/manifests.ts | 4 ++-- .../src/packages/umbraco-news/manifests.ts | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/settings/welcome-dashboard/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/settings/welcome-dashboard/manifests.ts index 5865d480c2..5112dd2791 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/settings/welcome-dashboard/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/settings/welcome-dashboard/manifests.ts @@ -6,7 +6,7 @@ export const manifests = [ element: () => import('./settings-welcome-dashboard.element.js'), weight: 500, meta: { - label: 'Welcome', + label: '#dashboardTabs_settingsWelcome', pathname: 'welcome', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/manifests.ts index 9c2bd689f9..7d8ca0164f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/dashboard/manifests.ts @@ -8,7 +8,7 @@ const dashboards: Array = [ name: 'Dictionary Overview Dashboard', element: () => import('./dictionary-overview-dashboard.element.js'), meta: { - label: 'Dictionary overview', + label: '#dictionaryItem_overviewTitle', pathname: '', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts index 4d156accdd..5318ffcc8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/dashboards/manifests.ts @@ -8,7 +8,7 @@ const dashboards: Array = [ js: () => import('./redirect-management/dashboard-redirect-management.element.js'), weight: 10, meta: { - label: 'Redirect Management', + label: '#dashboardTabs_contentRedirectManager', pathname: 'redirect-management', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/manifests.ts index f40347abb5..c630937f90 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/manifests.ts @@ -7,7 +7,7 @@ export const manifests = [ js: () => import('./dashboard-health-check.element.js'), weight: 102, meta: { - label: 'Health Check', + label: '#dashboardTabs_settingsHealthCheck', pathname: 'health-check', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/models-builder/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/models-builder/manifests.ts index d3b793e074..9f20431ef3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/models-builder/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/models-builder/manifests.ts @@ -6,7 +6,7 @@ export const manifests = [ element: () => import('./models-builder-dashboard.element.js'), weight: 300, meta: { - label: 'Models Builder', + label: '#dashboardTabs_settingsModelsBuilder', pathname: 'models-builder', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts index 6842024300..74f7473793 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/search/manifests.ts @@ -27,7 +27,7 @@ export const manifests: Array = [ js: () => import('./examine-management-dashboard/dashboard-examine-management.element.js'), weight: 400, meta: { - label: 'Examine Management', + label: '#dashboardTabs_settingsExamine', pathname: 'examine-management', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts index a406ba57df..c1f82d6790 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/dashboards/manifests.ts @@ -11,7 +11,7 @@ const dashboards: Array = [ js: () => import('./published-status/dashboard-published-status.element.js'), weight: 200, meta: { - label: 'Published Status', + label: '#dashboardTabs_settingsPublishedStatus', pathname: 'published-status', }, conditions: [ @@ -29,7 +29,7 @@ const dashboards: Array = [ js: () => import('./performance-profiling/dashboard-performance-profiling.element.js'), weight: 101, meta: { - label: 'Profiling', + label: '#dashboardTabs_settingsProfiler', pathname: 'profiling', }, conditions: [ 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 62024e27f5..fea4b1dd92 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 @@ -7,7 +7,7 @@ export const dashboard: ManifestDashboard = { js: () => import('./umbraco-news-dashboard.element.js'), weight: 20, meta: { - label: 'Welcome', + label: '#dashboardTabs_contentIntro', }, conditions: [ { From 928c38fc7121e6dc263a9b0b0a8efcf61506fe2a Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 17:15:57 +0200 Subject: [PATCH 137/177] revert backoffice element and let it be the host of entrypoints --- .../src/apps/backoffice/backoffice.element.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 a0d998a91f..672117fa16 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 @@ -1,7 +1,11 @@ import { UmbBackofficeContext } from './backoffice.context.js'; import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; -import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api'; +import { + UmbBundleExtensionInitializer, + UmbEntryPointExtensionInitializer, + UmbServerExtensionRegistrator, +} from '@umbraco-cms/backoffice/extension-api'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import './components/index.js'; @@ -37,10 +41,20 @@ const CORE_PACKAGES = [ @customElement('umb-backoffice') export class UmbBackofficeElement extends UmbLitElement { + /** + * Backoffice extension registry. + * This enables to register and unregister extensions via DevTools, or just via querying this element via the DOM. + */ + public extensionRegistry = umbExtensionsRegistry; + constructor() { super(); new UmbBackofficeContext(this); + + new UmbBundleExtensionInitializer(this, umbExtensionsRegistry); + new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry); + new UmbServerExtensionRegistrator(this, umbExtensionsRegistry).registerPrivateExtensions(); // So far local packages are this simple to registerer, so no need for a manager to do that: From 619bb1e1fdabb54403fe84da0984bebb53e461b0 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Apr 2024 17:16:47 +0200 Subject: [PATCH 138/177] load the core package entrypoint directly to avoid using the entrypoint initializer and thereby affecting all third party entrypoints --- .../src/apps/app/app.element.ts | 26 +++++-------------- 1 file changed, 7 insertions(+), 19 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 901ab5b0e5..f33d0b672f 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,4 +1,4 @@ -import { extensions as coreExtensions } from '../../packages/core/umbraco-package.js'; +import { onInit } from '../../packages/core/index.js'; import type { UmbAppErrorElement } from './app-error.element.js'; import { UmbAppContext } from './app.context.js'; import { UmbServerConnection } from './server-connection.js'; @@ -13,22 +13,11 @@ import type { Guard, UmbRoute } from '@umbraco-cms/backoffice/router'; import { pathWithoutBasePath } from '@umbraco-cms/backoffice/router'; import { OpenAPI, RuntimeLevelModel } from '@umbraco-cms/backoffice/external/backend-api'; import { UmbContextDebugController } from '@umbraco-cms/backoffice/debug'; -import { - UmbBundleExtensionInitializer, - UmbEntryPointExtensionInitializer, - UmbServerExtensionRegistrator, -} from '@umbraco-cms/backoffice/extension-api'; +import { UmbServerExtensionRegistrator } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; @customElement('umb-app') export class UmbAppElement extends UmbLitElement { - /** - * Backoffice extension registry. - * This enables to register and unregister extensions via DevTools, or just via querying this element via the DOM. - * @type {UmbExtensionsRegistry} - */ - public extensionRegistry = umbExtensionsRegistry; - /** * The base URL of the configured Umbraco server. * @@ -87,11 +76,6 @@ export class UmbAppElement extends UmbLitElement { new UUIIconRegistryEssential().attach(this); new UmbContextDebugController(this); - - new UmbBundleExtensionInitializer(this, umbExtensionsRegistry); - new UmbEntryPointExtensionInitializer(this, umbExtensionsRegistry); - - umbExtensionsRegistry.registerMany(coreExtensions); } connectedCallback(): void { @@ -105,6 +89,10 @@ export class UmbAppElement extends UmbLitElement { this.#authContext = new UmbAuthContext(this, this.serverUrl, this.backofficePath, this.bypassAuth); new UmbAppContext(this, { backofficePath: this.backofficePath, serverUrl: this.serverUrl }); + // Register Core extensions + onInit(this, umbExtensionsRegistry); + + // Register public extensions await new UmbServerExtensionRegistrator(this, umbExtensionsRegistry).registerPublicExtensions(); // Try to initialise the auth flow and get the runtime status @@ -202,7 +190,7 @@ export class UmbAppElement extends UmbLitElement { } #isAuthorizedGuard(): Guard { - return () => this.#authController?.isAuthorized() ?? false; + return () => this.#authController.isAuthorized() ?? false; } #errorPage(errorMsg: string, error?: unknown) { From 7aaeeadb7c5c0d64c2602fb7595c95a5bf16b5f4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 18:56:22 +0200 Subject: [PATCH 139/177] add localize string to entity action manifests --- .../src/assets/lang/en-us.ts | 60 ++++++++++--------- .../common/delete/delete.action.kind.ts | 2 +- .../common/duplicate/duplicate.action.kind.ts | 2 +- .../common/move/move.action.kind.ts | 2 +- .../sort-children-of.action.kind.ts | 2 +- .../common/trash/trash.action.kind.ts | 2 +- .../rename/rename-server-file.action.kind.ts | 2 +- .../create-folder.action.kind.ts | 2 +- .../delete-folder.action.kind.ts | 2 +- .../update-folder.action.kind.ts | 2 +- .../reload-tree-item-children.action.kind.ts | 2 +- .../entity-actions/create/manifests.ts | 4 +- .../reload-tree-item-children/manifests.ts | 1 - .../dictionary/entity-action/manifests.ts | 6 +- .../entity-actions/create/manifests.ts | 2 +- .../entity-actions/create/manifests.ts | 2 +- .../culture-and-hostnames/manifests.ts | 2 +- .../documents/entity-actions/manifests.ts | 10 ++-- .../entity-actions/public-access/manifests.ts | 4 +- .../language/entity-actions/manifests.ts | 2 +- .../entity-actions/create/manifests.ts | 2 +- .../media/entity-actions/create/manifests.ts | 2 +- .../member-type/entity-actions/manifests.ts | 2 +- .../entity-actions/create/manifests.ts | 2 +- .../entity-actions/create/manifests.ts | 2 +- .../entity-actions/create/manifests.ts | 2 +- .../templates/entity-actions/manifests.ts | 2 +- .../user/user/entity-actions/manifests.ts | 10 ++-- .../user/invite/entity-action/manifests.ts | 2 +- 29 files changed, 72 insertions(+), 67 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 40987bee26..5a1f48c0a4 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 @@ -5,61 +5,66 @@ export default { assigndomain: 'Culture and Hostnames', auditTrail: 'Audit Trail', browse: 'Browse Node', - changeDocType: 'Change Document Type', changeDataType: 'Change Data Type', - copy: 'Copy', + changeDocType: 'Change Document Type', + chooseWhereToCopy: 'Choose where to copy', + chooseWhereToImport: 'Choose where to import', + chooseWhereToMove: 'Choose where to move', + copy: 'Copy to', create: 'Create', - export: 'Export', - createPackage: 'Create Package', + createblueprint: 'Create Document Blueprint', createGroup: 'Create group', + createPackage: 'Create Package', delete: 'Delete', + deployCompare: 'Compare', + deployPartialRestore: 'Partial restore', + deployQueueForTransfer: 'Queue for transfer', + deployRestore: 'Workspace restore', + deployTransferNow: 'Transfer now', + deployTreeRestore: 'Tree restore', disable: 'Disable', editContent: 'Edit content', editSettings: 'Edit settings', emptyrecyclebin: 'Empty recycle bin', enable: 'Enable', + export: 'Export', exportDocumentType: 'Export Document Type', + folderCreate: 'Create folder', + folderDelete: 'Delete folder', + folderRename: 'Rename folder', + import: 'Import', importdocumenttype: 'Import Document Type', importPackage: 'Import Package', + infiniteEditorChooseWhereToCopy: 'Choose where to copy the selected item(s)', + infiniteEditorChooseWhereToMove: 'Choose where to move the selected item(s)', liveEdit: 'Edit in Canvas', logout: 'Exit', - move: 'Move', + move: 'Move to', notify: 'Notifications', protect: 'Restrict Public Access', publish: 'Publish', - unpublish: 'Unpublish', refreshNode: 'Reload', - republish: 'Republish entire site', remove: 'Remove', rename: 'Rename', + republish: 'Republish entire site', + resendInvite: 'Resend Invitation', restore: 'Restore', - chooseWhereToCopy: 'Choose where to copy', - chooseWhereToMove: 'Choose where to move', - chooseWhereToImport: 'Choose where to import', - toInTheTreeStructureBelow: 'to in the tree structure below', - infiniteEditorChooseWhereToCopy: 'Choose where to copy the selected item(s)', - infiniteEditorChooseWhereToMove: 'Choose where to move the selected item(s)', - wasMovedTo: 'was moved to', - wasCopiedTo: 'was copied to', - wasDeleted: 'was deleted', rights: 'Permissions', rollback: 'Rollback', sendtopublish: 'Send To Publish', sendToTranslate: 'Send To Translation', setGroup: 'Set group', - sort: 'Sort', - translate: 'Translate', - update: 'Update', setPermissions: 'Set permissions', + sort: 'Sort children of', + toInTheTreeStructureBelow: 'to in the tree structure below', + translate: 'Translate', + trash: 'Trash', unlock: 'Unlock', - createblueprint: 'Create Document Blueprint', - resendInvite: 'Resend Invitation', - deployQueueForTransfer: 'Queue for transfer', - deployRestore: 'Workspace restore', - deployTreeRestore: 'Tree restore', - deployPartialRestore: 'Partial restore', - deployTransferNow: 'Transfer now', - deployCompare: 'Compare', + unpublish: 'Unpublish', + update: 'Update', + wasCopiedTo: 'was copied to', + wasDeleted: 'was deleted', + wasMovedTo: 'was moved to', }, actionCategories: { content: 'Content', @@ -1800,6 +1805,7 @@ export default { createDate: 'User created', changePassword: 'Change your password', changePhoto: 'Change photo', + configureMfa: 'Configure MFA', emailRequired: 'Required - enter an email address for this user', newPassword: 'New password', newPasswordFormatLengthTip: 'Minimum %0% character(s) to go!', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts index bf2f0136f6..6e386576d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-trash', - label: 'Delete...', + label: '#actions_delete', itemRepositoryAlias: '', detailRepositoryAlias: '', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts index 0174d495ef..051ebdde0b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/duplicate/duplicate.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-documents', - label: 'Duplicate to...', + label: '#actions_copy', itemRepositoryAlias: '', duplicateRepositoryAlias: '', pickerModal: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.kind.ts index a872359e9f..09b3fb9010 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/move/move.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-enter', - label: 'Move to (TBD)...', + label: '#actions_move', itemRepositoryAlias: '', moveRepositoryAlias: '', pickerModal: '', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.kind.ts index 42dab12acb..3845a19139 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/sort-children-of/sort-children-of.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-height', - label: 'Sort Children...', + label: '#actions_sort', itemRepositoryAlias: '', sortRepositoryAlias: '', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts index beb3103a7b..82f5511ddf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/trash/trash.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-trash', - label: 'Trash', + label: '#actions_trash', itemRepositoryAlias: '', trashRepositoryAlias: '', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/rename-server-file.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/rename-server-file.action.kind.ts index 7af4436044..f54bb2417c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/rename-server-file.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/rename-server-file.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-edit', - label: 'Rename...', + label: '#actions_rename', renameRepositoryAlias: '', itemRepositoryAlias: '', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts index 4a03faa74f..6d3ec770bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/create-folder/create-folder.action.kind.ts @@ -16,7 +16,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-add', - label: 'Create folder...', + label: '#actions_folderCreate', }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts index a737db6ff2..30677f4ba5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/delete-folder/delete-folder.action.kind.ts @@ -16,7 +16,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-trash', - label: 'Delete Folder...', + label: '#actions_folderDelete', }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts index a7390e4da4..39f62fcb10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/entity-action/update-folder/update-folder.action.kind.ts @@ -16,7 +16,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-edit', - label: 'Rename Folder...', + label: '#actions_folderRename', }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.kind.ts index 87e817a078..56906b23a9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.kind.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/reload-tree-item-children/reload-tree-item-children.action.kind.ts @@ -15,7 +15,7 @@ export const manifest: UmbBackofficeManifestKind = { forEntityTypes: [], meta: { icon: 'icon-refresh', - label: 'Reload children', + label: '#actions_refreshNode', }, }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/manifests.ts index b4ecb39f47..69a757fac4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/entity-actions/create/manifests.ts @@ -5,7 +5,7 @@ import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry'; const entityActions: Array = [ { type: 'entityAction', - kind: 'delete', + kind: 'default', alias: 'Umb.EntityAction.DataType.Create', name: 'Create Data Type Entity Action', weight: 1000, @@ -13,7 +13,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DATA_TYPE_ROOT_ENTITY_TYPE, UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/reload-tree-item-children/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/reload-tree-item-children/manifests.ts index cf276f7dc6..c2a2ff3859 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/reload-tree-item-children/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/reload-tree-item-children/manifests.ts @@ -8,6 +8,5 @@ export const manifests: Array = [ alias: 'Umb.EntityAction.DataType.Tree.ReloadChildrenOf', name: 'Reload Data Type Tree Item Children Entity Action', forEntityTypes: [UMB_DATA_TYPE_ROOT_ENTITY_TYPE, UMB_DATA_TYPE_FOLDER_ENTITY_TYPE], - meta: {}, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/manifests.ts index e3503e1c88..e331dd3d01 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/entity-action/manifests.ts @@ -13,7 +13,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create', + label: '#dictionary_createNew', }, }, { @@ -36,7 +36,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DICTIONARY_ENTITY_TYPE], meta: { icon: 'icon-download-alt', - label: 'Export', + label: '#actions_export', }, }, { @@ -49,7 +49,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DICTIONARY_ENTITY_TYPE, UMB_DICTIONARY_ROOT_ENTITY_TYPE], meta: { icon: 'icon-page-up', - label: 'Import', + label: '#actions_import', }, }, { 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 e22aaa3ac6..fcea8dd858 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 @@ -21,7 +21,7 @@ const entityActions: Array = [ ], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, { 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 844d5dd2ff..db6c6478f7 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 @@ -12,7 +12,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, ]; 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 76f0b2f269..7a74ff3ef1 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 @@ -13,7 +13,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { icon: 'icon-home', - label: 'Culture and Hostnames...', + label: '#actions_assigndomain', }, }, ]; 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 3d5c84ca4c..1db66fe1de 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 @@ -31,7 +31,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { icon: 'icon-blueprint', - label: 'Create Document Blueprint (TBD)', + label: '#actions_createblueprint', }, }, { @@ -70,7 +70,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { icon: 'icon-globe', - label: 'Publish', + label: '#actions_publish', }, }, { @@ -83,7 +83,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { icon: 'icon-globe', - label: 'Unpublish...', + label: '#actions_unpublish', }, }, { @@ -96,7 +96,7 @@ const entityActions: Array = [ api: () => import('./permissions.action.js'), meta: { icon: 'icon-name-badge', - label: 'Permissions...', + label: '#actions_setPermissions', }, }, { @@ -109,7 +109,7 @@ const entityActions: Array = [ api: () => import('./permissions.action.js'), meta: { icon: 'icon-megaphone', - label: 'Notifications...', + label: '#actions_notify', }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/manifests.ts index 6fafa57fb6..3f7b69c528 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/public-access/manifests.ts @@ -7,13 +7,13 @@ const entityActions: Array = [ type: 'entityAction', kind: 'default', alias: 'Umb.EntityAction.Document.PublicAccess', - name: 'Document Permissions Entity Action', + name: 'Document Public Access Entity Action', weight: 200, api: UmbDocumentPublicAccessEntityAction, forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { icon: 'icon-lock', - label: 'Restrict Public Access...', + label: '#actions_protect', }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/entity-actions/manifests.ts index e1f0f005cb..cfb8a2c75e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/entity-actions/manifests.ts @@ -25,7 +25,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_LANGUAGE_ROOT_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create', + label: '#actions_create', }, }, ]; 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 950ba4c98f..e47997e8ee 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 @@ -17,7 +17,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_MEDIA_TYPE_ENTITY_TYPE, UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts index 01adf09894..6d961309f3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts @@ -13,7 +13,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create', + label: '#actions_create', }, }, ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/entity-actions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/entity-actions/manifests.ts index 177b69c006..1af70b700e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/entity-actions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/entity-actions/manifests.ts @@ -15,7 +15,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, { 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 da6fef2722..91977b42b3 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 @@ -13,7 +13,7 @@ export const manifests: Array = [ forEntityTypes: [UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, { 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 1c8c5aa5da..4b9b260cf4 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 @@ -13,7 +13,7 @@ export const manifests: Array = [ forEntityTypes: [UMB_SCRIPT_ROOT_ENTITY_TYPE, UMB_SCRIPT_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, { 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 df096e95f5..b0b1c1903f 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 @@ -13,7 +13,7 @@ export const manifests: Array = [ forEntityTypes: [UMB_STYLESHEET_ROOT_ENTITY_TYPE, UMB_STYLESHEET_FOLDER_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create...', + label: '#actions_create', }, }, { 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 701e5606e7..f7ec206706 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 @@ -13,7 +13,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_TEMPLATE_ENTITY_TYPE, UMB_TEMPLATE_ROOT_ENTITY_TYPE], meta: { icon: 'icon-add', - label: 'Create', + label: '#actions_create', }, }, { 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 a8200fddfc..6e6b8d2f63 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 @@ -34,7 +34,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_USER_ENTITY_TYPE], meta: { icon: 'icon-check', - label: 'Enable', + label: '#actions_enable', }, conditions: [ { @@ -52,7 +52,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_USER_ENTITY_TYPE], meta: { icon: 'icon-block', - label: 'Disable', + label: '#actions_disable', }, conditions: [ { @@ -70,7 +70,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_USER_ENTITY_TYPE], meta: { icon: 'icon-key', - label: 'Change Password', + label: '#user_changePassword', }, }, { @@ -83,7 +83,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_USER_ENTITY_TYPE], meta: { icon: 'icon-unlocked', - label: 'Unlock', + label: '#actions_unlock', }, conditions: [ { @@ -101,7 +101,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_USER_ENTITY_TYPE], meta: { icon: 'icon-settings', - label: 'Configure Two-Factor', + label: '#user_configureMfa', }, conditions: [ { 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 bfce6da496..f2b7db505e 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 @@ -14,7 +14,7 @@ const entityActions: Array = [ forEntityTypes: [UMB_USER_ENTITY_TYPE], meta: { icon: 'icon-message', - label: 'Resend Invite', + label: '#actions_resendInvite', }, conditions: [ { From d742dbbf5224bc5eca8efe9ff6f976eb4a605b6a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 19:04:04 +0200 Subject: [PATCH 140/177] add method to localize string with hashes --- .../localization-api/localization.controller.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 9706aa8272..49691db7e7 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 @@ -159,4 +159,18 @@ export class UmbLocalizationController { + const key = match.slice(1); + const localized = this.term(key); + // we didn't find a localized string, so we return the original string with the # + return localized === key ? match : localized; + }); + + return localizedText; + } } From ee20c9e0183f66f62e6b9c8ccde9aa11ec83de9b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 19:04:17 +0200 Subject: [PATCH 141/177] localize dashboard labels --- .../section-main-views/section-main-views.element.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) 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 c8d639e8e7..023f3a450d 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 @@ -97,7 +97,7 @@ export class UmbSectionMainViewElement extends UmbLitElement { }}> - ` + ` : html`${nothing}`; } @@ -107,17 +107,16 @@ export class UmbSectionMainViewElement extends UmbLitElement { ? html` ${this._dashboards.map((dashboard) => { - const dashboardName = dashboard.meta.label ?? dashboard.name; const dashboardPath = this.#constructDashboardPath(dashboard); return html` `; })} - ` + ` : ''; } @@ -140,7 +139,7 @@ export class UmbSectionMainViewElement extends UmbLitElement { `; })} - ` + ` : ''; } From 0daab7023fcb0a7f2dd95c9ad719e9dc7554963f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 19:07:12 +0200 Subject: [PATCH 142/177] add keys to section manifests --- .../src/packages/core/settings/manifests.ts | 2 +- .../src/packages/dictionary/section/manifests.ts | 2 +- .../src/packages/documents/section.manifests.ts | 2 +- .../src/packages/media/section.manifests.ts | 2 +- .../src/packages/members/member-section/manifests.ts | 2 +- .../src/packages/packages/package-section/manifests.ts | 2 +- .../src/packages/user/user-section/manifests.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/settings/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/core/settings/manifests.ts index 73f0a117b6..803d177dbe 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/settings/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/settings/manifests.ts @@ -9,7 +9,7 @@ export const manifests = [ name: 'Settings Section', weight: 400, meta: { - label: 'Settings', + label: '#sections_settings', pathname: 'settings', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts index 9baccac979..2ae5954eab 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/section/manifests.ts @@ -10,7 +10,7 @@ const section: ManifestSection = { name: 'Dictionary Section', weight: 100, meta: { - label: 'Dictionary', + label: '#sections_translation', pathname: 'dictionary', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts index 81a84ad864..bba5937c6b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/section.manifests.ts @@ -12,7 +12,7 @@ const section: ManifestSection = { name: 'Content Section', weight: 600, meta: { - label: 'Content', + label: '#sections_content', pathname: 'content', }, conditions: [ 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 e06de6f026..3981df871d 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 @@ -9,7 +9,7 @@ const section: ManifestSection = { name: 'Media Section', weight: 500, meta: { - label: 'Media', + label: '#sections_media', pathname: 'media', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-section/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-section/manifests.ts index 9b9ffe225e..368ad7f0d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-section/manifests.ts @@ -6,7 +6,7 @@ const section: ManifestSection = { name: 'Members Section', weight: 300, meta: { - label: 'Members', + label: '#sections_member', pathname: 'member-management', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts index 6667d5cbd2..7d33c33694 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts @@ -8,7 +8,7 @@ const section: ManifestSection = { name: 'Packages Section', weight: 200, meta: { - label: 'Packages', + label: '#sections_packages', pathname: 'packages', }, conditions: [ diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-section/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-section/manifests.ts index 72f444e0b0..2a5b10ef93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-section/manifests.ts @@ -8,7 +8,7 @@ const section: ManifestSection = { name: 'User Management Section', weight: 100, meta: { - label: 'Users', + label: '#sections_users', pathname: 'user-management', }, conditions: [ From f96f7850c2053cc6c6da0d6ae360a5cae33471e4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 19:11:10 +0200 Subject: [PATCH 143/177] localize entity action label --- .../core/entity-action/default/entity-action.element.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts index e0c639c52c..de1f6cab4e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts @@ -53,7 +53,9 @@ export class UmbEntityActionElement< render() { return html` From 33259bfdba6abca8eaf9a0a02dcf899026f96ed2 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 20:15:26 +0200 Subject: [PATCH 144/177] add key to workspace views --- src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts | 1 + .../workspace/views/manifests.ts | 2 +- .../block/block-grid/workspace/views/manifests.ts | 6 +++--- .../block/block-list/workspace/views/manifests.ts | 2 +- .../block/block-rte/workspace/views/manifests.ts | 2 +- .../packages/block/block/workspace/manifests.ts | 4 ++-- .../workspace/views/design/manifest.ts | 2 +- .../src/packages/data-type/workspace/manifests.ts | 6 +++--- .../src/packages/dictionary/workspace/manifests.ts | 2 +- .../document-types/workspace/manifests.ts | 10 +++++----- .../documents/documents/workspace/manifests.ts | 14 +++++++------- .../language/workspace/language/manifests.ts | 4 ++-- .../src/packages/log-viewer/workspace/manifests.ts | 2 +- .../media/media-types/workspace/manifests.ts | 6 +++--- .../packages/media/media/workspace/manifests.ts | 6 +++--- .../members/member-group/workspace/manifests.ts | 2 +- .../members/member-type/workspace/manifests.ts | 4 ++-- .../packages/members/member/workspace/manifests.ts | 2 +- .../workspace/relation-type/manifests.ts | 2 +- .../templating/stylesheets/workspace/manifests.ts | 6 +++--- 20 files changed, 43 insertions(+), 42 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 5a1f48c0a4..00ce18b31c 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 @@ -750,6 +750,7 @@ export default { deleted: 'Deleted', deleting: 'Deleting...', design: 'Design', + details: 'Details', dictionary: 'Dictionary', dimensions: 'Dimensions', discard: 'Discard', diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/manifests.ts index c92f2b2d77..0e8e9ccd27 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/manifests.ts @@ -9,7 +9,7 @@ export const workspaceViews: Array = [ js: () => import('./settings.element.js'), weight: 1000, meta: { - label: 'Settings', + label: '#general_settings', pathname: 'settings', icon: 'icon-settings', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts index 57f890ed14..793f06141d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/manifests.ts @@ -9,7 +9,7 @@ export const workspaceViews: Array = [ js: () => import('./block-grid-type-workspace-view-settings.element.js'), weight: 1000, meta: { - label: 'Settings', + label: '#general_settings', pathname: 'settings', icon: 'icon-settings', }, @@ -27,7 +27,7 @@ export const workspaceViews: Array = [ js: () => import('./block-grid-type-workspace-view-areas.element.js'), weight: 1000, meta: { - label: 'Areas', + label: '#blockEditor_areas', pathname: 'areas', icon: 'icon-grid', }, @@ -45,7 +45,7 @@ export const workspaceViews: Array = [ js: () => import('./block-grid-type-workspace-view-advanced.element.js'), weight: 1000, meta: { - label: 'Advanced', + label: '#blockEditor_tabAreas', pathname: 'advanced', icon: 'icon-wrench', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/manifests.ts index 03b003709b..1774211ed4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/workspace/views/manifests.ts @@ -9,7 +9,7 @@ export const workspaceViews: Array = [ js: () => import('./block-list-type-workspace-view.element.js'), weight: 1000, meta: { - label: 'Settings', + label: '#blockEditor_tabBlockSettings', pathname: 'settings', icon: 'icon-settings', }, 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 e574f7aa62..b94ed190cf 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 @@ -9,7 +9,7 @@ export const workspaceViews: Array = [ js: () => import('./block-rte-type-workspace-view.element.js'), weight: 1000, meta: { - label: 'Settings', + label: '#general_settings', pathname: 'settings', icon: 'icon-settings', }, 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 bc76264f4d..3567aa784c 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 @@ -38,7 +38,7 @@ export const manifests: Array = [ js: () => import('./views/edit/block-workspace-view-edit.element.js'), weight: 1000, meta: { - label: 'Content', + label: '#general_content', pathname: 'content', icon: 'icon-document', blockElementManagerName: 'content', @@ -63,7 +63,7 @@ export const manifests: Array = [ js: () => import('./views/edit/block-workspace-view-edit.element.js'), weight: 1000, meta: { - label: 'Settings', + label: '#general_settings', pathname: 'settings', icon: 'icon-settings', blockElementManagerName: 'settings', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/manifest.ts index 42b52d383f..86a9442024 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/manifest.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content-type/workspace/views/design/manifest.ts @@ -11,7 +11,7 @@ export const contentTypeDesignEditorManifest: UmbBackofficeManifestKind = { element: () => import('./content-type-design-editor.element.js'), weight: 1000, meta: { - label: 'Design', + label: '#general_design', pathname: 'design', icon: 'icon-document-dashed-line', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts index 5aa2fda518..39b93bc9a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/manifests.ts @@ -26,7 +26,7 @@ const workspaceViews: Array = [ js: () => import('./views/details/data-type-details-workspace-view.element.js'), weight: 90, meta: { - label: 'Details', + label: '#general_details', pathname: 'details', icon: 'edit', }, @@ -44,7 +44,7 @@ const workspaceViews: Array = [ js: () => import('./views/info/workspace-view-data-type-info.element.js'), weight: 90, meta: { - label: 'Info', + label: '#general_info', pathname: 'info', icon: 'info', }, @@ -65,7 +65,7 @@ const workspaceActions: Array = [ name: 'Save Data Type Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts index e889ec34da..dcf75fd076 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts @@ -25,7 +25,7 @@ const workspaceViews: Array = [ js: () => import('./views/workspace-view-dictionary-editor.element.js'), weight: 100, meta: { - label: 'Edit', + label: '#general_edit', pathname: 'edit', icon: 'edit', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts index 7aa4387ada..deaca635a6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/manifests.ts @@ -26,7 +26,7 @@ const workspaceViews: Array = [ alias: 'Umb.WorkspaceView.DocumentType.Design', name: 'Document Type Workspace Design View', meta: { - label: 'Design', + label: '#general_design', pathname: 'design', icon: 'icon-document-dashed-line', compositionRepositoryAlias: UMB_DOCUMENT_TYPE_COMPOSITION_REPOSITORY_ALIAS, @@ -45,7 +45,7 @@ const workspaceViews: Array = [ element: () => import('./views/structure/document-type-workspace-view-structure.element.js'), weight: 800, meta: { - label: 'Structure', + label: '#contentTypeEditor_structure', pathname: 'structure', icon: 'icon-mindmap', }, @@ -63,7 +63,7 @@ const workspaceViews: Array = [ element: () => import('./views/settings/document-type-workspace-view-settings.element.js'), weight: 600, meta: { - label: 'Settings', + label: '#general_settings', pathname: 'settings', icon: 'icon-settings', }, @@ -81,7 +81,7 @@ const workspaceViews: Array = [ element: () => import('./views/templates/document-type-workspace-view-templates.element.js'), weight: 400, meta: { - label: 'Templates', + label: '#treeHeaders_templates', pathname: 'templates', icon: 'icon-layout', }, @@ -102,7 +102,7 @@ const workspaceActions: Array = [ name: 'Save Document Type Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, 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 a46f146d5c..dc5e8493b1 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 @@ -52,7 +52,7 @@ const workspaceViews: Array = [ element: () => import('./views/edit/document-workspace-view-edit.element.js'), weight: 200, meta: { - label: 'Content', + label: '#general_content', pathname: 'content', icon: 'document', }, @@ -70,7 +70,7 @@ const workspaceViews: Array = [ element: () => import('./views/info/document-workspace-view-info.element.js'), weight: 100, meta: { - label: 'Info', + label: '#general_info', pathname: 'info', icon: 'info', }, @@ -92,7 +92,7 @@ const workspaceActions: Array = [ weight: 70, api: UmbDocumentSaveAndPublishWorkspaceAction, meta: { - label: 'Save And Publish', + label: '#buttons_saveAndPublish', look: 'primary', color: 'positive', }, @@ -111,7 +111,7 @@ const workspaceActions: Array = [ weight: 80, api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'secondary', color: 'positive', }, @@ -152,7 +152,7 @@ const workspaceActionMenuItems: Array = [ api: UmbDocumentUnpublishWorkspaceAction, forWorkspaceActions: 'Umb.WorkspaceAction.Document.SaveAndPublish', meta: { - label: 'Unpublish...', + label: '#buttons_unpublish', icon: 'icon-globe', }, }, @@ -165,7 +165,7 @@ const workspaceActionMenuItems: Array = [ api: UmbDocumentPublishWithDescendantsWorkspaceAction, forWorkspaceActions: 'Umb.WorkspaceAction.Document.SaveAndPublish', meta: { - label: 'Publish with descendants...', + label: '#buttons_publishWithDescendants', icon: 'icon-globe', }, }, @@ -178,7 +178,7 @@ const workspaceActionMenuItems: Array = [ api: UmbDocumentSaveAndScheduleWorkspaceAction, forWorkspaceActions: 'Umb.WorkspaceAction.Document.SaveAndPublish', meta: { - label: 'Schedule...', + label: '#buttons_schedulePublish', icon: 'icon-globe', }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/manifests.ts index 96711c9deb..ce50e15990 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/manifests.ts @@ -24,7 +24,7 @@ const workspaceViews: Array = [ js: () => import('./views/language-details-workspace-view.element.js'), weight: 90, meta: { - label: 'Details', + label: '#general_details', pathname: 'details', icon: 'edit', }, @@ -47,7 +47,7 @@ const workspaceActions: Array = [ meta: { look: 'primary', color: 'positive', - label: 'Save', + label: '#buttons_save', }, conditions: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/manifests.ts index 22154a19b6..b1076a052c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/manifests.ts @@ -44,7 +44,7 @@ const workspaceViews: Array = [ element: () => import('./views/search/index.js'), weight: 200, meta: { - label: 'Search', + label: '#general_search', pathname: 'search', icon: 'icon-search', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts index 9826f39746..62bd3c02b8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/manifests.ts @@ -26,7 +26,7 @@ const workspaceViews: Array = [ alias: 'Umb.WorkspaceView.MediaType.Design', name: 'Media Type Workspace Design View', meta: { - label: 'Design', + label: '#general_design', pathname: 'design', icon: 'icon-document-dashed-line', }, @@ -44,7 +44,7 @@ const workspaceViews: Array = [ js: () => import('./views/structure/media-type-workspace-view-structure.element.js'), weight: 800, meta: { - label: 'Structure', + label: '#contentTypeEditor_structure', pathname: 'structure', icon: 'icon-mindmap', }, @@ -65,7 +65,7 @@ const workspaceActions: Array = [ name: 'Save Media Type Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, 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 bd158e586e..00808ce9c6 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 @@ -44,7 +44,7 @@ const workspaceViews: Array = [ js: () => import('./views/edit/media-workspace-view-edit.element.js'), weight: 200, meta: { - label: 'Media', + label: '#general_details', pathname: 'media', icon: 'icon-picture', }, @@ -62,7 +62,7 @@ const workspaceViews: Array = [ js: () => import('./views/info/media-workspace-view-info.element.js'), weight: 100, meta: { - label: 'Info', + label: '#general_info', pathname: 'info', icon: 'info', }, @@ -83,7 +83,7 @@ const workspaceActions: Array = [ name: 'Save Media Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts index f17abf1cf3..20b806865c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts @@ -48,7 +48,7 @@ export const workspaceViews: Array = [ js: () => import('./views/info/member-type-workspace-view-info.element.js'), weight: 300, meta: { - label: 'Info', + label: '#general_info', pathname: 'info', icon: 'icon-document', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/manifests.ts index 336c403747..8acc0d3acd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/workspace/manifests.ts @@ -25,7 +25,7 @@ const workspaceViews: Array = [ alias: 'Umb.WorkspaceView.MemberType.Design', name: 'Member Type Workspace Design View', meta: { - label: 'Design', + label: '#general_design', pathname: 'design', icon: 'icon-member-dashed-line', }, @@ -46,7 +46,7 @@ const workspaceActions: Array = [ name: 'Save Member Type Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts index 9198c2ef10..52d5bf443e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts @@ -48,7 +48,7 @@ export const workspaceViews: Array = [ js: () => import('./views/content/member-workspace-view-content.element.js'), weight: 100, meta: { - label: 'Content', + label: '#general_details', pathname: 'content', icon: 'icon-document', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/manifests.ts index 49fc7fad40..88485c6869 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/manifests.ts @@ -19,7 +19,7 @@ const workspaceViews: Array = [ js: () => import('./views/relation-type-detail-workspace-view.element.js'), weight: 20, meta: { - label: 'Details', + label: '#general_details', pathname: 'details', icon: 'icon-trafic', }, 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 ffdb1016de..576b32f168 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 @@ -26,7 +26,7 @@ const workspaceViews: Array = [ js: () => import('./views/code-editor/stylesheet-code-editor-workspace-view.element.js'), weight: 700, meta: { - label: 'Code', + label: '#stylesheet_tabCode', pathname: 'code', icon: 'icon-brackets', }, @@ -44,7 +44,7 @@ const workspaceViews: Array = [ js: () => import('./views/rich-text-rule/stylesheet-rich-text-rule-workspace-view.element.js'), weight: 800, meta: { - label: 'Rich Text Editor', + label: '#stylesheet_tabRule', pathname: 'rich-text-editor', icon: 'icon-font', }, @@ -64,7 +64,7 @@ const workspaceActions: Array = [ name: 'Save Stylesheet Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, From 77b1b220b543e3278cdd8e0bc43cf13c6d899e9b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 20:19:28 +0200 Subject: [PATCH 145/177] add keys for workspace actions --- .../block-grid-area-config-entry/workspace/manifests.ts | 2 +- .../src/packages/block/block-type/workspace/manifests.ts | 2 +- .../src/packages/block/block/workspace/manifests.ts | 2 +- .../src/packages/dictionary/workspace/manifests.ts | 2 +- .../src/packages/members/member-group/workspace/manifests.ts | 2 +- .../src/packages/members/member/workspace/manifests.ts | 2 +- .../packages/templating/partial-views/workspace/manifests.ts | 2 +- .../src/packages/templating/scripts/workspace/manifests.ts | 2 +- .../src/packages/templating/templates/workspace/manifests.ts | 2 +- .../src/packages/user/user-group/workspace/manifests.ts | 2 +- .../src/packages/user/user/workspace/manifests.ts | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/manifests.ts index 17644bc775..f338a81368 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/manifests.ts @@ -21,7 +21,7 @@ export const manifests: Array = [ name: 'Save Block Grid Area Type Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Submit', + label: '#general_submit', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/manifests.ts index 0df0592053..3bd2d3aea3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/manifests.ts @@ -12,7 +12,7 @@ export const manifests: Array = [ name: 'Save Block Type Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Submit', + label: '#general_submit', look: 'primary', color: 'positive', }, 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 3567aa784c..8d31bc6c3f 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 @@ -10,7 +10,7 @@ export const manifests: Array = [ name: 'Save Block Type Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Submit', + label: '#general_submit', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts index dcf75fd076..fb241d41d8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/manifests.ts @@ -47,7 +47,7 @@ const workspaceActions: Array = [ weight: 90, api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts index 20b806865c..7732091c9b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/workspace/manifests.ts @@ -27,7 +27,7 @@ const workspaceActions: Array = [ name: 'Save Member Group Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts index 52d5bf443e..98312be30d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/manifests.ts @@ -27,7 +27,7 @@ const workspaceActions: Array = [ name: 'Save Member Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts index 734cd8e35d..e390ab43c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/manifests.ts @@ -22,7 +22,7 @@ const workspaceActions: Array = [ name: 'Save Partial View', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/manifests.ts index a5ac33c6db..a440205f97 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/scripts/workspace/manifests.ts @@ -24,7 +24,7 @@ const workspaceActions: Array = [ name: 'Save Script Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts index 13a5f9b71b..9648fdcc09 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/workspace/manifests.ts @@ -31,7 +31,7 @@ const workspaceActions: Array = [ meta: { look: 'primary', color: 'positive', - label: 'Save', + label: '#buttons_save', }, conditions: [ { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/manifests.ts index 9a24209b37..cae9d05cd7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/manifests.ts @@ -25,7 +25,7 @@ const workspaceActions: Array = [ name: 'Save User Group Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/manifests.ts index f54a0593a2..9e4423458c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/manifests.ts @@ -28,7 +28,7 @@ const workspaceActions: Array = [ name: 'Save User Workspace Action', api: UmbSubmitWorkspaceAction, meta: { - label: 'Save', + label: '#buttons_save', look: 'primary', color: 'positive', }, From 7601f81d0542b3dd2c8605e5a194cfb767623ab8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 20:31:04 +0200 Subject: [PATCH 146/177] fix keys --- .../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 dc5e8493b1..70284ccffd 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 @@ -152,7 +152,7 @@ const workspaceActionMenuItems: Array = [ api: UmbDocumentUnpublishWorkspaceAction, forWorkspaceActions: 'Umb.WorkspaceAction.Document.SaveAndPublish', meta: { - label: '#buttons_unpublish', + label: '#actions_unpublish', icon: 'icon-globe', }, }, @@ -165,7 +165,7 @@ const workspaceActionMenuItems: Array = [ api: UmbDocumentPublishWithDescendantsWorkspaceAction, forWorkspaceActions: 'Umb.WorkspaceAction.Document.SaveAndPublish', meta: { - label: '#buttons_publishWithDescendants', + label: '#buttons_publishDescendants', icon: 'icon-globe', }, }, From 436bab24fa7946010de90859ee283deec5ad3a9f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 20:31:17 +0200 Subject: [PATCH 147/177] localize workspace action --- .../workspace-action/default/workspace-action.element.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action.element.ts index 3aa40821b3..8539bbda99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action.element.ts @@ -1,6 +1,6 @@ import type { UmbWorkspaceAction } from '../workspace-action.interface.js'; import { UmbActionExecutedEvent } from '@umbraco-cms/backoffice/event'; -import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +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/backoffice/lit-element'; import type { @@ -117,7 +117,9 @@ export class UmbWorkspaceActionElement< @click=${this._onClick} look=${this.#manifest?.meta.look || 'default'} color=${this.#manifest?.meta.color || 'default'} - label=${this.#manifest?.meta.label || ''} + label=${ifDefined( + this.#manifest?.meta.label ? this.localize.string(this.#manifest.meta.label) : this.#manifest?.name, + )} .disabled=${this._isDisabled} .state=${this._buttonState}> Date: Mon, 8 Apr 2024 20:31:29 +0200 Subject: [PATCH 148/177] localize workspace action menu item --- .../default/workspace-action-menu-item.element.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts index b9314156d5..ce758395d0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts @@ -48,7 +48,9 @@ export class UmbWorkspaceActionMenuItemElement< render() { return html` From 71970c9f6599316df6ef1fcacfaf0fe85b899f64 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 20:39:31 +0200 Subject: [PATCH 149/177] localize workspace views --- .../components/workspace-editor/workspace-editor.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-editor/workspace-editor.element.ts index a97eb4b5ed..0ab6de3fe3 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 @@ -110,11 +110,11 @@ export class UmbWorkspaceEditorElement extends UmbLitElement { (view) => view.alias, (view) => html` - ${view.meta.label || view.name} + ${view.meta.label ? this.localize.string(view.meta.label) : view.name} `, )} From 510ca07bda6da05ea971eb6245587e60d06cd1db Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 20:55:57 +0200 Subject: [PATCH 150/177] localize section views --- .../section/section-main-views/section-main-views.element.ts | 2 +- .../src/packages/media/media/section-view/manifests.ts | 2 +- .../src/packages/packages/package-section/manifests.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) 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 023f3a450d..6a7d3917b6 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 @@ -126,7 +126,7 @@ export class UmbSectionMainViewElement extends UmbLitElement { ? html` ${this._views.map((view) => { - const viewName = view.meta.label ?? view.name; + const viewName = view.meta.label ? this.localize.string(view.meta.label) : view.name; const viewPath = this.#constructViewPath(view); return html` = [ element: () => import('./media-section-view.element.js'), weight: 200, meta: { - label: 'Media', + label: '#general_media', pathname: 'media', icon: 'icon-user', }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts index 7d33c33694..fb2c6018c7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-section/manifests.ts @@ -45,7 +45,7 @@ const sectionsViews: Array = [ element: () => import('./views/installed/installed-packages-section-view.element.js'), weight: 200, meta: { - label: 'Installed', + label: '#packager_installed', pathname: 'installed', icon: 'icon-box', }, @@ -63,7 +63,7 @@ const sectionsViews: Array = [ element: () => import('./views/created/created-packages-section-view.element.js'), weight: 100, meta: { - label: 'Created', + label: '#packager_created', pathname: 'created', icon: 'icon-files', }, From c3dd6866d13b4a1ee44013b9e87fce5b5efcc9f4 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 20:58:56 +0200 Subject: [PATCH 151/177] localize sections --- .../components/backoffice-header-sections.element.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 12a8fac134..5dd782a1a0 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,7 +1,7 @@ import { UMB_BACKOFFICE_CONTEXT } from '../backoffice.context.js'; import type { UmbBackofficeContext } from '../backoffice.context.js'; import type { CSSResultGroup } from '@umbraco-cms/backoffice/external/lit'; -import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; import type { ManifestSection } from '@umbraco-cms/backoffice/extension-registry'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbExtensionManifestInitializer } from '@umbraco-cms/backoffice/extension-api'; @@ -62,7 +62,11 @@ export class UmbBackofficeHeaderSectionsElement extends UmbLitElement { + label="${ifDefined( + section.manifest?.meta.label + ? this.localize.string(section.manifest?.meta.label) + : section.manifest?.name, + )}"> `, )} From ada8ff545201bd4643167c3a4302f5911b7c6398 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 21:18:06 +0200 Subject: [PATCH 152/177] update the use permission manifest to use same convention --- .../models/entity-user-permission.model.ts | 2 - .../documents/user-permissions/manifests.ts | 60 +++++++++---------- .../input-entity-user-permission.element.ts | 6 +- 3 files changed, 32 insertions(+), 36 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-user-permission.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-user-permission.model.ts index 4eb5723b94..db8ed1e2e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-user-permission.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/entity-user-permission.model.ts @@ -9,8 +9,6 @@ export interface ManifestEntityUserPermission extends ManifestBase { export interface MetaEntityUserPermission { verbs: Array; label?: string; - labelKey?: string; description?: string; - descriptionKey?: string; group?: string; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/manifests.ts index 1fc1880cb9..dd05ad4153 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/manifests.ts @@ -30,8 +30,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Read'], - labelKey: 'actions_browse', - descriptionKey: 'actionDescriptions_browse', + label: '#actions_browse', + description: '#actionDescriptions_browse', }, }, { @@ -41,8 +41,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.CreateBlueprint'], - labelKey: 'actions_createblueprint', - descriptionKey: 'actionDescriptions_createblueprint', + label: '#actions_createblueprint', + description: '#actionDescriptions_createblueprint', }, }, { @@ -52,8 +52,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Delete'], - labelKey: 'actions_delete', - descriptionKey: 'actionDescriptions_delete', + label: '#actions_delete', + description: '#actionDescriptions_delete', }, }, { @@ -63,8 +63,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Create'], - labelKey: 'actions_create', - descriptionKey: 'actionDescriptions_create', + label: '#actions_create', + description: '#actionDescriptions_create', }, }, { @@ -74,8 +74,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Notifications'], - labelKey: 'actions_notify', - descriptionKey: 'actionDescriptions_notify', + label: '#actions_notify', + description: '#actionDescriptions_notify', }, }, { @@ -85,8 +85,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Publish'], - labelKey: 'actions_publish', - descriptionKey: 'actionDescriptions_publish', + label: '#actions_publish', + description: '#actionDescriptions_publish', }, }, { @@ -96,8 +96,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Permissions'], - labelKey: 'actions_setPermissions', - descriptionKey: 'actionDescriptions_rights', + label: '#actions_setPermissions', + description: '#actionDescriptions_rights', }, }, { @@ -107,8 +107,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Unpublish'], - labelKey: 'actions_unpublish', - descriptionKey: 'actionDescriptions_unpublish', + label: '#actions_unpublish', + description: '#actionDescriptions_unpublish', }, }, { @@ -118,8 +118,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Update'], - labelKey: 'actions_update', - descriptionKey: 'actionDescriptions_update', + label: '#actions_update', + description: '#actionDescriptions_update', }, }, { @@ -129,8 +129,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Duplicate'], - labelKey: 'actions_copy', - descriptionKey: 'actionDescriptions_copy', + label: '#actions_copy', + description: '#actionDescriptions_copy', group: 'structure', }, }, @@ -141,8 +141,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Move'], - labelKey: 'actions_move', - descriptionKey: 'actionDescriptions_move', + label: '#actions_move', + description: '#actionDescriptions_move', group: 'structure', }, }, @@ -153,8 +153,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Sort'], - labelKey: 'actions_sort', - descriptionKey: 'actionDescriptions_sort', + label: '#actions_sort', + description: '#actionDescriptions_sort', group: 'structure', }, }, @@ -165,8 +165,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.CultureAndHostnames'], - labelKey: 'actions_assigndomain', - descriptionKey: 'actionDescriptions_assignDomain', + label: '#actions_assigndomain', + description: '#actionDescriptions_assignDomain', group: 'administration', }, }, @@ -177,8 +177,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.PublicAccess'], - labelKey: 'actions_protect', - descriptionKey: 'actionDescriptions_protect', + label: '#actions_protect', + description: '#actionDescriptions_protect', group: 'administration', }, }, @@ -189,8 +189,8 @@ const permissions: Array = [ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE], meta: { verbs: ['Umb.Document.Rollback'], - labelKey: 'actions_rollback', - descriptionKey: 'actionDescriptions_rollback', + label: '#actions_rollback', + description: '#actionDescriptions_rollback', group: 'administration', }, }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/input-entity-user-permission/input-entity-user-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/input-entity-user-permission/input-entity-user-permission.element.ts index 490b97b45e..5b19e06dd3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/input-entity-user-permission/input-entity-user-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/components/input-entity-user-permission/input-entity-user-permission.element.ts @@ -94,10 +94,8 @@ export class UmbInputEntityUserPermissionElement extends FormControlMixin(UmbLit #renderPermission(manifest: ManifestEntityUserPermission) { return html` this.#onChangeUserPermission(event, manifest.meta.verbs)}>`; From c5f1e7adb9390ce6deec6b8f2722e745c49d8e9f Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 21:21:24 +0200 Subject: [PATCH 153/177] localize sections --- .../user-group-table-sections-column-layout.element.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 684c9d266d..657fc4355a 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 @@ -24,7 +24,9 @@ export class UmbUserGroupTableSectionsColumnLayoutElement extends UmbLitElement this.observe( umbExtensionsRegistry.byType('section'), (sections) => { - this._sectionsNames = sections.filter((x) => this.value.includes(x.alias)).map((x) => x.meta.label || x.name); + this._sectionsNames = sections + .filter((x) => this.value.includes(x.alias)) + .map((x) => (x.meta.label ? this.localize.string(x.meta.label) : x.name)); }, 'umbUserGroupTableSectionsColumnLayoutObserver', ); From 4938c6632b0fe707b5204d78cdfa4ac0a632335c Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 21:25:26 +0200 Subject: [PATCH 154/177] localize sections --- .../core/section/components/ref-section/ref-section.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/components/ref-section/ref-section.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/components/ref-section/ref-section.element.ts index 8b41537035..0b9892c507 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/components/ref-section/ref-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/components/ref-section/ref-section.element.ts @@ -11,7 +11,7 @@ export class UmbRefSectionElement extends UmbElementMixin(UUIRefElement) { public render() { return html`
-
${this.item?.meta.label}
+
${this.item?.meta.label ? this.localize.string(this.item.meta.label) : this.item?.name}
From 4f7d553fc2ccaabd452f9672f5997c9aba3ac22a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 8 Apr 2024 21:34:15 +0200 Subject: [PATCH 155/177] add translations keys to all tree root items --- .../src/packages/data-type/tree/data-type-tree.repository.ts | 2 +- .../src/packages/dictionary/tree/dictionary-tree.repository.ts | 2 +- .../document-types/tree/document-type-tree.repository.ts | 2 +- .../recycle-bin/tree/document-recycle-bin-tree.repository.ts | 2 +- .../documents/documents/tree/document-tree.repository.ts | 2 +- .../media/media-types/tree/media-type-tree.repository.ts | 2 +- .../src/packages/media/media/tree/media-tree.repository.ts | 2 +- .../members/member-type/tree/member-type-tree.repository.ts | 2 +- .../partial-views/tree/partial-view-tree.repository.ts | 2 +- .../packages/templating/scripts/tree/script-tree.repository.ts | 2 +- .../templating/stylesheets/tree/stylesheet-tree.repository.ts | 2 +- .../templating/templates/tree/template-tree.repository.ts | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts index 8e1702f7ef..2c9f04fc7c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbDataTypeTreeRepository const data: UmbDataTypeTreeRootModel = { unique: null, entityType: UMB_DATA_TYPE_ROOT_ENTITY_TYPE, - name: 'Data Types', + name: '#treeHeaders_dataTypes', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts index 8e273e86ef..b772686501 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbDictionaryTreeRepository const data: UmbDictionaryTreeRootModel = { unique: null, entityType: UMB_DICTIONARY_ROOT_ENTITY_TYPE, - name: 'Dictionary', + name: '#treeHeaders_dictionary', hasChildren: true, 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 0f45c87dfa..15d2f7f74c 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 @@ -18,7 +18,7 @@ export class UmbDocumentTypeTreeRepository const data: UmbDocumentTypeTreeRootModel = { unique: null, entityType: UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, - name: 'Document Types', + name: '#treeHeaders_documentTypes', hasChildren: true, isFolder: true, }; 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 37ff658fb9..e1857c9203 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 @@ -18,7 +18,7 @@ export class UmbDocumentRecycleBinTreeRepository const data = { unique: null, entityType: UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE, - name: 'Recycle Bin', + name: '#treeHeaders_contentRecycleBin', icon: 'icon-trash', hasChildren: true, isContainer: false, 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 8e1e117978..999e7aff82 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 @@ -18,7 +18,7 @@ export class UmbDocumentTreeRepository const data: UmbDocumentTreeRootModel = { unique: null, entityType: UMB_DOCUMENT_ROOT_ENTITY_TYPE, - name: 'Documents', + name: '#treeHeaders_content', 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 ae20ab7e9c..deac728c26 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 @@ -18,7 +18,7 @@ export class UmbMediaTypeTreeRepository const data: UmbMediaTypeTreeRootModel = { unique: null, entityType: UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, - name: 'Media Types', + name: '#treeHeaders_mediaTypes', 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 c9b9893e53..7fea19f1ac 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 @@ -18,7 +18,7 @@ export class UmbMediaTreeRepository const data: UmbMediaTreeRootModel = { unique: null, entityType: UMB_MEDIA_ROOT_ENTITY_TYPE, - name: 'Media', + name: '#treeHeaders_media', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts index 80d19d5ef5..fa6123d7d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbMemberTypeTreeRepository const data: UmbMemberTypeTreeRootModel = { unique: null, entityType: UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE, - name: 'Member Types', + name: '#treeHeaders_memberTypes', hasChildren: true, 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 d24813369e..27cd6feb94 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 @@ -18,7 +18,7 @@ export class UmbPartialViewTreeRepository const data: UmbPartialViewTreeRootModel = { unique: null, entityType: UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, - name: 'Partial Views', + name: '#treeHeaders_partialViews', 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 7e12203803..2dec0c4450 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 @@ -15,7 +15,7 @@ export class UmbScriptTreeRepository extends UmbTreeRepositoryBase Date: Mon, 8 Apr 2024 21:53:41 +0200 Subject: [PATCH 156/177] translate in repo --- .../src/packages/core/tree/data/tree-repository-base.ts | 2 ++ .../src/packages/data-type/tree/data-type-tree.repository.ts | 2 +- .../src/packages/dictionary/tree/dictionary-tree.repository.ts | 2 +- .../document-types/tree/document-type-tree.repository.ts | 2 +- .../recycle-bin/tree/document-recycle-bin-tree.repository.ts | 2 +- .../documents/documents/tree/document-tree.repository.ts | 2 +- .../media/media-types/tree/media-type-tree.repository.ts | 2 +- .../src/packages/media/media/tree/media-tree.repository.ts | 2 +- .../members/member-type/tree/member-type-tree.repository.ts | 2 +- .../partial-views/tree/partial-view-tree.repository.ts | 2 +- .../packages/templating/scripts/tree/script-tree.repository.ts | 2 +- .../templating/stylesheets/tree/stylesheet-tree.repository.ts | 2 +- .../templating/templates/tree/template-tree.repository.ts | 2 +- 13 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts index 2409617d42..5b31136389 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts @@ -7,6 +7,7 @@ import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; 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'; +import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api'; /** * Base class for a tree repository. @@ -28,6 +29,7 @@ export abstract class UmbTreeRepositoryBase< { protected _init: Promise; protected _treeStore?: UmbTreeStore; + protected _localization = new UmbLocalizationController(this._host); #treeSource: UmbTreeDataSource; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts index 2c9f04fc7c..693e029576 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbDataTypeTreeRepository const data: UmbDataTypeTreeRootModel = { unique: null, entityType: UMB_DATA_TYPE_ROOT_ENTITY_TYPE, - name: '#treeHeaders_dataTypes', + name: this._localization.term('treeHeaders_dataTypes'), hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts index b772686501..347ddaa4f8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbDictionaryTreeRepository const data: UmbDictionaryTreeRootModel = { unique: null, entityType: UMB_DICTIONARY_ROOT_ENTITY_TYPE, - name: '#treeHeaders_dictionary', + name: this._localization.term('treeHeaders_dictionary'), hasChildren: true, 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 15d2f7f74c..b78b79aa7a 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 @@ -18,7 +18,7 @@ export class UmbDocumentTypeTreeRepository const data: UmbDocumentTypeTreeRootModel = { unique: null, entityType: UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, - name: '#treeHeaders_documentTypes', + name: this._localization.term('treeHeaders_documentTypes'), hasChildren: true, isFolder: true, }; 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 e1857c9203..7638856a56 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 @@ -18,7 +18,7 @@ export class UmbDocumentRecycleBinTreeRepository const data = { unique: null, entityType: UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE, - name: '#treeHeaders_contentRecycleBin', + name: this._localization.term('treeHeaders_contentRecycleBin'), icon: 'icon-trash', hasChildren: true, isContainer: false, 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 999e7aff82..cca61a908a 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 @@ -18,7 +18,7 @@ export class UmbDocumentTreeRepository const data: UmbDocumentTreeRootModel = { unique: null, entityType: UMB_DOCUMENT_ROOT_ENTITY_TYPE, - name: '#treeHeaders_content', + name: this._localization.term('treeHeaders_content'), 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 deac728c26..b4277e789c 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 @@ -18,7 +18,7 @@ export class UmbMediaTypeTreeRepository const data: UmbMediaTypeTreeRootModel = { unique: null, entityType: UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, - name: '#treeHeaders_mediaTypes', + name: this._localization.term('treeHeaders_mediaTypes'), 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 7fea19f1ac..31c76138c0 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 @@ -18,7 +18,7 @@ export class UmbMediaTreeRepository const data: UmbMediaTreeRootModel = { unique: null, entityType: UMB_MEDIA_ROOT_ENTITY_TYPE, - name: '#treeHeaders_media', + name: this._localization.term('treeHeaders_media'), hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts index fa6123d7d7..6d227d5502 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbMemberTypeTreeRepository const data: UmbMemberTypeTreeRootModel = { unique: null, entityType: UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE, - name: '#treeHeaders_memberTypes', + name: this._localization.term('treeHeaders_memberTypes'), hasChildren: true, 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 27cd6feb94..6064d7e544 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 @@ -18,7 +18,7 @@ export class UmbPartialViewTreeRepository const data: UmbPartialViewTreeRootModel = { unique: null, entityType: UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, - name: '#treeHeaders_partialViews', + name: this._localization.term('treeHeaders_partialViews'), 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 2dec0c4450..84c1add8f0 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 @@ -15,7 +15,7 @@ export class UmbScriptTreeRepository extends UmbTreeRepositoryBase Date: Tue, 9 Apr 2024 08:55:14 +0200 Subject: [PATCH 157/177] Revert "translate in repo" This reverts commit f304b15b856a5cb0d93dea619b4d35818768cb8e. --- .../src/packages/core/tree/data/tree-repository-base.ts | 2 -- .../src/packages/data-type/tree/data-type-tree.repository.ts | 2 +- .../src/packages/dictionary/tree/dictionary-tree.repository.ts | 2 +- .../document-types/tree/document-type-tree.repository.ts | 2 +- .../recycle-bin/tree/document-recycle-bin-tree.repository.ts | 2 +- .../documents/documents/tree/document-tree.repository.ts | 2 +- .../media/media-types/tree/media-type-tree.repository.ts | 2 +- .../src/packages/media/media/tree/media-tree.repository.ts | 2 +- .../members/member-type/tree/member-type-tree.repository.ts | 2 +- .../partial-views/tree/partial-view-tree.repository.ts | 2 +- .../packages/templating/scripts/tree/script-tree.repository.ts | 2 +- .../templating/stylesheets/tree/stylesheet-tree.repository.ts | 2 +- .../templating/templates/tree/template-tree.repository.ts | 2 +- 13 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts index 5b31136389..2409617d42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/data/tree-repository-base.ts @@ -7,7 +7,6 @@ import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; 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'; -import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api'; /** * Base class for a tree repository. @@ -29,7 +28,6 @@ export abstract class UmbTreeRepositoryBase< { protected _init: Promise; protected _treeStore?: UmbTreeStore; - protected _localization = new UmbLocalizationController(this._host); #treeSource: UmbTreeDataSource; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts index 693e029576..2c9f04fc7c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/tree/data-type-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbDataTypeTreeRepository const data: UmbDataTypeTreeRootModel = { unique: null, entityType: UMB_DATA_TYPE_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_dataTypes'), + name: '#treeHeaders_dataTypes', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts index 347ddaa4f8..b772686501 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/tree/dictionary-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbDictionaryTreeRepository const data: UmbDictionaryTreeRootModel = { unique: null, entityType: UMB_DICTIONARY_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_dictionary'), + name: '#treeHeaders_dictionary', hasChildren: true, 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 b78b79aa7a..15d2f7f74c 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 @@ -18,7 +18,7 @@ export class UmbDocumentTypeTreeRepository const data: UmbDocumentTypeTreeRootModel = { unique: null, entityType: UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_documentTypes'), + name: '#treeHeaders_documentTypes', hasChildren: true, isFolder: true, }; 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 7638856a56..e1857c9203 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 @@ -18,7 +18,7 @@ export class UmbDocumentRecycleBinTreeRepository const data = { unique: null, entityType: UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_contentRecycleBin'), + name: '#treeHeaders_contentRecycleBin', icon: 'icon-trash', hasChildren: true, isContainer: false, 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 cca61a908a..999e7aff82 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 @@ -18,7 +18,7 @@ export class UmbDocumentTreeRepository const data: UmbDocumentTreeRootModel = { unique: null, entityType: UMB_DOCUMENT_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_content'), + name: '#treeHeaders_content', 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 b4277e789c..deac728c26 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 @@ -18,7 +18,7 @@ export class UmbMediaTypeTreeRepository const data: UmbMediaTypeTreeRootModel = { unique: null, entityType: UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_mediaTypes'), + name: '#treeHeaders_mediaTypes', 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 31c76138c0..7fea19f1ac 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 @@ -18,7 +18,7 @@ export class UmbMediaTreeRepository const data: UmbMediaTreeRootModel = { unique: null, entityType: UMB_MEDIA_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_media'), + name: '#treeHeaders_media', hasChildren: true, isFolder: true, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts index 6d227d5502..fa6123d7d7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/tree/member-type-tree.repository.ts @@ -18,7 +18,7 @@ export class UmbMemberTypeTreeRepository const data: UmbMemberTypeTreeRootModel = { unique: null, entityType: UMB_MEMBER_TYPE_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_memberTypes'), + name: '#treeHeaders_memberTypes', hasChildren: true, 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 6064d7e544..27cd6feb94 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 @@ -18,7 +18,7 @@ export class UmbPartialViewTreeRepository const data: UmbPartialViewTreeRootModel = { unique: null, entityType: UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE, - name: this._localization.term('treeHeaders_partialViews'), + name: '#treeHeaders_partialViews', 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 84c1add8f0..2dec0c4450 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 @@ -15,7 +15,7 @@ export class UmbScriptTreeRepository extends UmbTreeRepositoryBase Date: Tue, 9 Apr 2024 08:57:04 +0200 Subject: [PATCH 158/177] translate magic hash --- .../tree/tree-item/tree-item-base/tree-item-element-base.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts index fff0a03aeb..82f98b8a28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts @@ -117,7 +117,7 @@ export abstract class UmbTreeItemElementBase ${this.renderIconContainer()} ${this.renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()} From 88545b9f9582767d12e21e2b23cdf9135ddbbd2a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Apr 2024 09:59:38 +0200 Subject: [PATCH 159/177] add tests --- .../localization.controller.test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 c9b1ab775a..e85968960f 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 @@ -274,6 +274,22 @@ describe('UmbLocalizeController', () => { }); }); + describe('string', () => { + it('should replace words prefixed with a # with translated value', async () => { + const str = '#close'; + const str2 = '#logout #close'; + const str3 = '#logout #missing_translation_key #close'; + expect(controller.string(str)).to.equal('Close'); + expect(controller.string(str2)).to.equal('Log out Close'); + expect(controller.string(str3)).to.equal('Log out #missing_translation_key Close'); + }); + + it('should return the word with a # if the word is not found', async () => { + const str = '#missing_translation_key'; + expect(controller.string(str)).to.equal('#missing_translation_key'); + }); + }); + describe('host element', () => { let element: UmbLocalizeControllerHostElement; From 5a34eba10cb30e90d5cb19a03ad9d8a3e8845a51 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 10:06:53 +0200 Subject: [PATCH 160/177] remove extra layout --- .../src/assets/login.jpg | Bin 366426 -> 0 bytes .../auth/modals/umb-app-auth-modal.element.ts | 74 +++--------------- 2 files changed, 13 insertions(+), 61 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/assets/login.jpg diff --git a/src/Umbraco.Web.UI.Client/src/assets/login.jpg b/src/Umbraco.Web.UI.Client/src/assets/login.jpg deleted file mode 100644 index 6b97f2c9439bdaabb9172019081f9afb6b87bcb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366426 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
yu9tN}s3Cwo+N_0sSF(yJrXN0wmd2gkoBF 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≫0m*T$-UoS(m&+$j@TiDQ#uA% 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 z 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˦#& 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 RoZB^R@^NtHar)np{{sh8y1M`X diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index c767b57350..9fb5122908 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -30,22 +30,17 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement - - -

${this.headline}

- ${this.data?.userLoginState === 'timedOut' - ? html`

${this.localize.term('login_timeout')}

` - : ''} - -
- + +

${this.headline}

+ ${this.data?.userLoginState === 'timedOut' + ? html`

${this.localize.term('login_timeout')}

` + : ''} + +
`; } @@ -59,41 +54,13 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement Date: Tue, 9 Apr 2024 10:10:20 +0200 Subject: [PATCH 161/177] update implementation after labelKey is removed --- .../input-document-granular-user-permission.element.ts | 9 +-------- .../components/user-group-ref/user-group-ref.element.ts | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts index 7eb0367957..661cbed611 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/input-document-granular-user-permission/input-document-granular-user-permission.element.ts @@ -218,14 +218,7 @@ export class UmbInputDocumentGranularUserPermissionElement extends FormControlMi ) .map((m) => { const manifest = m as ManifestEntityUserPermission; - - if (manifest.meta.labelKey) { - return this.localize.term(manifest.meta.labelKey); - } else if (manifest.meta.label) { - return manifest.meta.label; - } else { - return manifest.name; - } + return manifest.meta.label ? this.localize.string(manifest.meta.label) : manifest.name; }) .join(', '); } 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 79d6c5adf5..1c2b3c03a7 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 @@ -40,7 +40,7 @@ export class UmbUserGroupRefElement extends UmbElementMixin(UUIRefNodeElement) { #setUserPermissionLabels(manifests: Array) { this.#userPermissionLabels = manifests.map((manifest) => - manifest.meta.labelKey ? this.localize.term(manifest.meta.labelKey) : manifest.meta.label ?? '', + manifest.meta.label ? this.localize.string(manifest.meta.label) : manifest.name, ); } From 5bbdca08feedca185364ba4c608c466a7aa54f58 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 10:19:43 +0200 Subject: [PATCH 162/177] remove automatic opacity --- .../backoffice-modal-container.element.ts | 1 - 1 file changed, 1 deletion(-) 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 1ad2272850..bd01e0acf1 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 @@ -113,7 +113,6 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { :host([fill-background]) #container::after { background: var(--backdrop-background); - opacity: 0.75; } `, ]; From 7fe1fa772d31368b06bd367c15797d502715d22e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 10:19:59 +0200 Subject: [PATCH 163/177] set background with logo for backdrop when first signing in --- src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index db450075c4..78f61dd40b 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -122,8 +122,8 @@ export class UmbAppAuthController extends UmbControllerBase { }, modal: { backdropBackground: this.#firstTimeLoggingIn - ? 'var(--umb-auth-backdrop, rgba(0, 0, 0, 0.75))' - : 'var(--umb-auth-backdrop-timedout, #000)', + ? 'var(--umb-auth-backdrop, url("/umbraco/backoffice/assets/umbraco_logo_white.svg") 20px 20px / 200px no-repeat, radial-gradient(circle, rgba(2,0,36,1) 0%, rgba(40,58,151,.9) 50%, rgba(0,212,255,1) 100%))' + : 'var(--umb-auth-backdrop-timedout, rgba(0,0,0,0.75))', }, }) .onSubmit() From 149c662a9897bc9d811370a50e6c223447cac12e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 10:31:06 +0200 Subject: [PATCH 164/177] generate new models --- .../src/services/PackageResource.ts | 25 ------------------- 1 file changed, 25 deletions(-) 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 5224dc06b3..6698b384b0 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 @@ -194,31 +194,6 @@ export class PackageResource { }); } - /** - * @returns any Success - * @throws ApiError - */ - public static getPackageManifest(): CancelablePromise> { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/package/manifest', - errors: { - 401: `The resource is protected and requires an authentication token`, - }, - }); - } - - /** - * @returns any Success - * @throws ApiError - */ - public static getPackageManifestPublic(): CancelablePromise> { - return __request(OpenAPI, { - method: 'GET', - url: '/umbraco/management/api/v1/package/manifest/public', - }); - } - /** * @returns any Success * @throws ApiError From 455712ecd71e3da5856dbb6a8ef9bcd00214c095 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 10:35:53 +0200 Subject: [PATCH 165/177] update code after merge --- .../src/apps/app/app.element.ts | 4 ++-- .../src/packages/core/umbraco-package.ts | 12 ------------ 2 files changed, 2 insertions(+), 14 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts 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 f33d0b672f..e5a2a100ab 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,4 +1,4 @@ -import { onInit } from '../../packages/core/index.js'; +import { onInit } from '../../packages/core/entry-point.js'; import type { UmbAppErrorElement } from './app-error.element.js'; import { UmbAppContext } from './app.context.js'; import { UmbServerConnection } from './server-connection.js'; @@ -89,7 +89,7 @@ export class UmbAppElement extends UmbLitElement { this.#authContext = new UmbAuthContext(this, this.serverUrl, this.backofficePath, this.bypassAuth); new UmbAppContext(this, { backofficePath: this.backofficePath, serverUrl: this.serverUrl }); - // Register Core extensions + // Register Core extensions (this is specifically done here because we need these extensions to be registered before the application is initialized) onInit(this, umbExtensionsRegistry); // Register public extensions 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 deleted file mode 100644 index 98bf5c8f3b..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/core/umbraco-package.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { ManifestEntryPoint } from '@umbraco-cms/backoffice/extension-api'; - -export const name = 'Umbraco.Core'; -export const version = '0.0.1'; -export const extensions: Array = [ - { - name: 'Core Entry Point', - alias: 'Umb.EntryPoint.Core', - type: 'entryPoint', - js: () => import('./entry-point.js'), - }, -]; From d99104e8000b84e3fff2259e701800b0c2d0862c Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 10:40:19 +0200 Subject: [PATCH 166/177] fix wrong import --- src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 45c56d006b..30ecb97891 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 configHandlers } from './handlers/config.handlers.js'; export const handlers = [ serverHandlers.serverRunningHandler, serverHandlers.serverInformationHandler, - manifestsHandlers.manifestEmptyHandlers, + ...manifestsHandlers.manifestEmptyHandlers, ...auditLogHandlers, ...installHandlers, ...upgradeHandlers, From a3199d54f41bd1caca1e3a0eb8145bce5800696a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 9 Apr 2024 11:25:47 +0200 Subject: [PATCH 167/177] temp ts ignore --- .../src/libs/localization-api/localization.controller.ts | 3 +++ 1 file changed, 3 insertions(+) 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 49691db7e7..1a2ebfbfdf 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 @@ -166,6 +166,9 @@ export class UmbLocalizationController { const key = match.slice(1); + // TODO: find solution to pass dynamic string to term + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore const localized = this.term(key); // we didn't find a localized string, so we return the original string with the # return localized === key ? match : localized; From 27271b1fe665e9d4e0acd686df245d3fa706d7b9 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 14:25:37 +0200 Subject: [PATCH 168/177] add /logout to post logout uri redirect in the signout method --- .../src/apps/app/app-auth.controller.ts | 9 +++++++-- src/Umbraco.Web.UI.Client/src/apps/app/app.element.ts | 7 +++++++ .../src/packages/core/auth/auth-flow.ts | 5 ++++- .../src/packages/core/auth/auth.context.ts | 8 ++++++-- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 78f61dd40b..758803b65b 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -65,7 +65,9 @@ export class UmbAppAuthController extends UmbControllerBase { } // Save location.href so we can redirect to it after login - window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); + if (location.href !== this.#authContext.getPostLogoutRedirectUrl()) { + window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); + } // If the user is timed out, we can show the login modal directly if (userLoginState === 'timedOut') { @@ -90,7 +92,10 @@ export class UmbAppAuthController extends UmbControllerBase { this.#authContext.makeAuthorizationRequest(); } else { // Check if any provider is redirecting directly to the provider - const redirectProvider = availableProviders.find((provider) => provider.meta?.behavior?.autoRedirect); + const redirectProvider = + userLoginState === 'loggingIn' + ? availableProviders.find((provider) => provider.meta?.behavior?.autoRedirect) + : undefined; if (redirectProvider) { // Redirect directly to the provider 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 e5a2a100ab..de8c4ee346 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 @@ -56,6 +56,13 @@ export class UmbAppElement extends UmbLitElement { component: () => import('../upgrader/upgrader.element.js'), guards: [this.#isAuthorizedGuard()], }, + { + path: 'logout', + resolve: () => { + this.#authContext?.clearTokenStorage(); + this.#authController.makeAuthorizationRequest('loggedOut'); + }, + }, { path: '**', component: () => import('../backoffice/backoffice.element.js'), diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts index 01b20582f9..82455be922 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts @@ -89,6 +89,7 @@ export class UmbAuthFlow { // state readonly #configuration: AuthorizationServiceConfiguration; readonly #redirectUri: string; + readonly #postLogoutRedirectUri: string; readonly #clientId: string; readonly #scope: string; @@ -99,10 +100,12 @@ export class UmbAuthFlow { constructor( openIdConnectUrl: string, redirectUri: string, + postLogoutRedirectUri: string, clientId = 'umbraco-back-office', scope = 'offline_access', ) { this.#redirectUri = redirectUri; + this.#postLogoutRedirectUri = postLogoutRedirectUri; this.#clientId = clientId; this.#scope = scope; @@ -283,7 +286,7 @@ export class UmbAuthFlow { // 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}`; + location.href = `${this.#configuration.endSessionEndpoint}?post_logout_redirect_uri=${this.#postLogoutRedirectUri}`; } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts index cf99b23c35..be37177cc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth.context.ts @@ -26,7 +26,7 @@ export class UmbAuthContext extends UmbContextBase { this.#serverUrl = serverUrl; this.#backofficePath = backofficePath; - this.#authFlow = new UmbAuthFlow(serverUrl, this.#getRedirectUrl()); + this.#authFlow = new UmbAuthFlow(serverUrl, this.getRedirectUrl(), this.getPostLogoutRedirectUrl()); } /** @@ -166,7 +166,11 @@ export class UmbAuthContext extends UmbContextBase { return this.isInitialized.pipe(switchMap(() => umbExtensionsRegistry.byType('authProvider'))); } - #getRedirectUrl() { + getRedirectUrl() { return `${window.location.origin}${this.#backofficePath}`; } + + getPostLogoutRedirectUrl() { + return `${window.location.origin}${this.#backofficePath.endsWith('/') ? this.#backofficePath : this.#backofficePath + '/'}logout`; + } } From df9d50bb35927420c10828b21d11fe3eacebe9ac Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 9 Apr 2024 13:39:21 +0100 Subject: [PATCH 169/177] When an Auth Provider has `denyLocalLogin` enables then unregister the default Umbraco provider, e.g. "Umb.AuthProviders.Umbraco" extension. --- .../src/apps/app/app-auth.controller.ts | 56 ++++++++++++------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index 758803b65b..b87afe24f6 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -7,7 +7,9 @@ import { import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { filter, firstValueFrom, skip } from '@umbraco-cms/backoffice/external/rxjs'; +import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; +import type { ManifestAuthProvider } from '@umbraco-cms/backoffice/extension-registry'; export class UmbAppAuthController extends UmbControllerBase { #authContext?: typeof UMB_AUTH_CONTEXT.TYPE; @@ -69,9 +71,12 @@ export class UmbAppAuthController extends UmbControllerBase { window.sessionStorage.setItem(UMB_STORAGE_REDIRECT_URL, location.href); } + // Figure out which providers are available + const availableProviders = await firstValueFrom(this.#authContext.getAuthProviders()); + // If the user is timed out, we can show the login modal directly if (userLoginState === 'timedOut') { - const selected = await this.#showLoginModal(userLoginState); + const selected = await this.#showLoginModal(userLoginState, availableProviders); if (!selected) { return false; @@ -80,9 +85,6 @@ export class UmbAppAuthController extends UmbControllerBase { return this.#updateState(); } - // Figure out which providers are available - const availableProviders = await firstValueFrom(this.#authContext.getAuthProviders()); - if (availableProviders.length === 0) { throw new Error('[Fatal] No auth providers available'); } @@ -90,34 +92,46 @@ export class UmbAppAuthController extends UmbControllerBase { if (availableProviders.length === 1) { // One provider available (most likely the Umbraco provider), so initiate the authorization request to the default provider this.#authContext.makeAuthorizationRequest(); - } else { - // Check if any provider is redirecting directly to the provider - const redirectProvider = - userLoginState === 'loggingIn' - ? availableProviders.find((provider) => provider.meta?.behavior?.autoRedirect) - : undefined; + return this.#updateState(); + } - if (redirectProvider) { - // Redirect directly to the provider - this.#authContext.makeAuthorizationRequest(redirectProvider.forProviderName); - } else { - // Show the provider selection screen - const selected = await this.#showLoginModal(userLoginState); + // Check if any provider is redirecting directly to the provider + const redirectProvider = + userLoginState === 'loggingIn' + ? availableProviders.find((provider) => provider.meta?.behavior?.autoRedirect) + : undefined; - if (!selected) { - return false; - } - } + if (redirectProvider) { + // Redirect directly to the provider + this.#authContext.makeAuthorizationRequest(redirectProvider.forProviderName); + return this.#updateState(); + } + + // Show the provider selection screen + const selected = await this.#showLoginModal(userLoginState, availableProviders); + + if (!selected) { + return false; } return this.#updateState(); } - async #showLoginModal(userLoginState: UmbUserLoginState): Promise { + async #showLoginModal( + userLoginState: UmbUserLoginState, + availableProviders: Array, + ): Promise { if (!this.#authContext) { throw new Error('[Fatal] Auth context is not available'); } + // Check if any provider denies local login + const denyLocalLogin = availableProviders.some((provider) => provider.meta?.behavior?.denyLocalLogin); + if (denyLocalLogin) { + // Unregister the Umbraco provider + umbExtensionsRegistry.unregister('Umb.AuthProviders.Umbraco'); + } + // Show the provider selection screen const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); const selected = await modalManager From 4b1e1815f6d045455ffb52e81fbf5db843cfc7df Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 15:07:05 +0200 Subject: [PATCH 170/177] use the built source from @openid/appauth --- src/Umbraco.Web.UI.Client/src/external/openid/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts index fa968cbfc8..5d92bc1f8c 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts @@ -12,6 +12,6 @@ export { RevokeTokenRequest, GRANT_TYPE_AUTHORIZATION_CODE, GRANT_TYPE_REFRESH_TOKEN, -} from '@openid/appauth/src/index.js'; +} from '@openid/appauth'; -export type { LocationLike, StringMap } from '@openid/appauth/src/types.js'; +export type { LocationLike, StringMap } from '@openid/appauth'; From edd7c548052c7a50496359f96502acc70b746d32 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 15:20:07 +0200 Subject: [PATCH 171/177] use the first providerName for default auth --- src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts index b87afe24f6..2e3bb77d9b 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/app/app-auth.controller.ts @@ -91,7 +91,7 @@ export class UmbAppAuthController extends UmbControllerBase { if (availableProviders.length === 1) { // One provider available (most likely the Umbraco provider), so initiate the authorization request to the default provider - this.#authContext.makeAuthorizationRequest(); + this.#authContext.makeAuthorizationRequest(availableProviders[0].forProviderName); return this.#updateState(); } From da2c10327d052a1fe3f65a4175673beb9143155d Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 9 Apr 2024 15:41:02 +0100 Subject: [PATCH 172/177] :notebook: Updated LICENSE added Simple Icons; CC0. --- src/Umbraco.Web.UI.Client/LICENSE | 10 +++++++++- .../src/packages/core/icon-registry/LICENSE | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/LICENSE b/src/Umbraco.Web.UI.Client/LICENSE index aaba059d33..2819c99ca7 100644 --- a/src/Umbraco.Web.UI.Client/LICENSE +++ b/src/Umbraco.Web.UI.Client/LICENSE @@ -27,10 +27,18 @@ Third-party licenses --- Lucide License -ISC License +ISC License Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +--- + +Simple Icons +CC0 1.0 Universal license + +The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. +You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/LICENSE b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/LICENSE index 4300c4cd5e..66b4696927 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/LICENSE +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/LICENSE @@ -1,8 +1,16 @@ Lucide License -ISC License +ISC License Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +--- + +Simple Icons +CC0 1.0 Universal license + +The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. +You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. From 657a07561f00945a3627a575fbfb80ee05e5214f Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:12:49 +0200 Subject: [PATCH 173/177] simpleicons is going to remove the twitter icon, so this is now on disk --- .../src/packages/core/icon-registry/icon-dictionary.json | 4 ---- .../src/packages/core/icon-registry/icons/icon-twitter.js | 7 ++++++- .../src/packages/core/icon-registry/icons/icons.json | 2 +- .../src/packages/core/icon-registry/svgs/icon-twitter.svg | 6 +++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json index 1e30ae54aa..99fb107023 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icon-dictionary.json @@ -2479,10 +2479,6 @@ "name": "icon-microsoft", "file": "microsoft.svg" }, - { - "name": "icon-twitter", - "file": "twitter.svg" - }, { "name": "icon-twitter-x", "file": "x.svg" diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js index 5e4a5c4737..3e61a109ac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icon-twitter.js @@ -1 +1,6 @@ -export default `Twitter`; \ No newline at end of file +export default ` + Twitter + + +`; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json index da2d594374..1fe1f387f0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/icons/icons.json @@ -1 +1 @@ -[{"name":"icon-activity","path":"./icons/icon-activity.js"},{"name":"icon-add","path":"./icons/icon-add.js"},{"name":"icon-addressbook","path":"./icons/icon-addressbook.js"},{"name":"icon-alarm-clock","path":"./icons/icon-alarm-clock.js"},{"name":"icon-alert-alt","path":"./icons/icon-alert-alt.js"},{"name":"icon-alert","path":"./icons/icon-alert.js"},{"name":"icon-alt","path":"./icons/icon-alt.js"},{"name":"icon-anchor","path":"./icons/icon-anchor.js"},{"name":"icon-app","path":"./icons/icon-app.js"},{"name":"icon-application-window-alt","path":"./icons/icon-application-window-alt.js"},{"name":"icon-application-window","path":"./icons/icon-application-window.js"},{"name":"icon-arrivals","path":"./icons/icon-arrivals.js"},{"name":"icon-arrow-down","path":"./icons/icon-arrow-down.js"},{"name":"icon-arrow-left","path":"./icons/icon-arrow-left.js"},{"name":"icon-arrow-right","path":"./icons/icon-arrow-right.js"},{"name":"icon-arrow-up","path":"./icons/icon-arrow-up.js"},{"name":"icon-attachment","path":"./icons/icon-attachment.js"},{"name":"icon-autofill","path":"./icons/icon-autofill.js"},{"name":"icon-award","path":"./icons/icon-award.js"},{"name":"icon-axis-rotation-2","path":"./icons/icon-axis-rotation-2.js"},{"name":"icon-axis-rotation-3","path":"./icons/icon-axis-rotation-3.js"},{"name":"icon-axis-rotation","path":"./icons/icon-axis-rotation.js"},{"name":"icon-backspace","path":"./icons/icon-backspace.js"},{"name":"icon-badge-add","path":"./icons/icon-badge-add.js"},{"name":"icon-badge-remove","path":"./icons/icon-badge-remove.js"},{"name":"icon-badge-restricted","legacy":true,"path":"./icons/icon-badge-restricted.js"},{"name":"icon-bar-chart","path":"./icons/icon-bar-chart.js"},{"name":"icon-barcode","path":"./icons/icon-barcode.js"},{"name":"icon-bars","path":"./icons/icon-bars.js"},{"name":"icon-battery-full","path":"./icons/icon-battery-full.js"},{"name":"icon-battery-low","path":"./icons/icon-battery-low.js"},{"name":"icon-beer-glass","path":"./icons/icon-beer-glass.js"},{"name":"icon-bell-off","path":"./icons/icon-bell-off.js"},{"name":"icon-bell","path":"./icons/icon-bell.js"},{"name":"icon-binarycode","path":"./icons/icon-binarycode.js"},{"name":"icon-bird","path":"./icons/icon-bird.js"},{"name":"icon-birthday-cake","path":"./icons/icon-birthday-cake.js"},{"name":"icon-block","path":"./icons/icon-block.js"},{"name":"icon-bluetooth","path":"./icons/icon-bluetooth.js"},{"name":"icon-boat-shipping","path":"./icons/icon-boat-shipping.js"},{"name":"icon-bones","path":"./icons/icon-bones.js"},{"name":"icon-book-alt-2","path":"./icons/icon-book-alt-2.js"},{"name":"icon-book-alt","path":"./icons/icon-book-alt.js"},{"name":"icon-book","path":"./icons/icon-book.js"},{"name":"icon-bookmark","path":"./icons/icon-bookmark.js"},{"name":"icon-books","path":"./icons/icon-books.js"},{"name":"icon-box-alt","path":"./icons/icon-box-alt.js"},{"name":"icon-box-open","path":"./icons/icon-box-open.js"},{"name":"icon-box","path":"./icons/icon-box.js"},{"name":"icon-brackets","path":"./icons/icon-brackets.js"},{"name":"icon-brick","path":"./icons/icon-brick.js"},{"name":"icon-briefcase","path":"./icons/icon-briefcase.js"},{"name":"icon-browser-window","path":"./icons/icon-browser-window.js"},{"name":"icon-brush-alt-2","path":"./icons/icon-brush-alt-2.js"},{"name":"icon-brush-alt","path":"./icons/icon-brush-alt.js"},{"name":"icon-brush","path":"./icons/icon-brush.js"},{"name":"icon-bug","path":"./icons/icon-bug.js"},{"name":"icon-bulleted-list","path":"./icons/icon-bulleted-list.js"},{"name":"icon-burn","path":"./icons/icon-burn.js"},{"name":"icon-bus","path":"./icons/icon-bus.js"},{"name":"icon-calculator","path":"./icons/icon-calculator.js"},{"name":"icon-calendar-alt","path":"./icons/icon-calendar-alt.js"},{"name":"icon-calendar","path":"./icons/icon-calendar.js"},{"name":"icon-camcorder","legacy":true,"path":"./icons/icon-camcorder.js"},{"name":"icon-camera-roll","path":"./icons/icon-camera-roll.js"},{"name":"icon-candy","path":"./icons/icon-candy.js"},{"name":"icon-caps-lock","path":"./icons/icon-caps-lock.js"},{"name":"icon-car","path":"./icons/icon-car.js"},{"name":"icon-categories","path":"./icons/icon-categories.js"},{"name":"icon-certificate","path":"./icons/icon-certificate.js"},{"name":"icon-chart-curve","path":"./icons/icon-chart-curve.js"},{"name":"icon-chart","path":"./icons/icon-chart.js"},{"name":"icon-chat-active","legacy":true,"path":"./icons/icon-chat-active.js"},{"name":"icon-chat","path":"./icons/icon-chat.js"},{"name":"icon-check","path":"./icons/icon-check.js"},{"name":"icon-checkbox-dotted","path":"./icons/icon-checkbox-dotted.js"},{"name":"icon-checkbox-empty","legacy":true,"path":"./icons/icon-checkbox-empty.js"},{"name":"icon-checkbox","path":"./icons/icon-checkbox.js"},{"name":"icon-chip-alt","legacy":true,"path":"./icons/icon-chip-alt.js"},{"name":"icon-chip","path":"./icons/icon-chip.js"},{"name":"icon-cinema","path":"./icons/icon-cinema.js"},{"name":"icon-circle-dotted-active","path":"./icons/icon-circle-dotted-active.js"},{"name":"icon-circle-dotted","path":"./icons/icon-circle-dotted.js"},{"name":"icon-circuits","path":"./icons/icon-circuits.js"},{"name":"icon-client","legacy":true,"path":"./icons/icon-client.js"},{"name":"icon-cloud-drive","path":"./icons/icon-cloud-drive.js"},{"name":"icon-cloud-upload","path":"./icons/icon-cloud-upload.js"},{"name":"icon-cloud","path":"./icons/icon-cloud.js"},{"name":"icon-cloudy","path":"./icons/icon-cloudy.js"},{"name":"icon-clubs","path":"./icons/icon-clubs.js"},{"name":"icon-cocktail","path":"./icons/icon-cocktail.js"},{"name":"icon-code","path":"./icons/icon-code.js"},{"name":"icon-coffee","path":"./icons/icon-coffee.js"},{"name":"icon-coin-euro","path":"./icons/icon-coin-euro.js"},{"name":"icon-coin-yen","path":"./icons/icon-coin-yen.js"},{"name":"icon-coins-alt","legacy":true,"path":"./icons/icon-coins-alt.js"},{"name":"icon-coins","path":"./icons/icon-coins.js"},{"name":"icon-color-bucket","path":"./icons/icon-color-bucket.js"},{"name":"icon-colorpicker","path":"./icons/icon-colorpicker.js"},{"name":"icon-columns","path":"./icons/icon-columns.js"},{"name":"icon-combination-lock-open","path":"./icons/icon-combination-lock-open.js"},{"name":"icon-combination-lock","path":"./icons/icon-combination-lock.js"},{"name":"icon-command","path":"./icons/icon-command.js"},{"name":"icon-company","path":"./icons/icon-company.js"},{"name":"icon-compress","path":"./icons/icon-compress.js"},{"name":"icon-connection","path":"./icons/icon-connection.js"},{"name":"icon-console","path":"./icons/icon-console.js"},{"name":"icon-contrast","path":"./icons/icon-contrast.js"},{"name":"icon-conversation-alt","path":"./icons/icon-conversation-alt.js"},{"name":"icon-conversation","legacy":true,"path":"./icons/icon-conversation.js"},{"name":"icon-coverflow","path":"./icons/icon-coverflow.js"},{"name":"icon-credit-card-alt","legacy":true,"path":"./icons/icon-credit-card-alt.js"},{"name":"icon-credit-card","path":"./icons/icon-credit-card.js"},{"name":"icon-crop","path":"./icons/icon-crop.js"},{"name":"icon-crosshair","path":"./icons/icon-crosshair.js"},{"name":"icon-crown-alt","legacy":true,"path":"./icons/icon-crown-alt.js"},{"name":"icon-crown","path":"./icons/icon-crown.js"},{"name":"icon-cupcake","legacy":true,"path":"./icons/icon-cupcake.js"},{"name":"icon-curve","path":"./icons/icon-curve.js"},{"name":"icon-cut","path":"./icons/icon-cut.js"},{"name":"icon-dashboard","path":"./icons/icon-dashboard.js"},{"name":"icon-defrag","path":"./icons/icon-defrag.js"},{"name":"icon-delete-key","path":"./icons/icon-delete-key.js"},{"name":"icon-delete","path":"./icons/icon-delete.js"},{"name":"icon-departure","path":"./icons/icon-departure.js"},{"name":"icon-desktop","legacy":true,"path":"./icons/icon-desktop.js"},{"name":"icon-diagnostics","path":"./icons/icon-diagnostics.js"},{"name":"icon-diagonal-arrow-alt","path":"./icons/icon-diagonal-arrow-alt.js"},{"name":"icon-diagonal-arrow","path":"./icons/icon-diagonal-arrow.js"},{"name":"icon-diamond","path":"./icons/icon-diamond.js"},{"name":"icon-diamonds","path":"./icons/icon-diamonds.js"},{"name":"icon-dice","path":"./icons/icon-dice.js"},{"name":"icon-diploma-alt","legacy":true,"path":"./icons/icon-diploma-alt.js"},{"name":"icon-diploma","path":"./icons/icon-diploma.js"},{"name":"icon-directions-alt","path":"./icons/icon-directions-alt.js"},{"name":"icon-directions","path":"./icons/icon-directions.js"},{"name":"icon-disc","path":"./icons/icon-disc.js"},{"name":"icon-disk-image","path":"./icons/icon-disk-image.js"},{"name":"icon-display","path":"./icons/icon-display.js"},{"name":"icon-dna","path":"./icons/icon-dna.js"},{"name":"icon-dock-connector","path":"./icons/icon-dock-connector.js"},{"name":"icon-document-dashed-line","path":"./icons/icon-document-dashed-line.js"},{"name":"icon-document","path":"./icons/icon-document.js"},{"name":"icon-documents","path":"./icons/icon-documents.js"},{"name":"icon-donate","legacy":true,"path":"./icons/icon-donate.js"},{"name":"icon-door-open-alt","legacy":true,"path":"./icons/icon-door-open-alt.js"},{"name":"icon-door-open","path":"./icons/icon-door-open.js"},{"name":"icon-download-alt","path":"./icons/icon-download-alt.js"},{"name":"icon-download","path":"./icons/icon-download.js"},{"name":"icon-drop","path":"./icons/icon-drop.js"},{"name":"icon-eco","path":"./icons/icon-eco.js"},{"name":"icon-economy","legacy":true,"path":"./icons/icon-economy.js"},{"name":"icon-edit","path":"./icons/icon-edit.js"},{"name":"icon-employee","legacy":true,"path":"./icons/icon-employee.js"},{"name":"icon-energy-saving-bulb","path":"./icons/icon-energy-saving-bulb.js"},{"name":"icon-enter","path":"./icons/icon-enter.js"},{"name":"icon-equalizer","path":"./icons/icon-equalizer.js"},{"name":"icon-escape","path":"./icons/icon-escape.js"},{"name":"icon-ethernet","path":"./icons/icon-ethernet.js"},{"name":"icon-eye","path":"./icons/icon-eye.js"},{"name":"icon-facebook-like","path":"./icons/icon-facebook-like.js"},{"name":"icon-factory","path":"./icons/icon-factory.js"},{"name":"icon-favorite","path":"./icons/icon-favorite.js"},{"name":"icon-file-cabinet","path":"./icons/icon-file-cabinet.js"},{"name":"icon-files","path":"./icons/icon-files.js"},{"name":"icon-filter","path":"./icons/icon-filter.js"},{"name":"icon-fingerprint","path":"./icons/icon-fingerprint.js"},{"name":"icon-fire","path":"./icons/icon-fire.js"},{"name":"icon-firewire","legacy":true,"path":"./icons/icon-firewire.js"},{"name":"icon-flag-alt","path":"./icons/icon-flag-alt.js"},{"name":"icon-flag","path":"./icons/icon-flag.js"},{"name":"icon-flash","path":"./icons/icon-flash.js"},{"name":"icon-flashlight","path":"./icons/icon-flashlight.js"},{"name":"icon-flowerpot","path":"./icons/icon-flowerpot.js"},{"name":"icon-folder","path":"./icons/icon-folder.js"},{"name":"icon-folders","path":"./icons/icon-folders.js"},{"name":"icon-font","path":"./icons/icon-font.js"},{"name":"icon-food","path":"./icons/icon-food.js"},{"name":"icon-footprints","path":"./icons/icon-footprints.js"},{"name":"icon-forking","path":"./icons/icon-forking.js"},{"name":"icon-frame-alt","legacy":true,"path":"./icons/icon-frame-alt.js"},{"name":"icon-frame","path":"./icons/icon-frame.js"},{"name":"icon-fullscreen-alt","path":"./icons/icon-fullscreen-alt.js"},{"name":"icon-fullscreen","path":"./icons/icon-fullscreen.js"},{"name":"icon-game","path":"./icons/icon-game.js"},{"name":"icon-geometry","legacy":true,"path":"./icons/icon-geometry.js"},{"name":"icon-gift","path":"./icons/icon-gift.js"},{"name":"icon-glasses","path":"./icons/icon-glasses.js"},{"name":"icon-globe-alt","path":"./icons/icon-globe-alt.js"},{"name":"icon-globe-asia","legacy":true,"path":"./icons/icon-globe-asia.js"},{"name":"icon-globe-europe-africa","legacy":true,"path":"./icons/icon-globe-europe-africa.js"},{"name":"icon-globe-inverted-america","legacy":true,"path":"./icons/icon-globe-inverted-america.js"},{"name":"icon-globe-inverted-asia","legacy":true,"path":"./icons/icon-globe-inverted-asia.js"},{"name":"icon-globe-inverted-europe-africa","legacy":true,"path":"./icons/icon-globe-inverted-europe-africa.js"},{"name":"icon-globe","path":"./icons/icon-globe.js"},{"name":"icon-gps","path":"./icons/icon-gps.js"},{"name":"icon-graduate","path":"./icons/icon-graduate.js"},{"name":"icon-grid","path":"./icons/icon-grid.js"},{"name":"icon-hammer","path":"./icons/icon-hammer.js"},{"name":"icon-hand-active-alt","legacy":true,"path":"./icons/icon-hand-active-alt.js"},{"name":"icon-hand-active","path":"./icons/icon-hand-active.js"},{"name":"icon-hand-pointer-alt","legacy":true,"path":"./icons/icon-hand-pointer-alt.js"},{"name":"icon-hand-pointer","path":"./icons/icon-hand-pointer.js"},{"name":"icon-handshake","path":"./icons/icon-handshake.js"},{"name":"icon-handtool-alt","legacy":true,"path":"./icons/icon-handtool-alt.js"},{"name":"icon-handtool","path":"./icons/icon-handtool.js"},{"name":"icon-hard-drive-alt","legacy":true,"path":"./icons/icon-hard-drive-alt.js"},{"name":"icon-hard-drive","legacy":true,"path":"./icons/icon-hard-drive.js"},{"name":"icon-headphones","path":"./icons/icon-headphones.js"},{"name":"icon-headset","legacy":true,"path":"./icons/icon-headset.js"},{"name":"icon-hearts","path":"./icons/icon-hearts.js"},{"name":"icon-height","path":"./icons/icon-height.js"},{"name":"icon-help-alt","path":"./icons/icon-help-alt.js"},{"name":"icon-help","path":"./icons/icon-help.js"},{"name":"icon-home","path":"./icons/icon-home.js"},{"name":"icon-hourglass","path":"./icons/icon-hourglass.js"},{"name":"icon-imac","legacy":true,"path":"./icons/icon-imac.js"},{"name":"icon-inbox-full","legacy":true,"path":"./icons/icon-inbox-full.js"},{"name":"icon-inbox","path":"./icons/icon-inbox.js"},{"name":"icon-indent","path":"./icons/icon-indent.js"},{"name":"icon-infinity","path":"./icons/icon-infinity.js"},{"name":"icon-info","path":"./icons/icon-info.js"},{"name":"icon-invoice","legacy":true,"path":"./icons/icon-invoice.js"},{"name":"icon-ipad","legacy":true,"path":"./icons/icon-ipad.js"},{"name":"icon-iphone","legacy":true,"path":"./icons/icon-iphone.js"},{"name":"icon-item-arrangement","legacy":true,"path":"./icons/icon-item-arrangement.js"},{"name":"icon-junk","path":"./icons/icon-junk.js"},{"name":"icon-key","path":"./icons/icon-key.js"},{"name":"icon-keyboard","path":"./icons/icon-keyboard.js"},{"name":"icon-lab","path":"./icons/icon-lab.js"},{"name":"icon-laptop","path":"./icons/icon-laptop.js"},{"name":"icon-layers-alt","legacy":true,"path":"./icons/icon-layers-alt.js"},{"name":"icon-layers","path":"./icons/icon-layers.js"},{"name":"icon-layout","path":"./icons/icon-layout.js"},{"name":"icon-left-double-arrow","path":"./icons/icon-left-double-arrow.js"},{"name":"icon-legal","path":"./icons/icon-legal.js"},{"name":"icon-lense","legacy":true,"path":"./icons/icon-lense.js"},{"name":"icon-library","path":"./icons/icon-library.js"},{"name":"icon-light-down","path":"./icons/icon-light-down.js"},{"name":"icon-light-up","path":"./icons/icon-light-up.js"},{"name":"icon-lightning","path":"./icons/icon-lightning.js"},{"name":"icon-link","path":"./icons/icon-link.js"},{"name":"icon-list","path":"./icons/icon-list.js"},{"name":"icon-load","legacy":true,"path":"./icons/icon-load.js"},{"name":"icon-loading","legacy":true,"path":"./icons/icon-loading.js"},{"name":"icon-location-nearby","path":"./icons/icon-location-nearby.js"},{"name":"icon-lock","path":"./icons/icon-lock.js"},{"name":"icon-log-out","path":"./icons/icon-log-out.js"},{"name":"icon-logout","legacy":true,"path":"./icons/icon-logout.js"},{"name":"icon-loupe","legacy":true,"path":"./icons/icon-loupe.js"},{"name":"icon-magnet","path":"./icons/icon-magnet.js"},{"name":"icon-mailbox","path":"./icons/icon-mailbox.js"},{"name":"icon-map-alt","path":"./icons/icon-map-alt.js"},{"name":"icon-map-location","legacy":true,"path":"./icons/icon-map-location.js"},{"name":"icon-map-marker","path":"./icons/icon-map-marker.js"},{"name":"icon-map","path":"./icons/icon-map.js"},{"name":"icon-medal","path":"./icons/icon-medal.js"},{"name":"icon-medical-emergency","path":"./icons/icon-medical-emergency.js"},{"name":"icon-medicine","path":"./icons/icon-medicine.js"},{"name":"icon-meeting","legacy":true,"path":"./icons/icon-meeting.js"},{"name":"icon-megaphone","path":"./icons/icon-megaphone.js"},{"name":"icon-merge","path":"./icons/icon-merge.js"},{"name":"icon-message-open","path":"./icons/icon-message-open.js"},{"name":"icon-message-unopened","legacy":true,"path":"./icons/icon-message-unopened.js"},{"name":"icon-message","path":"./icons/icon-message.js"},{"name":"icon-microscope","path":"./icons/icon-microscope.js"},{"name":"icon-mindmap","legacy":true,"path":"./icons/icon-mindmap.js"},{"name":"icon-mobile","path":"./icons/icon-mobile.js"},{"name":"icon-mountain","path":"./icons/icon-mountain.js"},{"name":"icon-mouse-cursor","path":"./icons/icon-mouse-cursor.js"},{"name":"icon-mouse","path":"./icons/icon-mouse.js"},{"name":"icon-movie-alt","path":"./icons/icon-movie-alt.js"},{"name":"icon-movie","path":"./icons/icon-movie.js"},{"name":"icon-multiple-credit-cards","path":"./icons/icon-multiple-credit-cards.js"},{"name":"icon-music","path":"./icons/icon-music.js"},{"name":"icon-name-badge","legacy":true,"path":"./icons/icon-name-badge.js"},{"name":"icon-navigation-bottom","legacy":true,"path":"./icons/icon-navigation-bottom.js"},{"name":"icon-navigation-down","legacy":true,"path":"./icons/icon-navigation-down.js"},{"name":"icon-navigation-first","legacy":true,"path":"./icons/icon-navigation-first.js"},{"name":"icon-navigation-horizontal","legacy":true,"path":"./icons/icon-navigation-horizontal.js"},{"name":"icon-navigation-last","legacy":true,"path":"./icons/icon-navigation-last.js"},{"name":"icon-navigation-left","legacy":true,"path":"./icons/icon-navigation-left.js"},{"name":"icon-navigation-right","legacy":true,"path":"./icons/icon-navigation-right.js"},{"name":"icon-navigation-road","legacy":true,"path":"./icons/icon-navigation-road.js"},{"name":"icon-navigation-up","legacy":true,"path":"./icons/icon-navigation-up.js"},{"name":"icon-navigation-vertical","legacy":true,"path":"./icons/icon-navigation-vertical.js"},{"name":"icon-navigation","legacy":true,"path":"./icons/icon-navigation.js"},{"name":"icon-navigational-arrow","path":"./icons/icon-navigational-arrow.js"},{"name":"icon-network-alt","path":"./icons/icon-network-alt.js"},{"name":"icon-newspaper-alt","legacy":true,"path":"./icons/icon-newspaper-alt.js"},{"name":"icon-newspaper","path":"./icons/icon-newspaper.js"},{"name":"icon-next-media","legacy":true,"path":"./icons/icon-next-media.js"},{"name":"icon-next","legacy":true,"path":"./icons/icon-next.js"},{"name":"icon-nodes","legacy":true,"path":"./icons/icon-nodes.js"},{"name":"icon-notepad-alt","legacy":true,"path":"./icons/icon-notepad-alt.js"},{"name":"icon-notepad","path":"./icons/icon-notepad.js"},{"name":"icon-old-key","path":"./icons/icon-old-key.js"},{"name":"icon-old-phone","legacy":true,"path":"./icons/icon-old-phone.js"},{"name":"icon-operator","path":"./icons/icon-operator.js"},{"name":"icon-ordered-list","path":"./icons/icon-ordered-list.js"},{"name":"icon-out","path":"./icons/icon-out.js"},{"name":"icon-outbox","legacy":true,"path":"./icons/icon-outbox.js"},{"name":"icon-outdent","path":"./icons/icon-outdent.js"},{"name":"icon-page-add","path":"./icons/icon-page-add.js"},{"name":"icon-page-down","path":"./icons/icon-page-down.js"},{"name":"icon-page-remove","path":"./icons/icon-page-remove.js"},{"name":"icon-page-restricted","path":"./icons/icon-page-restricted.js"},{"name":"icon-page-up","path":"./icons/icon-page-up.js"},{"name":"icon-paint-roller","legacy":true,"path":"./icons/icon-paint-roller.js"},{"name":"icon-palette","path":"./icons/icon-palette.js"},{"name":"icon-panel-show","path":"./icons/icon-panel-show.js"},{"name":"icon-pannel-close","path":"./icons/icon-pannel-close.js"},{"name":"icon-paper-bag","legacy":true,"path":"./icons/icon-paper-bag.js"},{"name":"icon-paper-plane-alt","path":"./icons/icon-paper-plane-alt.js"},{"name":"icon-paper-plane","path":"./icons/icon-paper-plane.js"},{"name":"icon-partly-cloudy","path":"./icons/icon-partly-cloudy.js"},{"name":"icon-paste-in","legacy":true,"path":"./icons/icon-paste-in.js"},{"name":"icon-pause","path":"./icons/icon-pause.js"},{"name":"icon-pc","legacy":true,"path":"./icons/icon-pc.js"},{"name":"icon-people-alt-2","legacy":true,"path":"./icons/icon-people-alt-2.js"},{"name":"icon-people-alt","legacy":true,"path":"./icons/icon-people-alt.js"},{"name":"icon-people-female","legacy":true,"path":"./icons/icon-people-female.js"},{"name":"icon-people","path":"./icons/icon-people.js"},{"name":"icon-phone-ring","path":"./icons/icon-phone-ring.js"},{"name":"icon-phone","path":"./icons/icon-phone.js"},{"name":"icon-photo-album","path":"./icons/icon-photo-album.js"},{"name":"icon-picture","path":"./icons/icon-picture.js"},{"name":"icon-pictures-alt-2","path":"./icons/icon-pictures-alt-2.js"},{"name":"icon-pictures-alt","legacy":true,"path":"./icons/icon-pictures-alt.js"},{"name":"icon-pictures","path":"./icons/icon-pictures.js"},{"name":"icon-pie-chart","path":"./icons/icon-pie-chart.js"},{"name":"icon-piggy-bank","path":"./icons/icon-piggy-bank.js"},{"name":"icon-pin-location","path":"./icons/icon-pin-location.js"},{"name":"icon-plane","path":"./icons/icon-plane.js"},{"name":"icon-planet","legacy":true,"path":"./icons/icon-planet.js"},{"name":"icon-play","path":"./icons/icon-play.js"},{"name":"icon-playing-cards","legacy":true,"path":"./icons/icon-playing-cards.js"},{"name":"icon-playlist","path":"./icons/icon-playlist.js"},{"name":"icon-plugin","path":"./icons/icon-plugin.js"},{"name":"icon-podcast","path":"./icons/icon-podcast.js"},{"name":"icon-poll","legacy":true,"path":"./icons/icon-poll.js"},{"name":"icon-post-it","path":"./icons/icon-post-it.js"},{"name":"icon-power-outlet","legacy":true,"path":"./icons/icon-power-outlet.js"},{"name":"icon-power","path":"./icons/icon-power.js"},{"name":"icon-presentation","path":"./icons/icon-presentation.js"},{"name":"icon-previous-media","path":"./icons/icon-previous-media.js"},{"name":"icon-previous","path":"./icons/icon-previous.js"},{"name":"icon-price-dollar","legacy":true,"path":"./icons/icon-price-dollar.js"},{"name":"icon-price-euro","legacy":true,"path":"./icons/icon-price-euro.js"},{"name":"icon-price-pound","legacy":true,"path":"./icons/icon-price-pound.js"},{"name":"icon-print","path":"./icons/icon-print.js"},{"name":"icon-printer-alt","legacy":true,"path":"./icons/icon-printer-alt.js"},{"name":"icon-projector","path":"./icons/icon-projector.js"},{"name":"icon-pulse","path":"./icons/icon-pulse.js"},{"name":"icon-pushpin","path":"./icons/icon-pushpin.js"},{"name":"icon-qr-code","path":"./icons/icon-qr-code.js"},{"name":"icon-quote","path":"./icons/icon-quote.js"},{"name":"icon-radio-alt","path":"./icons/icon-radio-alt.js"},{"name":"icon-radio-receiver","path":"./icons/icon-radio-receiver.js"},{"name":"icon-radio","path":"./icons/icon-radio.js"},{"name":"icon-rain","path":"./icons/icon-rain.js"},{"name":"icon-rate","legacy":true,"path":"./icons/icon-rate.js"},{"name":"icon-re-post","path":"./icons/icon-re-post.js"},{"name":"icon-readonly","legacy":true,"path":"./icons/icon-readonly.js"},{"name":"icon-receipt-alt","path":"./icons/icon-receipt-alt.js"},{"name":"icon-reception","path":"./icons/icon-reception.js"},{"name":"icon-record","legacy":true,"path":"./icons/icon-record.js"},{"name":"icon-redo","path":"./icons/icon-redo.js"},{"name":"icon-refresh","path":"./icons/icon-refresh.js"},{"name":"icon-remote","legacy":true,"path":"./icons/icon-remote.js"},{"name":"icon-remove","path":"./icons/icon-remove.js"},{"name":"icon-repeat-one","path":"./icons/icon-repeat-one.js"},{"name":"icon-repeat","path":"./icons/icon-repeat.js"},{"name":"icon-reply-arrow","path":"./icons/icon-reply-arrow.js"},{"name":"icon-return-to-top","legacy":true,"path":"./icons/icon-return-to-top.js"},{"name":"icon-right-double-arrow","legacy":true,"path":"./icons/icon-right-double-arrow.js"},{"name":"icon-roadsign","legacy":true,"path":"./icons/icon-roadsign.js"},{"name":"icon-rocket","path":"./icons/icon-rocket.js"},{"name":"icon-rss","path":"./icons/icon-rss.js"},{"name":"icon-ruler-alt","path":"./icons/icon-ruler-alt.js"},{"name":"icon-ruler","path":"./icons/icon-ruler.js"},{"name":"icon-satellite-dish","path":"./icons/icon-satellite-dish.js"},{"name":"icon-save","path":"./icons/icon-save.js"},{"name":"icon-scan","path":"./icons/icon-scan.js"},{"name":"icon-school","path":"./icons/icon-school.js"},{"name":"icon-screensharing","path":"./icons/icon-screensharing.js"},{"name":"icon-script-alt","legacy":true,"path":"./icons/icon-script-alt.js"},{"name":"icon-script","path":"./icons/icon-script.js"},{"name":"icon-scull","path":"./icons/icon-scull.js"},{"name":"icon-search","path":"./icons/icon-search.js"},{"name":"icon-sensor","path":"./icons/icon-sensor.js"},{"name":"icon-server-alt","legacy":true,"path":"./icons/icon-server-alt.js"},{"name":"icon-server","path":"./icons/icon-server.js"},{"name":"icon-settings-alt","legacy":true,"path":"./icons/icon-settings-alt.js"},{"name":"icon-settings","path":"./icons/icon-settings.js"},{"name":"icon-share-alt","path":"./icons/icon-share-alt.js"},{"name":"icon-share","path":"./icons/icon-share.js"},{"name":"icon-sharing-iphone","path":"./icons/icon-sharing-iphone.js"},{"name":"icon-shield","path":"./icons/icon-shield.js"},{"name":"icon-shift","path":"./icons/icon-shift.js"},{"name":"icon-shipping-box","path":"./icons/icon-shipping-box.js"},{"name":"icon-shipping","path":"./icons/icon-shipping.js"},{"name":"icon-shoe","path":"./icons/icon-shoe.js"},{"name":"icon-shopping-basket-alt-2","legacy":true,"path":"./icons/icon-shopping-basket-alt-2.js"},{"name":"icon-shopping-basket-alt","path":"./icons/icon-shopping-basket-alt.js"},{"name":"icon-shopping-basket","path":"./icons/icon-shopping-basket.js"},{"name":"icon-shuffle","path":"./icons/icon-shuffle.js"},{"name":"icon-sience","path":"./icons/icon-sience.js"},{"name":"icon-single-note","path":"./icons/icon-single-note.js"},{"name":"icon-sitemap","legacy":true,"path":"./icons/icon-sitemap.js"},{"name":"icon-sleep","path":"./icons/icon-sleep.js"},{"name":"icon-slideshow","legacy":true,"path":"./icons/icon-slideshow.js"},{"name":"icon-smiley-inverted","legacy":true,"path":"./icons/icon-smiley-inverted.js"},{"name":"icon-smiley","path":"./icons/icon-smiley.js"},{"name":"icon-snow","path":"./icons/icon-snow.js"},{"name":"icon-sound-low","path":"./icons/icon-sound-low.js"},{"name":"icon-sound-medium","legacy":true,"path":"./icons/icon-sound-medium.js"},{"name":"icon-sound-off","path":"./icons/icon-sound-off.js"},{"name":"icon-sound-waves","path":"./icons/icon-sound-waves.js"},{"name":"icon-sound","path":"./icons/icon-sound.js"},{"name":"icon-spades","path":"./icons/icon-spades.js"},{"name":"icon-speaker","path":"./icons/icon-speaker.js"},{"name":"icon-speed-gauge","path":"./icons/icon-speed-gauge.js"},{"name":"icon-split","path":"./icons/icon-split.js"},{"name":"icon-sprout","path":"./icons/icon-sprout.js"},{"name":"icon-squiggly-line","legacy":true,"path":"./icons/icon-squiggly-line.js"},{"name":"icon-ssd","legacy":true,"path":"./icons/icon-ssd.js"},{"name":"icon-stacked-disks","legacy":true,"path":"./icons/icon-stacked-disks.js"},{"name":"icon-stamp","legacy":true,"path":"./icons/icon-stamp.js"},{"name":"icon-stop-alt","path":"./icons/icon-stop-alt.js"},{"name":"icon-stop-hand","legacy":true,"path":"./icons/icon-stop-hand.js"},{"name":"icon-stop","path":"./icons/icon-stop.js"},{"name":"icon-store","path":"./icons/icon-store.js"},{"name":"icon-stream","legacy":true,"path":"./icons/icon-stream.js"},{"name":"icon-sunny","path":"./icons/icon-sunny.js"},{"name":"icon-sweatshirt","legacy":true,"path":"./icons/icon-sweatshirt.js"},{"name":"icon-sync","path":"./icons/icon-sync.js"},{"name":"icon-t-shirt","path":"./icons/icon-t-shirt.js"},{"name":"icon-tab-key","path":"./icons/icon-tab-key.js"},{"name":"icon-tag","path":"./icons/icon-tag.js"},{"name":"icon-tags","path":"./icons/icon-tags.js"},{"name":"icon-takeaway-cup","legacy":true,"path":"./icons/icon-takeaway-cup.js"},{"name":"icon-target","path":"./icons/icon-target.js"},{"name":"icon-temperatrure-alt","path":"./icons/icon-temperatrure-alt.js"},{"name":"icon-temperature","path":"./icons/icon-temperature.js"},{"name":"icon-terminal","path":"./icons/icon-terminal.js"},{"name":"icon-theater","path":"./icons/icon-theater.js"},{"name":"icon-thumb-down","path":"./icons/icon-thumb-down.js"},{"name":"icon-thumb-up","path":"./icons/icon-thumb-up.js"},{"name":"icon-thumbnail-list","path":"./icons/icon-thumbnail-list.js"},{"name":"icon-thumbnails-small","path":"./icons/icon-thumbnails-small.js"},{"name":"icon-thumbnails","path":"./icons/icon-thumbnails.js"},{"name":"icon-ticket","path":"./icons/icon-ticket.js"},{"name":"icon-time","path":"./icons/icon-time.js"},{"name":"icon-timer","path":"./icons/icon-timer.js"},{"name":"icon-tools","legacy":true,"path":"./icons/icon-tools.js"},{"name":"icon-top","legacy":true,"path":"./icons/icon-top.js"},{"name":"icon-traffic-alt","legacy":true,"path":"./icons/icon-traffic-alt.js"},{"name":"icon-trafic","path":"./icons/icon-trafic.js"},{"name":"icon-train","path":"./icons/icon-train.js"},{"name":"icon-trash-alt-2","legacy":true,"path":"./icons/icon-trash-alt-2.js"},{"name":"icon-trash-alt","legacy":true,"path":"./icons/icon-trash-alt.js"},{"name":"icon-trash","path":"./icons/icon-trash.js"},{"name":"icon-tree","path":"./icons/icon-tree.js"},{"name":"icon-trophy","path":"./icons/icon-trophy.js"},{"name":"icon-truck","path":"./icons/icon-truck.js"},{"name":"icon-tv-old","path":"./icons/icon-tv-old.js"},{"name":"icon-tv","path":"./icons/icon-tv.js"},{"name":"icon-umb-content","legacy":true,"path":"./icons/icon-umb-content.js"},{"name":"icon-umb-developer","legacy":true,"path":"./icons/icon-umb-developer.js"},{"name":"icon-umb-media","legacy":true,"path":"./icons/icon-umb-media.js"},{"name":"icon-umb-settings","legacy":true,"path":"./icons/icon-umb-settings.js"},{"name":"icon-umb-users","legacy":true,"path":"./icons/icon-umb-users.js"},{"name":"icon-umbrella","path":"./icons/icon-umbrella.js"},{"name":"icon-undo","path":"./icons/icon-undo.js"},{"name":"icon-unlocked","path":"./icons/icon-unlocked.js"},{"name":"icon-untitled","legacy":true,"path":"./icons/icon-untitled.js"},{"name":"icon-usb-connector","legacy":true,"path":"./icons/icon-usb-connector.js"},{"name":"icon-usb","path":"./icons/icon-usb.js"},{"name":"icon-user-female","legacy":true,"path":"./icons/icon-user-female.js"},{"name":"icon-user-females-alt","legacy":true,"path":"./icons/icon-user-females-alt.js"},{"name":"icon-user-females","legacy":true,"path":"./icons/icon-user-females.js"},{"name":"icon-user-glasses","legacy":true,"path":"./icons/icon-user-glasses.js"},{"name":"icon-user","path":"./icons/icon-user.js"},{"name":"icon-users-alt","legacy":true,"path":"./icons/icon-users-alt.js"},{"name":"icon-users","path":"./icons/icon-users.js"},{"name":"icon-utilities","path":"./icons/icon-utilities.js"},{"name":"icon-vcard","path":"./icons/icon-vcard.js"},{"name":"icon-video","path":"./icons/icon-video.js"},{"name":"icon-voice","path":"./icons/icon-voice.js"},{"name":"icon-wall-plug","path":"./icons/icon-wall-plug.js"},{"name":"icon-wallet","path":"./icons/icon-wallet.js"},{"name":"icon-wand","path":"./icons/icon-wand.js"},{"name":"icon-webhook","path":"./icons/icon-webhook.js"},{"name":"icon-weight","path":"./icons/icon-weight.js"},{"name":"icon-width","path":"./icons/icon-width.js"},{"name":"icon-wifi","path":"./icons/icon-wifi.js"},{"name":"icon-window-popin","path":"./icons/icon-window-popin.js"},{"name":"icon-window-sizes","path":"./icons/icon-window-sizes.js"},{"name":"icon-wine-glass","path":"./icons/icon-wine-glass.js"},{"name":"icon-wrench","path":"./icons/icon-wrench.js"},{"name":"icon-wrong","path":"./icons/icon-wrong.js"},{"name":"icon-zip","path":"./icons/icon-zip.js"},{"name":"icon-zom-out","legacy":true,"path":"./icons/icon-zom-out.js"},{"name":"icon-zoom-in","path":"./icons/icon-zoom-in.js"},{"name":"icon-zoom-out","path":"./icons/icon-zoom-out.js"},{"name":"icon-star","path":"./icons/icon-star.js"},{"name":"icon-database","path":"./icons/icon-database.js"},{"name":"icon-azure","path":"./icons/icon-azure.js"},{"name":"icon-facebook","path":"./icons/icon-facebook.js"},{"name":"icon-gitbook","path":"./icons/icon-gitbook.js"},{"name":"icon-github","path":"./icons/icon-github.js"},{"name":"icon-gitlab","path":"./icons/icon-gitlab.js"},{"name":"icon-google","path":"./icons/icon-google.js"},{"name":"icon-linkedin","path":"./icons/icon-linkedin.js"},{"name":"icon-mastodon","path":"./icons/icon-mastodon.js"},{"name":"icon-microsoft","path":"./icons/icon-microsoft.js"},{"name":"icon-twitter","path":"./icons/icon-twitter.js"},{"name":"icon-twitter-x","path":"./icons/icon-twitter-x.js"},{"name":"icon-umbraco","path":"./icons/icon-umbraco.js"},{"name":"icon-application-error","legacy":true,"path":"./icons/icon-application-error.js"},{"name":"icon-art-easel","legacy":true,"path":"./icons/icon-art-easel.js"},{"name":"icon-article","legacy":true,"path":"./icons/icon-article.js"},{"name":"icon-auction-hammer","legacy":true,"path":"./icons/icon-auction-hammer.js"},{"name":"icon-baby-stroller","legacy":true,"path":"./icons/icon-baby-stroller.js"},{"name":"icon-badge-count","legacy":true,"path":"./icons/icon-badge-count.js"},{"name":"icon-ball","legacy":true,"path":"./icons/icon-ball.js"},{"name":"icon-band-aid","legacy":true,"path":"./icons/icon-band-aid.js"},{"name":"icon-bill-dollar","legacy":true,"path":"./icons/icon-bill-dollar.js"},{"name":"icon-bill-euro","legacy":true,"path":"./icons/icon-bill-euro.js"},{"name":"icon-bill-pound","legacy":true,"path":"./icons/icon-bill-pound.js"},{"name":"icon-bill-yen","legacy":true,"path":"./icons/icon-bill-yen.js"},{"name":"icon-bill","legacy":true,"path":"./icons/icon-bill.js"},{"name":"icon-billboard","legacy":true,"path":"./icons/icon-billboard.js"},{"name":"icon-bills-dollar","legacy":true,"path":"./icons/icon-bills-dollar.js"},{"name":"icon-bills-euro","legacy":true,"path":"./icons/icon-bills-euro.js"},{"name":"icon-bills-pound","legacy":true,"path":"./icons/icon-bills-pound.js"},{"name":"icon-bills-yen","legacy":true,"path":"./icons/icon-bills-yen.js"},{"name":"icon-bills","legacy":true,"path":"./icons/icon-bills.js"},{"name":"icon-binoculars","legacy":true,"path":"./icons/icon-binoculars.js"},{"name":"icon-blueprint","legacy":true,"path":"./icons/icon-blueprint.js"},{"name":"icon-bomb","legacy":true,"path":"./icons/icon-bomb.js"},{"name":"icon-cash-register","legacy":true,"path":"./icons/icon-cash-register.js"},{"name":"icon-checkbox-dotted-active","legacy":true,"path":"./icons/icon-checkbox-dotted-active.js"},{"name":"icon-chess","legacy":true,"path":"./icons/icon-chess.js"},{"name":"icon-circus","legacy":true,"path":"./icons/icon-circus.js"},{"name":"icon-clothes-hanger","legacy":true,"path":"./icons/icon-clothes-hanger.js"},{"name":"icon-coin-dollar","legacy":true,"path":"./icons/icon-coin-dollar.js"},{"name":"icon-coin-pound","legacy":true,"path":"./icons/icon-coin-pound.js"},{"name":"icon-coin","legacy":true,"path":"./icons/icon-coin.js"},{"name":"icon-coins-dollar-alt","legacy":true,"path":"./icons/icon-coins-dollar-alt.js"},{"name":"icon-coins-dollar","legacy":true,"path":"./icons/icon-coins-dollar.js"},{"name":"icon-coins-euro-alt","legacy":true,"path":"./icons/icon-coins-euro-alt.js"},{"name":"icon-coins-euro","legacy":true,"path":"./icons/icon-coins-euro.js"},{"name":"icon-coins-pound-alt","legacy":true,"path":"./icons/icon-coins-pound-alt.js"},{"name":"icon-coins-pound","legacy":true,"path":"./icons/icon-coins-pound.js"},{"name":"icon-coins-yen-alt","legacy":true,"path":"./icons/icon-coins-yen-alt.js"},{"name":"icon-coins-yen","legacy":true,"path":"./icons/icon-coins-yen.js"},{"name":"icon-comb","legacy":true,"path":"./icons/icon-comb.js"},{"name":"icon-desk","legacy":true,"path":"./icons/icon-desk.js"},{"name":"icon-dollar-bag","legacy":true,"path":"./icons/icon-dollar-bag.js"},{"name":"icon-eject","legacy":true,"path":"./icons/icon-eject.js"},{"name":"icon-euro-bag","legacy":true,"path":"./icons/icon-euro-bag.js"},{"name":"icon-exit-fullscreen","legacy":true,"path":"./icons/icon-exit-fullscreen.js"},{"name":"icon-female-symbol","legacy":true,"path":"./icons/icon-female-symbol.js"},{"name":"icon-filter-arrows","legacy":true,"path":"./icons/icon-filter-arrows.js"},{"name":"icon-firewall","legacy":true,"path":"./icons/icon-firewall.js"},{"name":"icon-folder-open","legacy":true,"path":"./icons/icon-folder-open.js"},{"name":"icon-folder-outline","legacy":true,"path":"./icons/icon-folder-outline.js"},{"name":"icon-handprint","legacy":true,"path":"./icons/icon-handprint.js"},{"name":"icon-hat","legacy":true,"path":"./icons/icon-hat.js"},{"name":"icon-hd","legacy":true,"path":"./icons/icon-hd.js"},{"name":"icon-inactive-line","legacy":true,"path":"./icons/icon-inactive-line.js"},{"name":"icon-keychain","legacy":true,"path":"./icons/icon-keychain.js"},{"name":"icon-keyhole","legacy":true,"path":"./icons/icon-keyhole.js"},{"name":"icon-lightbulb-active","legacy":true,"path":"./icons/icon-lightbulb-active.js"},{"name":"icon-lightbulb","legacy":true,"path":"./icons/icon-lightbulb.js"},{"name":"icon-linux-tux","legacy":true,"path":"./icons/icon-linux-tux.js"},{"name":"icon-locate","legacy":true,"path":"./icons/icon-locate.js"},{"name":"icon-location-near-me","legacy":true,"path":"./icons/icon-location-near-me.js"},{"name":"icon-male-and-female","legacy":true,"path":"./icons/icon-male-and-female.js"},{"name":"icon-male-symbol","legacy":true,"path":"./icons/icon-male-symbol.js"},{"name":"icon-molecular-network","legacy":true,"path":"./icons/icon-molecular-network.js"},{"name":"icon-molecular","legacy":true,"path":"./icons/icon-molecular.js"},{"name":"icon-multiple-windows","legacy":true,"path":"./icons/icon-multiple-windows.js"},{"name":"icon-navigation-top","legacy":true,"path":"./icons/icon-navigation-top.js"},{"name":"icon-os-x","legacy":true,"path":"./icons/icon-os-x.js"},{"name":"icon-pants","legacy":true,"path":"./icons/icon-pants.js"},{"name":"icon-parachute-drop","legacy":true,"path":"./icons/icon-parachute-drop.js"},{"name":"icon-parental-control","legacy":true,"path":"./icons/icon-parental-control.js"},{"name":"icon-path","legacy":true,"path":"./icons/icon-path.js"},{"name":"icon-piracy","legacy":true,"path":"./icons/icon-piracy.js"},{"name":"icon-poker-chip","legacy":true,"path":"./icons/icon-poker-chip.js"},{"name":"icon-pound-bag","legacy":true,"path":"./icons/icon-pound-bag.js"},{"name":"icon-price-yen","legacy":true,"path":"./icons/icon-price-yen.js"},{"name":"icon-receipt-dollar","legacy":true,"path":"./icons/icon-receipt-dollar.js"},{"name":"icon-receipt-euro","legacy":true,"path":"./icons/icon-receipt-euro.js"},{"name":"icon-receipt-pound","legacy":true,"path":"./icons/icon-receipt-pound.js"},{"name":"icon-receipt-yen","legacy":true,"path":"./icons/icon-receipt-yen.js"},{"name":"icon-resize","legacy":true,"path":"./icons/icon-resize.js"},{"name":"icon-road","legacy":true,"path":"./icons/icon-road.js"},{"name":"icon-safe","legacy":true,"path":"./icons/icon-safe.js"},{"name":"icon-safedial","legacy":true,"path":"./icons/icon-safedial.js"},{"name":"icon-sandbox-toys","legacy":true,"path":"./icons/icon-sandbox-toys.js"},{"name":"icon-security-camera","legacy":true,"path":"./icons/icon-security-camera.js"},{"name":"icon-settings-alt-2","legacy":true,"path":"./icons/icon-settings-alt-2.js"},{"name":"icon-share-alt-2","legacy":true,"path":"./icons/icon-share-alt-2.js"},{"name":"icon-shorts","legacy":true,"path":"./icons/icon-shorts.js"},{"name":"icon-simcard","legacy":true,"path":"./icons/icon-simcard.js"},{"name":"icon-split-alt","legacy":true,"path":"./icons/icon-split-alt.js"},{"name":"icon-tab","legacy":true,"path":"./icons/icon-tab.js"},{"name":"icon-tactics","legacy":true,"path":"./icons/icon-tactics.js"},{"name":"icon-theif","legacy":true,"path":"./icons/icon-theif.js"},{"name":"icon-thought-bubble","legacy":true,"path":"./icons/icon-thought-bubble.js"},{"name":"icon-umb-contour","legacy":true,"path":"./icons/icon-umb-contour.js"},{"name":"icon-umb-deploy","legacy":true,"path":"./icons/icon-umb-deploy.js"},{"name":"icon-umb-members","legacy":true,"path":"./icons/icon-umb-members.js"},{"name":"icon-universal","legacy":true,"path":"./icons/icon-universal.js"},{"name":"icon-war","legacy":true,"path":"./icons/icon-war.js"},{"name":"icon-windows","legacy":true,"path":"./icons/icon-windows.js"},{"name":"icon-yen-bag","legacy":true,"path":"./icons/icon-yen-bag.js"}] \ No newline at end of file +[{"name":"icon-activity","path":"./icons/icon-activity.js"},{"name":"icon-add","path":"./icons/icon-add.js"},{"name":"icon-addressbook","path":"./icons/icon-addressbook.js"},{"name":"icon-alarm-clock","path":"./icons/icon-alarm-clock.js"},{"name":"icon-alert-alt","path":"./icons/icon-alert-alt.js"},{"name":"icon-alert","path":"./icons/icon-alert.js"},{"name":"icon-alt","path":"./icons/icon-alt.js"},{"name":"icon-anchor","path":"./icons/icon-anchor.js"},{"name":"icon-app","path":"./icons/icon-app.js"},{"name":"icon-application-window-alt","path":"./icons/icon-application-window-alt.js"},{"name":"icon-application-window","path":"./icons/icon-application-window.js"},{"name":"icon-arrivals","path":"./icons/icon-arrivals.js"},{"name":"icon-arrow-down","path":"./icons/icon-arrow-down.js"},{"name":"icon-arrow-left","path":"./icons/icon-arrow-left.js"},{"name":"icon-arrow-right","path":"./icons/icon-arrow-right.js"},{"name":"icon-arrow-up","path":"./icons/icon-arrow-up.js"},{"name":"icon-attachment","path":"./icons/icon-attachment.js"},{"name":"icon-autofill","path":"./icons/icon-autofill.js"},{"name":"icon-award","path":"./icons/icon-award.js"},{"name":"icon-axis-rotation-2","path":"./icons/icon-axis-rotation-2.js"},{"name":"icon-axis-rotation-3","path":"./icons/icon-axis-rotation-3.js"},{"name":"icon-axis-rotation","path":"./icons/icon-axis-rotation.js"},{"name":"icon-backspace","path":"./icons/icon-backspace.js"},{"name":"icon-badge-add","path":"./icons/icon-badge-add.js"},{"name":"icon-badge-remove","path":"./icons/icon-badge-remove.js"},{"name":"icon-badge-restricted","legacy":true,"path":"./icons/icon-badge-restricted.js"},{"name":"icon-bar-chart","path":"./icons/icon-bar-chart.js"},{"name":"icon-barcode","path":"./icons/icon-barcode.js"},{"name":"icon-bars","path":"./icons/icon-bars.js"},{"name":"icon-battery-full","path":"./icons/icon-battery-full.js"},{"name":"icon-battery-low","path":"./icons/icon-battery-low.js"},{"name":"icon-beer-glass","path":"./icons/icon-beer-glass.js"},{"name":"icon-bell-off","path":"./icons/icon-bell-off.js"},{"name":"icon-bell","path":"./icons/icon-bell.js"},{"name":"icon-binarycode","path":"./icons/icon-binarycode.js"},{"name":"icon-bird","path":"./icons/icon-bird.js"},{"name":"icon-birthday-cake","path":"./icons/icon-birthday-cake.js"},{"name":"icon-block","path":"./icons/icon-block.js"},{"name":"icon-bluetooth","path":"./icons/icon-bluetooth.js"},{"name":"icon-boat-shipping","path":"./icons/icon-boat-shipping.js"},{"name":"icon-bones","path":"./icons/icon-bones.js"},{"name":"icon-book-alt-2","path":"./icons/icon-book-alt-2.js"},{"name":"icon-book-alt","path":"./icons/icon-book-alt.js"},{"name":"icon-book","path":"./icons/icon-book.js"},{"name":"icon-bookmark","path":"./icons/icon-bookmark.js"},{"name":"icon-books","path":"./icons/icon-books.js"},{"name":"icon-box-alt","path":"./icons/icon-box-alt.js"},{"name":"icon-box-open","path":"./icons/icon-box-open.js"},{"name":"icon-box","path":"./icons/icon-box.js"},{"name":"icon-brackets","path":"./icons/icon-brackets.js"},{"name":"icon-brick","path":"./icons/icon-brick.js"},{"name":"icon-briefcase","path":"./icons/icon-briefcase.js"},{"name":"icon-browser-window","path":"./icons/icon-browser-window.js"},{"name":"icon-brush-alt-2","path":"./icons/icon-brush-alt-2.js"},{"name":"icon-brush-alt","path":"./icons/icon-brush-alt.js"},{"name":"icon-brush","path":"./icons/icon-brush.js"},{"name":"icon-bug","path":"./icons/icon-bug.js"},{"name":"icon-bulleted-list","path":"./icons/icon-bulleted-list.js"},{"name":"icon-burn","path":"./icons/icon-burn.js"},{"name":"icon-bus","path":"./icons/icon-bus.js"},{"name":"icon-calculator","path":"./icons/icon-calculator.js"},{"name":"icon-calendar-alt","path":"./icons/icon-calendar-alt.js"},{"name":"icon-calendar","path":"./icons/icon-calendar.js"},{"name":"icon-camcorder","legacy":true,"path":"./icons/icon-camcorder.js"},{"name":"icon-camera-roll","path":"./icons/icon-camera-roll.js"},{"name":"icon-candy","path":"./icons/icon-candy.js"},{"name":"icon-caps-lock","path":"./icons/icon-caps-lock.js"},{"name":"icon-car","path":"./icons/icon-car.js"},{"name":"icon-categories","path":"./icons/icon-categories.js"},{"name":"icon-certificate","path":"./icons/icon-certificate.js"},{"name":"icon-chart-curve","path":"./icons/icon-chart-curve.js"},{"name":"icon-chart","path":"./icons/icon-chart.js"},{"name":"icon-chat-active","legacy":true,"path":"./icons/icon-chat-active.js"},{"name":"icon-chat","path":"./icons/icon-chat.js"},{"name":"icon-check","path":"./icons/icon-check.js"},{"name":"icon-checkbox-dotted","path":"./icons/icon-checkbox-dotted.js"},{"name":"icon-checkbox-empty","legacy":true,"path":"./icons/icon-checkbox-empty.js"},{"name":"icon-checkbox","path":"./icons/icon-checkbox.js"},{"name":"icon-chip-alt","legacy":true,"path":"./icons/icon-chip-alt.js"},{"name":"icon-chip","path":"./icons/icon-chip.js"},{"name":"icon-cinema","path":"./icons/icon-cinema.js"},{"name":"icon-circle-dotted-active","path":"./icons/icon-circle-dotted-active.js"},{"name":"icon-circle-dotted","path":"./icons/icon-circle-dotted.js"},{"name":"icon-circuits","path":"./icons/icon-circuits.js"},{"name":"icon-client","legacy":true,"path":"./icons/icon-client.js"},{"name":"icon-cloud-drive","path":"./icons/icon-cloud-drive.js"},{"name":"icon-cloud-upload","path":"./icons/icon-cloud-upload.js"},{"name":"icon-cloud","path":"./icons/icon-cloud.js"},{"name":"icon-cloudy","path":"./icons/icon-cloudy.js"},{"name":"icon-clubs","path":"./icons/icon-clubs.js"},{"name":"icon-cocktail","path":"./icons/icon-cocktail.js"},{"name":"icon-code","path":"./icons/icon-code.js"},{"name":"icon-coffee","path":"./icons/icon-coffee.js"},{"name":"icon-coin-euro","path":"./icons/icon-coin-euro.js"},{"name":"icon-coin-yen","path":"./icons/icon-coin-yen.js"},{"name":"icon-coins-alt","legacy":true,"path":"./icons/icon-coins-alt.js"},{"name":"icon-coins","path":"./icons/icon-coins.js"},{"name":"icon-color-bucket","path":"./icons/icon-color-bucket.js"},{"name":"icon-colorpicker","path":"./icons/icon-colorpicker.js"},{"name":"icon-columns","path":"./icons/icon-columns.js"},{"name":"icon-combination-lock-open","path":"./icons/icon-combination-lock-open.js"},{"name":"icon-combination-lock","path":"./icons/icon-combination-lock.js"},{"name":"icon-command","path":"./icons/icon-command.js"},{"name":"icon-company","path":"./icons/icon-company.js"},{"name":"icon-compress","path":"./icons/icon-compress.js"},{"name":"icon-connection","path":"./icons/icon-connection.js"},{"name":"icon-console","path":"./icons/icon-console.js"},{"name":"icon-contrast","path":"./icons/icon-contrast.js"},{"name":"icon-conversation-alt","path":"./icons/icon-conversation-alt.js"},{"name":"icon-conversation","legacy":true,"path":"./icons/icon-conversation.js"},{"name":"icon-coverflow","path":"./icons/icon-coverflow.js"},{"name":"icon-credit-card-alt","legacy":true,"path":"./icons/icon-credit-card-alt.js"},{"name":"icon-credit-card","path":"./icons/icon-credit-card.js"},{"name":"icon-crop","path":"./icons/icon-crop.js"},{"name":"icon-crosshair","path":"./icons/icon-crosshair.js"},{"name":"icon-crown-alt","legacy":true,"path":"./icons/icon-crown-alt.js"},{"name":"icon-crown","path":"./icons/icon-crown.js"},{"name":"icon-cupcake","legacy":true,"path":"./icons/icon-cupcake.js"},{"name":"icon-curve","path":"./icons/icon-curve.js"},{"name":"icon-cut","path":"./icons/icon-cut.js"},{"name":"icon-dashboard","path":"./icons/icon-dashboard.js"},{"name":"icon-defrag","path":"./icons/icon-defrag.js"},{"name":"icon-delete-key","path":"./icons/icon-delete-key.js"},{"name":"icon-delete","path":"./icons/icon-delete.js"},{"name":"icon-departure","path":"./icons/icon-departure.js"},{"name":"icon-desktop","legacy":true,"path":"./icons/icon-desktop.js"},{"name":"icon-diagnostics","path":"./icons/icon-diagnostics.js"},{"name":"icon-diagonal-arrow-alt","path":"./icons/icon-diagonal-arrow-alt.js"},{"name":"icon-diagonal-arrow","path":"./icons/icon-diagonal-arrow.js"},{"name":"icon-diamond","path":"./icons/icon-diamond.js"},{"name":"icon-diamonds","path":"./icons/icon-diamonds.js"},{"name":"icon-dice","path":"./icons/icon-dice.js"},{"name":"icon-diploma-alt","legacy":true,"path":"./icons/icon-diploma-alt.js"},{"name":"icon-diploma","path":"./icons/icon-diploma.js"},{"name":"icon-directions-alt","path":"./icons/icon-directions-alt.js"},{"name":"icon-directions","path":"./icons/icon-directions.js"},{"name":"icon-disc","path":"./icons/icon-disc.js"},{"name":"icon-disk-image","path":"./icons/icon-disk-image.js"},{"name":"icon-display","path":"./icons/icon-display.js"},{"name":"icon-dna","path":"./icons/icon-dna.js"},{"name":"icon-dock-connector","path":"./icons/icon-dock-connector.js"},{"name":"icon-document-dashed-line","path":"./icons/icon-document-dashed-line.js"},{"name":"icon-document","path":"./icons/icon-document.js"},{"name":"icon-documents","path":"./icons/icon-documents.js"},{"name":"icon-donate","legacy":true,"path":"./icons/icon-donate.js"},{"name":"icon-door-open-alt","legacy":true,"path":"./icons/icon-door-open-alt.js"},{"name":"icon-door-open","path":"./icons/icon-door-open.js"},{"name":"icon-download-alt","path":"./icons/icon-download-alt.js"},{"name":"icon-download","path":"./icons/icon-download.js"},{"name":"icon-drop","path":"./icons/icon-drop.js"},{"name":"icon-eco","path":"./icons/icon-eco.js"},{"name":"icon-economy","legacy":true,"path":"./icons/icon-economy.js"},{"name":"icon-edit","path":"./icons/icon-edit.js"},{"name":"icon-employee","legacy":true,"path":"./icons/icon-employee.js"},{"name":"icon-energy-saving-bulb","path":"./icons/icon-energy-saving-bulb.js"},{"name":"icon-enter","path":"./icons/icon-enter.js"},{"name":"icon-equalizer","path":"./icons/icon-equalizer.js"},{"name":"icon-escape","path":"./icons/icon-escape.js"},{"name":"icon-ethernet","path":"./icons/icon-ethernet.js"},{"name":"icon-eye","path":"./icons/icon-eye.js"},{"name":"icon-facebook-like","path":"./icons/icon-facebook-like.js"},{"name":"icon-factory","path":"./icons/icon-factory.js"},{"name":"icon-favorite","path":"./icons/icon-favorite.js"},{"name":"icon-file-cabinet","path":"./icons/icon-file-cabinet.js"},{"name":"icon-files","path":"./icons/icon-files.js"},{"name":"icon-filter","path":"./icons/icon-filter.js"},{"name":"icon-fingerprint","path":"./icons/icon-fingerprint.js"},{"name":"icon-fire","path":"./icons/icon-fire.js"},{"name":"icon-firewire","legacy":true,"path":"./icons/icon-firewire.js"},{"name":"icon-flag-alt","path":"./icons/icon-flag-alt.js"},{"name":"icon-flag","path":"./icons/icon-flag.js"},{"name":"icon-flash","path":"./icons/icon-flash.js"},{"name":"icon-flashlight","path":"./icons/icon-flashlight.js"},{"name":"icon-flowerpot","path":"./icons/icon-flowerpot.js"},{"name":"icon-folder","path":"./icons/icon-folder.js"},{"name":"icon-folders","path":"./icons/icon-folders.js"},{"name":"icon-font","path":"./icons/icon-font.js"},{"name":"icon-food","path":"./icons/icon-food.js"},{"name":"icon-footprints","path":"./icons/icon-footprints.js"},{"name":"icon-forking","path":"./icons/icon-forking.js"},{"name":"icon-frame-alt","legacy":true,"path":"./icons/icon-frame-alt.js"},{"name":"icon-frame","path":"./icons/icon-frame.js"},{"name":"icon-fullscreen-alt","path":"./icons/icon-fullscreen-alt.js"},{"name":"icon-fullscreen","path":"./icons/icon-fullscreen.js"},{"name":"icon-game","path":"./icons/icon-game.js"},{"name":"icon-geometry","legacy":true,"path":"./icons/icon-geometry.js"},{"name":"icon-gift","path":"./icons/icon-gift.js"},{"name":"icon-glasses","path":"./icons/icon-glasses.js"},{"name":"icon-globe-alt","path":"./icons/icon-globe-alt.js"},{"name":"icon-globe-asia","legacy":true,"path":"./icons/icon-globe-asia.js"},{"name":"icon-globe-europe-africa","legacy":true,"path":"./icons/icon-globe-europe-africa.js"},{"name":"icon-globe-inverted-america","legacy":true,"path":"./icons/icon-globe-inverted-america.js"},{"name":"icon-globe-inverted-asia","legacy":true,"path":"./icons/icon-globe-inverted-asia.js"},{"name":"icon-globe-inverted-europe-africa","legacy":true,"path":"./icons/icon-globe-inverted-europe-africa.js"},{"name":"icon-globe","path":"./icons/icon-globe.js"},{"name":"icon-gps","path":"./icons/icon-gps.js"},{"name":"icon-graduate","path":"./icons/icon-graduate.js"},{"name":"icon-grid","path":"./icons/icon-grid.js"},{"name":"icon-hammer","path":"./icons/icon-hammer.js"},{"name":"icon-hand-active-alt","legacy":true,"path":"./icons/icon-hand-active-alt.js"},{"name":"icon-hand-active","path":"./icons/icon-hand-active.js"},{"name":"icon-hand-pointer-alt","legacy":true,"path":"./icons/icon-hand-pointer-alt.js"},{"name":"icon-hand-pointer","path":"./icons/icon-hand-pointer.js"},{"name":"icon-handshake","path":"./icons/icon-handshake.js"},{"name":"icon-handtool-alt","legacy":true,"path":"./icons/icon-handtool-alt.js"},{"name":"icon-handtool","path":"./icons/icon-handtool.js"},{"name":"icon-hard-drive-alt","legacy":true,"path":"./icons/icon-hard-drive-alt.js"},{"name":"icon-hard-drive","legacy":true,"path":"./icons/icon-hard-drive.js"},{"name":"icon-headphones","path":"./icons/icon-headphones.js"},{"name":"icon-headset","legacy":true,"path":"./icons/icon-headset.js"},{"name":"icon-hearts","path":"./icons/icon-hearts.js"},{"name":"icon-height","path":"./icons/icon-height.js"},{"name":"icon-help-alt","path":"./icons/icon-help-alt.js"},{"name":"icon-help","path":"./icons/icon-help.js"},{"name":"icon-home","path":"./icons/icon-home.js"},{"name":"icon-hourglass","path":"./icons/icon-hourglass.js"},{"name":"icon-imac","legacy":true,"path":"./icons/icon-imac.js"},{"name":"icon-inbox-full","legacy":true,"path":"./icons/icon-inbox-full.js"},{"name":"icon-inbox","path":"./icons/icon-inbox.js"},{"name":"icon-indent","path":"./icons/icon-indent.js"},{"name":"icon-infinity","path":"./icons/icon-infinity.js"},{"name":"icon-info","path":"./icons/icon-info.js"},{"name":"icon-invoice","legacy":true,"path":"./icons/icon-invoice.js"},{"name":"icon-ipad","legacy":true,"path":"./icons/icon-ipad.js"},{"name":"icon-iphone","legacy":true,"path":"./icons/icon-iphone.js"},{"name":"icon-item-arrangement","legacy":true,"path":"./icons/icon-item-arrangement.js"},{"name":"icon-junk","path":"./icons/icon-junk.js"},{"name":"icon-key","path":"./icons/icon-key.js"},{"name":"icon-keyboard","path":"./icons/icon-keyboard.js"},{"name":"icon-lab","path":"./icons/icon-lab.js"},{"name":"icon-laptop","path":"./icons/icon-laptop.js"},{"name":"icon-layers-alt","legacy":true,"path":"./icons/icon-layers-alt.js"},{"name":"icon-layers","path":"./icons/icon-layers.js"},{"name":"icon-layout","path":"./icons/icon-layout.js"},{"name":"icon-left-double-arrow","path":"./icons/icon-left-double-arrow.js"},{"name":"icon-legal","path":"./icons/icon-legal.js"},{"name":"icon-lense","legacy":true,"path":"./icons/icon-lense.js"},{"name":"icon-library","path":"./icons/icon-library.js"},{"name":"icon-light-down","path":"./icons/icon-light-down.js"},{"name":"icon-light-up","path":"./icons/icon-light-up.js"},{"name":"icon-lightning","path":"./icons/icon-lightning.js"},{"name":"icon-link","path":"./icons/icon-link.js"},{"name":"icon-list","path":"./icons/icon-list.js"},{"name":"icon-load","legacy":true,"path":"./icons/icon-load.js"},{"name":"icon-loading","legacy":true,"path":"./icons/icon-loading.js"},{"name":"icon-location-nearby","path":"./icons/icon-location-nearby.js"},{"name":"icon-lock","path":"./icons/icon-lock.js"},{"name":"icon-log-out","path":"./icons/icon-log-out.js"},{"name":"icon-logout","legacy":true,"path":"./icons/icon-logout.js"},{"name":"icon-loupe","legacy":true,"path":"./icons/icon-loupe.js"},{"name":"icon-magnet","path":"./icons/icon-magnet.js"},{"name":"icon-mailbox","path":"./icons/icon-mailbox.js"},{"name":"icon-map-alt","path":"./icons/icon-map-alt.js"},{"name":"icon-map-location","legacy":true,"path":"./icons/icon-map-location.js"},{"name":"icon-map-marker","path":"./icons/icon-map-marker.js"},{"name":"icon-map","path":"./icons/icon-map.js"},{"name":"icon-medal","path":"./icons/icon-medal.js"},{"name":"icon-medical-emergency","path":"./icons/icon-medical-emergency.js"},{"name":"icon-medicine","path":"./icons/icon-medicine.js"},{"name":"icon-meeting","legacy":true,"path":"./icons/icon-meeting.js"},{"name":"icon-megaphone","path":"./icons/icon-megaphone.js"},{"name":"icon-merge","path":"./icons/icon-merge.js"},{"name":"icon-message-open","path":"./icons/icon-message-open.js"},{"name":"icon-message-unopened","legacy":true,"path":"./icons/icon-message-unopened.js"},{"name":"icon-message","path":"./icons/icon-message.js"},{"name":"icon-microscope","path":"./icons/icon-microscope.js"},{"name":"icon-mindmap","legacy":true,"path":"./icons/icon-mindmap.js"},{"name":"icon-mobile","path":"./icons/icon-mobile.js"},{"name":"icon-mountain","path":"./icons/icon-mountain.js"},{"name":"icon-mouse-cursor","path":"./icons/icon-mouse-cursor.js"},{"name":"icon-mouse","path":"./icons/icon-mouse.js"},{"name":"icon-movie-alt","path":"./icons/icon-movie-alt.js"},{"name":"icon-movie","path":"./icons/icon-movie.js"},{"name":"icon-multiple-credit-cards","path":"./icons/icon-multiple-credit-cards.js"},{"name":"icon-music","path":"./icons/icon-music.js"},{"name":"icon-name-badge","legacy":true,"path":"./icons/icon-name-badge.js"},{"name":"icon-navigation-bottom","legacy":true,"path":"./icons/icon-navigation-bottom.js"},{"name":"icon-navigation-down","legacy":true,"path":"./icons/icon-navigation-down.js"},{"name":"icon-navigation-first","legacy":true,"path":"./icons/icon-navigation-first.js"},{"name":"icon-navigation-horizontal","legacy":true,"path":"./icons/icon-navigation-horizontal.js"},{"name":"icon-navigation-last","legacy":true,"path":"./icons/icon-navigation-last.js"},{"name":"icon-navigation-left","legacy":true,"path":"./icons/icon-navigation-left.js"},{"name":"icon-navigation-right","legacy":true,"path":"./icons/icon-navigation-right.js"},{"name":"icon-navigation-road","legacy":true,"path":"./icons/icon-navigation-road.js"},{"name":"icon-navigation-up","legacy":true,"path":"./icons/icon-navigation-up.js"},{"name":"icon-navigation-vertical","legacy":true,"path":"./icons/icon-navigation-vertical.js"},{"name":"icon-navigation","legacy":true,"path":"./icons/icon-navigation.js"},{"name":"icon-navigational-arrow","path":"./icons/icon-navigational-arrow.js"},{"name":"icon-network-alt","path":"./icons/icon-network-alt.js"},{"name":"icon-newspaper-alt","legacy":true,"path":"./icons/icon-newspaper-alt.js"},{"name":"icon-newspaper","path":"./icons/icon-newspaper.js"},{"name":"icon-next-media","legacy":true,"path":"./icons/icon-next-media.js"},{"name":"icon-next","legacy":true,"path":"./icons/icon-next.js"},{"name":"icon-nodes","legacy":true,"path":"./icons/icon-nodes.js"},{"name":"icon-notepad-alt","legacy":true,"path":"./icons/icon-notepad-alt.js"},{"name":"icon-notepad","path":"./icons/icon-notepad.js"},{"name":"icon-old-key","path":"./icons/icon-old-key.js"},{"name":"icon-old-phone","legacy":true,"path":"./icons/icon-old-phone.js"},{"name":"icon-operator","path":"./icons/icon-operator.js"},{"name":"icon-ordered-list","path":"./icons/icon-ordered-list.js"},{"name":"icon-out","path":"./icons/icon-out.js"},{"name":"icon-outbox","legacy":true,"path":"./icons/icon-outbox.js"},{"name":"icon-outdent","path":"./icons/icon-outdent.js"},{"name":"icon-page-add","path":"./icons/icon-page-add.js"},{"name":"icon-page-down","path":"./icons/icon-page-down.js"},{"name":"icon-page-remove","path":"./icons/icon-page-remove.js"},{"name":"icon-page-restricted","path":"./icons/icon-page-restricted.js"},{"name":"icon-page-up","path":"./icons/icon-page-up.js"},{"name":"icon-paint-roller","legacy":true,"path":"./icons/icon-paint-roller.js"},{"name":"icon-palette","path":"./icons/icon-palette.js"},{"name":"icon-panel-show","path":"./icons/icon-panel-show.js"},{"name":"icon-pannel-close","path":"./icons/icon-pannel-close.js"},{"name":"icon-paper-bag","legacy":true,"path":"./icons/icon-paper-bag.js"},{"name":"icon-paper-plane-alt","path":"./icons/icon-paper-plane-alt.js"},{"name":"icon-paper-plane","path":"./icons/icon-paper-plane.js"},{"name":"icon-partly-cloudy","path":"./icons/icon-partly-cloudy.js"},{"name":"icon-paste-in","legacy":true,"path":"./icons/icon-paste-in.js"},{"name":"icon-pause","path":"./icons/icon-pause.js"},{"name":"icon-pc","legacy":true,"path":"./icons/icon-pc.js"},{"name":"icon-people-alt-2","legacy":true,"path":"./icons/icon-people-alt-2.js"},{"name":"icon-people-alt","legacy":true,"path":"./icons/icon-people-alt.js"},{"name":"icon-people-female","legacy":true,"path":"./icons/icon-people-female.js"},{"name":"icon-people","path":"./icons/icon-people.js"},{"name":"icon-phone-ring","path":"./icons/icon-phone-ring.js"},{"name":"icon-phone","path":"./icons/icon-phone.js"},{"name":"icon-photo-album","path":"./icons/icon-photo-album.js"},{"name":"icon-picture","path":"./icons/icon-picture.js"},{"name":"icon-pictures-alt-2","path":"./icons/icon-pictures-alt-2.js"},{"name":"icon-pictures-alt","legacy":true,"path":"./icons/icon-pictures-alt.js"},{"name":"icon-pictures","path":"./icons/icon-pictures.js"},{"name":"icon-pie-chart","path":"./icons/icon-pie-chart.js"},{"name":"icon-piggy-bank","path":"./icons/icon-piggy-bank.js"},{"name":"icon-pin-location","path":"./icons/icon-pin-location.js"},{"name":"icon-plane","path":"./icons/icon-plane.js"},{"name":"icon-planet","legacy":true,"path":"./icons/icon-planet.js"},{"name":"icon-play","path":"./icons/icon-play.js"},{"name":"icon-playing-cards","legacy":true,"path":"./icons/icon-playing-cards.js"},{"name":"icon-playlist","path":"./icons/icon-playlist.js"},{"name":"icon-plugin","path":"./icons/icon-plugin.js"},{"name":"icon-podcast","path":"./icons/icon-podcast.js"},{"name":"icon-poll","legacy":true,"path":"./icons/icon-poll.js"},{"name":"icon-post-it","path":"./icons/icon-post-it.js"},{"name":"icon-power-outlet","legacy":true,"path":"./icons/icon-power-outlet.js"},{"name":"icon-power","path":"./icons/icon-power.js"},{"name":"icon-presentation","path":"./icons/icon-presentation.js"},{"name":"icon-previous-media","path":"./icons/icon-previous-media.js"},{"name":"icon-previous","path":"./icons/icon-previous.js"},{"name":"icon-price-dollar","legacy":true,"path":"./icons/icon-price-dollar.js"},{"name":"icon-price-euro","legacy":true,"path":"./icons/icon-price-euro.js"},{"name":"icon-price-pound","legacy":true,"path":"./icons/icon-price-pound.js"},{"name":"icon-print","path":"./icons/icon-print.js"},{"name":"icon-printer-alt","legacy":true,"path":"./icons/icon-printer-alt.js"},{"name":"icon-projector","path":"./icons/icon-projector.js"},{"name":"icon-pulse","path":"./icons/icon-pulse.js"},{"name":"icon-pushpin","path":"./icons/icon-pushpin.js"},{"name":"icon-qr-code","path":"./icons/icon-qr-code.js"},{"name":"icon-quote","path":"./icons/icon-quote.js"},{"name":"icon-radio-alt","path":"./icons/icon-radio-alt.js"},{"name":"icon-radio-receiver","path":"./icons/icon-radio-receiver.js"},{"name":"icon-radio","path":"./icons/icon-radio.js"},{"name":"icon-rain","path":"./icons/icon-rain.js"},{"name":"icon-rate","legacy":true,"path":"./icons/icon-rate.js"},{"name":"icon-re-post","path":"./icons/icon-re-post.js"},{"name":"icon-readonly","legacy":true,"path":"./icons/icon-readonly.js"},{"name":"icon-receipt-alt","path":"./icons/icon-receipt-alt.js"},{"name":"icon-reception","path":"./icons/icon-reception.js"},{"name":"icon-record","legacy":true,"path":"./icons/icon-record.js"},{"name":"icon-redo","path":"./icons/icon-redo.js"},{"name":"icon-refresh","path":"./icons/icon-refresh.js"},{"name":"icon-remote","legacy":true,"path":"./icons/icon-remote.js"},{"name":"icon-remove","path":"./icons/icon-remove.js"},{"name":"icon-repeat-one","path":"./icons/icon-repeat-one.js"},{"name":"icon-repeat","path":"./icons/icon-repeat.js"},{"name":"icon-reply-arrow","path":"./icons/icon-reply-arrow.js"},{"name":"icon-return-to-top","legacy":true,"path":"./icons/icon-return-to-top.js"},{"name":"icon-right-double-arrow","legacy":true,"path":"./icons/icon-right-double-arrow.js"},{"name":"icon-roadsign","legacy":true,"path":"./icons/icon-roadsign.js"},{"name":"icon-rocket","path":"./icons/icon-rocket.js"},{"name":"icon-rss","path":"./icons/icon-rss.js"},{"name":"icon-ruler-alt","path":"./icons/icon-ruler-alt.js"},{"name":"icon-ruler","path":"./icons/icon-ruler.js"},{"name":"icon-satellite-dish","path":"./icons/icon-satellite-dish.js"},{"name":"icon-save","path":"./icons/icon-save.js"},{"name":"icon-scan","path":"./icons/icon-scan.js"},{"name":"icon-school","path":"./icons/icon-school.js"},{"name":"icon-screensharing","path":"./icons/icon-screensharing.js"},{"name":"icon-script-alt","legacy":true,"path":"./icons/icon-script-alt.js"},{"name":"icon-script","path":"./icons/icon-script.js"},{"name":"icon-scull","path":"./icons/icon-scull.js"},{"name":"icon-search","path":"./icons/icon-search.js"},{"name":"icon-sensor","path":"./icons/icon-sensor.js"},{"name":"icon-server-alt","legacy":true,"path":"./icons/icon-server-alt.js"},{"name":"icon-server","path":"./icons/icon-server.js"},{"name":"icon-settings-alt","legacy":true,"path":"./icons/icon-settings-alt.js"},{"name":"icon-settings","path":"./icons/icon-settings.js"},{"name":"icon-share-alt","path":"./icons/icon-share-alt.js"},{"name":"icon-share","path":"./icons/icon-share.js"},{"name":"icon-sharing-iphone","path":"./icons/icon-sharing-iphone.js"},{"name":"icon-shield","path":"./icons/icon-shield.js"},{"name":"icon-shift","path":"./icons/icon-shift.js"},{"name":"icon-shipping-box","path":"./icons/icon-shipping-box.js"},{"name":"icon-shipping","path":"./icons/icon-shipping.js"},{"name":"icon-shoe","path":"./icons/icon-shoe.js"},{"name":"icon-shopping-basket-alt-2","legacy":true,"path":"./icons/icon-shopping-basket-alt-2.js"},{"name":"icon-shopping-basket-alt","path":"./icons/icon-shopping-basket-alt.js"},{"name":"icon-shopping-basket","path":"./icons/icon-shopping-basket.js"},{"name":"icon-shuffle","path":"./icons/icon-shuffle.js"},{"name":"icon-sience","path":"./icons/icon-sience.js"},{"name":"icon-single-note","path":"./icons/icon-single-note.js"},{"name":"icon-sitemap","legacy":true,"path":"./icons/icon-sitemap.js"},{"name":"icon-sleep","path":"./icons/icon-sleep.js"},{"name":"icon-slideshow","legacy":true,"path":"./icons/icon-slideshow.js"},{"name":"icon-smiley-inverted","legacy":true,"path":"./icons/icon-smiley-inverted.js"},{"name":"icon-smiley","path":"./icons/icon-smiley.js"},{"name":"icon-snow","path":"./icons/icon-snow.js"},{"name":"icon-sound-low","path":"./icons/icon-sound-low.js"},{"name":"icon-sound-medium","legacy":true,"path":"./icons/icon-sound-medium.js"},{"name":"icon-sound-off","path":"./icons/icon-sound-off.js"},{"name":"icon-sound-waves","path":"./icons/icon-sound-waves.js"},{"name":"icon-sound","path":"./icons/icon-sound.js"},{"name":"icon-spades","path":"./icons/icon-spades.js"},{"name":"icon-speaker","path":"./icons/icon-speaker.js"},{"name":"icon-speed-gauge","path":"./icons/icon-speed-gauge.js"},{"name":"icon-split","path":"./icons/icon-split.js"},{"name":"icon-sprout","path":"./icons/icon-sprout.js"},{"name":"icon-squiggly-line","legacy":true,"path":"./icons/icon-squiggly-line.js"},{"name":"icon-ssd","legacy":true,"path":"./icons/icon-ssd.js"},{"name":"icon-stacked-disks","legacy":true,"path":"./icons/icon-stacked-disks.js"},{"name":"icon-stamp","legacy":true,"path":"./icons/icon-stamp.js"},{"name":"icon-stop-alt","path":"./icons/icon-stop-alt.js"},{"name":"icon-stop-hand","legacy":true,"path":"./icons/icon-stop-hand.js"},{"name":"icon-stop","path":"./icons/icon-stop.js"},{"name":"icon-store","path":"./icons/icon-store.js"},{"name":"icon-stream","legacy":true,"path":"./icons/icon-stream.js"},{"name":"icon-sunny","path":"./icons/icon-sunny.js"},{"name":"icon-sweatshirt","legacy":true,"path":"./icons/icon-sweatshirt.js"},{"name":"icon-sync","path":"./icons/icon-sync.js"},{"name":"icon-t-shirt","path":"./icons/icon-t-shirt.js"},{"name":"icon-tab-key","path":"./icons/icon-tab-key.js"},{"name":"icon-tag","path":"./icons/icon-tag.js"},{"name":"icon-tags","path":"./icons/icon-tags.js"},{"name":"icon-takeaway-cup","legacy":true,"path":"./icons/icon-takeaway-cup.js"},{"name":"icon-target","path":"./icons/icon-target.js"},{"name":"icon-temperatrure-alt","path":"./icons/icon-temperatrure-alt.js"},{"name":"icon-temperature","path":"./icons/icon-temperature.js"},{"name":"icon-terminal","path":"./icons/icon-terminal.js"},{"name":"icon-theater","path":"./icons/icon-theater.js"},{"name":"icon-thumb-down","path":"./icons/icon-thumb-down.js"},{"name":"icon-thumb-up","path":"./icons/icon-thumb-up.js"},{"name":"icon-thumbnail-list","path":"./icons/icon-thumbnail-list.js"},{"name":"icon-thumbnails-small","path":"./icons/icon-thumbnails-small.js"},{"name":"icon-thumbnails","path":"./icons/icon-thumbnails.js"},{"name":"icon-ticket","path":"./icons/icon-ticket.js"},{"name":"icon-time","path":"./icons/icon-time.js"},{"name":"icon-timer","path":"./icons/icon-timer.js"},{"name":"icon-tools","legacy":true,"path":"./icons/icon-tools.js"},{"name":"icon-top","legacy":true,"path":"./icons/icon-top.js"},{"name":"icon-traffic-alt","legacy":true,"path":"./icons/icon-traffic-alt.js"},{"name":"icon-trafic","path":"./icons/icon-trafic.js"},{"name":"icon-train","path":"./icons/icon-train.js"},{"name":"icon-trash-alt-2","legacy":true,"path":"./icons/icon-trash-alt-2.js"},{"name":"icon-trash-alt","legacy":true,"path":"./icons/icon-trash-alt.js"},{"name":"icon-trash","path":"./icons/icon-trash.js"},{"name":"icon-tree","path":"./icons/icon-tree.js"},{"name":"icon-trophy","path":"./icons/icon-trophy.js"},{"name":"icon-truck","path":"./icons/icon-truck.js"},{"name":"icon-tv-old","path":"./icons/icon-tv-old.js"},{"name":"icon-tv","path":"./icons/icon-tv.js"},{"name":"icon-umb-content","legacy":true,"path":"./icons/icon-umb-content.js"},{"name":"icon-umb-developer","legacy":true,"path":"./icons/icon-umb-developer.js"},{"name":"icon-umb-media","legacy":true,"path":"./icons/icon-umb-media.js"},{"name":"icon-umb-settings","legacy":true,"path":"./icons/icon-umb-settings.js"},{"name":"icon-umb-users","legacy":true,"path":"./icons/icon-umb-users.js"},{"name":"icon-umbrella","path":"./icons/icon-umbrella.js"},{"name":"icon-undo","path":"./icons/icon-undo.js"},{"name":"icon-unlocked","path":"./icons/icon-unlocked.js"},{"name":"icon-untitled","legacy":true,"path":"./icons/icon-untitled.js"},{"name":"icon-usb-connector","legacy":true,"path":"./icons/icon-usb-connector.js"},{"name":"icon-usb","path":"./icons/icon-usb.js"},{"name":"icon-user-female","legacy":true,"path":"./icons/icon-user-female.js"},{"name":"icon-user-females-alt","legacy":true,"path":"./icons/icon-user-females-alt.js"},{"name":"icon-user-females","legacy":true,"path":"./icons/icon-user-females.js"},{"name":"icon-user-glasses","legacy":true,"path":"./icons/icon-user-glasses.js"},{"name":"icon-user","path":"./icons/icon-user.js"},{"name":"icon-users-alt","legacy":true,"path":"./icons/icon-users-alt.js"},{"name":"icon-users","path":"./icons/icon-users.js"},{"name":"icon-utilities","path":"./icons/icon-utilities.js"},{"name":"icon-vcard","path":"./icons/icon-vcard.js"},{"name":"icon-video","path":"./icons/icon-video.js"},{"name":"icon-voice","path":"./icons/icon-voice.js"},{"name":"icon-wall-plug","path":"./icons/icon-wall-plug.js"},{"name":"icon-wallet","path":"./icons/icon-wallet.js"},{"name":"icon-wand","path":"./icons/icon-wand.js"},{"name":"icon-webhook","path":"./icons/icon-webhook.js"},{"name":"icon-weight","path":"./icons/icon-weight.js"},{"name":"icon-width","path":"./icons/icon-width.js"},{"name":"icon-wifi","path":"./icons/icon-wifi.js"},{"name":"icon-window-popin","path":"./icons/icon-window-popin.js"},{"name":"icon-window-sizes","path":"./icons/icon-window-sizes.js"},{"name":"icon-wine-glass","path":"./icons/icon-wine-glass.js"},{"name":"icon-wrench","path":"./icons/icon-wrench.js"},{"name":"icon-wrong","path":"./icons/icon-wrong.js"},{"name":"icon-zip","path":"./icons/icon-zip.js"},{"name":"icon-zom-out","legacy":true,"path":"./icons/icon-zom-out.js"},{"name":"icon-zoom-in","path":"./icons/icon-zoom-in.js"},{"name":"icon-zoom-out","path":"./icons/icon-zoom-out.js"},{"name":"icon-star","path":"./icons/icon-star.js"},{"name":"icon-database","path":"./icons/icon-database.js"},{"name":"icon-azure","path":"./icons/icon-azure.js"},{"name":"icon-facebook","path":"./icons/icon-facebook.js"},{"name":"icon-gitbook","path":"./icons/icon-gitbook.js"},{"name":"icon-github","path":"./icons/icon-github.js"},{"name":"icon-gitlab","path":"./icons/icon-gitlab.js"},{"name":"icon-google","path":"./icons/icon-google.js"},{"name":"icon-linkedin","path":"./icons/icon-linkedin.js"},{"name":"icon-mastodon","path":"./icons/icon-mastodon.js"},{"name":"icon-microsoft","path":"./icons/icon-microsoft.js"},{"name":"icon-twitter-x","path":"./icons/icon-twitter-x.js"},{"name":"icon-umbraco","path":"./icons/icon-umbraco.js"},{"name":"icon-application-error","legacy":true,"path":"./icons/icon-application-error.js"},{"name":"icon-art-easel","legacy":true,"path":"./icons/icon-art-easel.js"},{"name":"icon-article","legacy":true,"path":"./icons/icon-article.js"},{"name":"icon-auction-hammer","legacy":true,"path":"./icons/icon-auction-hammer.js"},{"name":"icon-baby-stroller","legacy":true,"path":"./icons/icon-baby-stroller.js"},{"name":"icon-badge-count","legacy":true,"path":"./icons/icon-badge-count.js"},{"name":"icon-ball","legacy":true,"path":"./icons/icon-ball.js"},{"name":"icon-band-aid","legacy":true,"path":"./icons/icon-band-aid.js"},{"name":"icon-bill-dollar","legacy":true,"path":"./icons/icon-bill-dollar.js"},{"name":"icon-bill-euro","legacy":true,"path":"./icons/icon-bill-euro.js"},{"name":"icon-bill-pound","legacy":true,"path":"./icons/icon-bill-pound.js"},{"name":"icon-bill-yen","legacy":true,"path":"./icons/icon-bill-yen.js"},{"name":"icon-bill","legacy":true,"path":"./icons/icon-bill.js"},{"name":"icon-billboard","legacy":true,"path":"./icons/icon-billboard.js"},{"name":"icon-bills-dollar","legacy":true,"path":"./icons/icon-bills-dollar.js"},{"name":"icon-bills-euro","legacy":true,"path":"./icons/icon-bills-euro.js"},{"name":"icon-bills-pound","legacy":true,"path":"./icons/icon-bills-pound.js"},{"name":"icon-bills-yen","legacy":true,"path":"./icons/icon-bills-yen.js"},{"name":"icon-bills","legacy":true,"path":"./icons/icon-bills.js"},{"name":"icon-binoculars","legacy":true,"path":"./icons/icon-binoculars.js"},{"name":"icon-blueprint","legacy":true,"path":"./icons/icon-blueprint.js"},{"name":"icon-bomb","legacy":true,"path":"./icons/icon-bomb.js"},{"name":"icon-cash-register","legacy":true,"path":"./icons/icon-cash-register.js"},{"name":"icon-checkbox-dotted-active","legacy":true,"path":"./icons/icon-checkbox-dotted-active.js"},{"name":"icon-chess","legacy":true,"path":"./icons/icon-chess.js"},{"name":"icon-circus","legacy":true,"path":"./icons/icon-circus.js"},{"name":"icon-clothes-hanger","legacy":true,"path":"./icons/icon-clothes-hanger.js"},{"name":"icon-coin-dollar","legacy":true,"path":"./icons/icon-coin-dollar.js"},{"name":"icon-coin-pound","legacy":true,"path":"./icons/icon-coin-pound.js"},{"name":"icon-coin","legacy":true,"path":"./icons/icon-coin.js"},{"name":"icon-coins-dollar-alt","legacy":true,"path":"./icons/icon-coins-dollar-alt.js"},{"name":"icon-coins-dollar","legacy":true,"path":"./icons/icon-coins-dollar.js"},{"name":"icon-coins-euro-alt","legacy":true,"path":"./icons/icon-coins-euro-alt.js"},{"name":"icon-coins-euro","legacy":true,"path":"./icons/icon-coins-euro.js"},{"name":"icon-coins-pound-alt","legacy":true,"path":"./icons/icon-coins-pound-alt.js"},{"name":"icon-coins-pound","legacy":true,"path":"./icons/icon-coins-pound.js"},{"name":"icon-coins-yen-alt","legacy":true,"path":"./icons/icon-coins-yen-alt.js"},{"name":"icon-coins-yen","legacy":true,"path":"./icons/icon-coins-yen.js"},{"name":"icon-comb","legacy":true,"path":"./icons/icon-comb.js"},{"name":"icon-desk","legacy":true,"path":"./icons/icon-desk.js"},{"name":"icon-dollar-bag","legacy":true,"path":"./icons/icon-dollar-bag.js"},{"name":"icon-eject","legacy":true,"path":"./icons/icon-eject.js"},{"name":"icon-euro-bag","legacy":true,"path":"./icons/icon-euro-bag.js"},{"name":"icon-exit-fullscreen","legacy":true,"path":"./icons/icon-exit-fullscreen.js"},{"name":"icon-female-symbol","legacy":true,"path":"./icons/icon-female-symbol.js"},{"name":"icon-filter-arrows","legacy":true,"path":"./icons/icon-filter-arrows.js"},{"name":"icon-firewall","legacy":true,"path":"./icons/icon-firewall.js"},{"name":"icon-folder-open","legacy":true,"path":"./icons/icon-folder-open.js"},{"name":"icon-folder-outline","legacy":true,"path":"./icons/icon-folder-outline.js"},{"name":"icon-handprint","legacy":true,"path":"./icons/icon-handprint.js"},{"name":"icon-hat","legacy":true,"path":"./icons/icon-hat.js"},{"name":"icon-hd","legacy":true,"path":"./icons/icon-hd.js"},{"name":"icon-inactive-line","legacy":true,"path":"./icons/icon-inactive-line.js"},{"name":"icon-keychain","legacy":true,"path":"./icons/icon-keychain.js"},{"name":"icon-keyhole","legacy":true,"path":"./icons/icon-keyhole.js"},{"name":"icon-lightbulb-active","legacy":true,"path":"./icons/icon-lightbulb-active.js"},{"name":"icon-lightbulb","legacy":true,"path":"./icons/icon-lightbulb.js"},{"name":"icon-linux-tux","legacy":true,"path":"./icons/icon-linux-tux.js"},{"name":"icon-locate","legacy":true,"path":"./icons/icon-locate.js"},{"name":"icon-location-near-me","legacy":true,"path":"./icons/icon-location-near-me.js"},{"name":"icon-male-and-female","legacy":true,"path":"./icons/icon-male-and-female.js"},{"name":"icon-male-symbol","legacy":true,"path":"./icons/icon-male-symbol.js"},{"name":"icon-molecular-network","legacy":true,"path":"./icons/icon-molecular-network.js"},{"name":"icon-molecular","legacy":true,"path":"./icons/icon-molecular.js"},{"name":"icon-multiple-windows","legacy":true,"path":"./icons/icon-multiple-windows.js"},{"name":"icon-navigation-top","legacy":true,"path":"./icons/icon-navigation-top.js"},{"name":"icon-os-x","legacy":true,"path":"./icons/icon-os-x.js"},{"name":"icon-pants","legacy":true,"path":"./icons/icon-pants.js"},{"name":"icon-parachute-drop","legacy":true,"path":"./icons/icon-parachute-drop.js"},{"name":"icon-parental-control","legacy":true,"path":"./icons/icon-parental-control.js"},{"name":"icon-path","legacy":true,"path":"./icons/icon-path.js"},{"name":"icon-piracy","legacy":true,"path":"./icons/icon-piracy.js"},{"name":"icon-poker-chip","legacy":true,"path":"./icons/icon-poker-chip.js"},{"name":"icon-pound-bag","legacy":true,"path":"./icons/icon-pound-bag.js"},{"name":"icon-price-yen","legacy":true,"path":"./icons/icon-price-yen.js"},{"name":"icon-receipt-dollar","legacy":true,"path":"./icons/icon-receipt-dollar.js"},{"name":"icon-receipt-euro","legacy":true,"path":"./icons/icon-receipt-euro.js"},{"name":"icon-receipt-pound","legacy":true,"path":"./icons/icon-receipt-pound.js"},{"name":"icon-receipt-yen","legacy":true,"path":"./icons/icon-receipt-yen.js"},{"name":"icon-resize","legacy":true,"path":"./icons/icon-resize.js"},{"name":"icon-road","legacy":true,"path":"./icons/icon-road.js"},{"name":"icon-safe","legacy":true,"path":"./icons/icon-safe.js"},{"name":"icon-safedial","legacy":true,"path":"./icons/icon-safedial.js"},{"name":"icon-sandbox-toys","legacy":true,"path":"./icons/icon-sandbox-toys.js"},{"name":"icon-security-camera","legacy":true,"path":"./icons/icon-security-camera.js"},{"name":"icon-settings-alt-2","legacy":true,"path":"./icons/icon-settings-alt-2.js"},{"name":"icon-share-alt-2","legacy":true,"path":"./icons/icon-share-alt-2.js"},{"name":"icon-shorts","legacy":true,"path":"./icons/icon-shorts.js"},{"name":"icon-simcard","legacy":true,"path":"./icons/icon-simcard.js"},{"name":"icon-split-alt","legacy":true,"path":"./icons/icon-split-alt.js"},{"name":"icon-tab","legacy":true,"path":"./icons/icon-tab.js"},{"name":"icon-tactics","legacy":true,"path":"./icons/icon-tactics.js"},{"name":"icon-theif","legacy":true,"path":"./icons/icon-theif.js"},{"name":"icon-thought-bubble","legacy":true,"path":"./icons/icon-thought-bubble.js"},{"name":"icon-twitter","legacy":true,"path":"./icons/icon-twitter.js"},{"name":"icon-umb-contour","legacy":true,"path":"./icons/icon-umb-contour.js"},{"name":"icon-umb-deploy","legacy":true,"path":"./icons/icon-umb-deploy.js"},{"name":"icon-umb-members","legacy":true,"path":"./icons/icon-umb-members.js"},{"name":"icon-universal","legacy":true,"path":"./icons/icon-universal.js"},{"name":"icon-war","legacy":true,"path":"./icons/icon-war.js"},{"name":"icon-windows","legacy":true,"path":"./icons/icon-windows.js"},{"name":"icon-yen-bag","legacy":true,"path":"./icons/icon-yen-bag.js"}] \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg index 02f6e8c48b..d332ef9a31 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg +++ b/src/Umbraco.Web.UI.Client/src/packages/core/icon-registry/svgs/icon-twitter.svg @@ -1,5 +1,5 @@ - + + Twitter - + d="M21.543 7.104c.015.211.015.423.015.636 0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94 0 0 1 0 19.539a9.88 9.88 0 0 0 7.287-2.041 4.93 4.93 0 0 1-4.6-3.42 4.916 4.916 0 0 0 2.223-.084A4.926 4.926 0 0 1 .96 9.167v-.062a4.887 4.887 0 0 0 2.235.616A4.928 4.928 0 0 1 1.67 3.148 13.98 13.98 0 0 0 11.82 8.292a4.929 4.929 0 0 1 8.39-4.49 9.868 9.868 0 0 0 3.128-1.196 4.941 4.941 0 0 1-2.165 2.724A9.828 9.828 0 0 0 24 4.555a10.019 10.019 0 0 1-2.457 2.549z" /> From c77c8ee9373cca546f3721df860101afe9d9fc9e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:13:56 +0200 Subject: [PATCH 174/177] take the TS source code off of @openid/appauth and compile it manually so that we can make it into a proper esmodule --- src/Umbraco.Web.UI.Client/package-lock.json | 596 +++++++++--------- src/Umbraco.Web.UI.Client/package.json | 15 +- .../src/external/base64-js/index.ts | 1 + .../src/external/openid/LICENSE | 176 ++++++ .../external/openid/authorization_request.ts | 122 ++++ .../openid/authorization_request_handler.ts | 161 +++++ .../external/openid/authorization_response.ts | 79 +++ .../authorization_service_configuration.ts | 81 +++ .../src/external/openid/crypto_utils.ts | 98 +++ .../src/external/openid/errors.ts | 24 + .../src/external/openid/flags.ts | 21 + .../src/external/openid/index.ts | 34 +- .../src/external/openid/logger.ts | 71 +++ .../src/external/openid/query_string_utils.ts | 64 ++ .../external/openid/redirect_based_handler.ts | 147 +++++ .../external/openid/revoke_token_request.ts | 73 +++ .../src/external/openid/storage.ts | 101 +++ .../src/external/openid/token_request.ts | 96 +++ .../external/openid/token_request_handler.ts | 88 +++ .../src/external/openid/token_response.ts | 137 ++++ .../src/external/openid/types.ts | 32 + .../src/external/openid/xhr.ts | 115 ++++ src/Umbraco.Web.UI.Client/tsconfig.json | 1 + 23 files changed, 2006 insertions(+), 327 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/external/base64-js/index.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/LICENSE create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/authorization_request.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/authorization_request_handler.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/authorization_response.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/crypto_utils.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/errors.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/flags.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/logger.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/query_string_utils.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/revoke_token_request.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/storage.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/token_response.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/types.ts create mode 100644 src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 865262002a..db9ee79f23 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -9,11 +9,11 @@ "version": "14.0.0-beta003", "license": "MIT", "dependencies": { - "@openid/appauth": "^1.3.1", "@types/dompurify": "^3.0.5", "@types/uuid": "^9.0.8", "@umbraco-ui/uui": "1.7.2", "@umbraco-ui/uui-css": "1.7.2", + "base64-js": "^1.5.1", "dompurify": "^3.0.9", "element-internals-polyfill": "^1.3.10", "lit": "^3.1.2", @@ -44,10 +44,10 @@ "@types/mocha": "^10.0.1", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^7.1.0", - "@web/dev-server-esbuild": "^1.0.1", + "@web/dev-server-esbuild": "^1.0.2", "@web/dev-server-import-maps": "^0.2.0", "@web/dev-server-rollup": "^0.6.1", - "@web/test-runner": "^0.18.0", + "@web/test-runner": "^0.18.1", "@web/test-runner-playwright": "^0.11.0", "babel-loader": "^9.1.3", "eslint": "^8.56.0", @@ -68,9 +68,9 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "remark-gfm": "^3.0.1", - "rollup": "^4.12.0", - "rollup-plugin-esbuild": "^6.1.0", - "rollup-plugin-import-css": "^3.4.0", + "rollup": "^4.14.1", + "rollup-plugin-esbuild": "^6.1.1", + "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-web-worker-loader": "^1.6.1", "simple-icons": "^11.11.0", "storybook": "^7.6.17", @@ -3343,19 +3343,6 @@ "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==", - "dependencies": { - "@types/base64-js": "^1.3.0", - "@types/jquery": "^3.5.5", - "base64-js": "^1.5.1", - "follow-redirects": "^1.13.3", - "form-data": "^4.0.0", - "opener": "^1.5.2" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -3382,52 +3369,60 @@ } }, "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==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.1.tgz", + "integrity": "sha512-QSXujx4d4ogDamQA8ckkkRieFzDgZEuZuGiey9G7CuDcbnX4iINKWxTPC5Br2AEzY9ICAvcndqgAUFMMKnS/Tw==", "dev": true, "dependencies": { "debug": "4.3.4", "extract-zip": "2.0.1", "progress": "2.0.3", - "proxy-agent": "6.3.0", - "tar-fs": "3.0.4", + "proxy-agent": "6.4.0", + "semver": "7.6.0", + "tar-fs": "3.0.5", "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" + "yargs": "17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" }, "engines": { - "node": ">=16.3.0" - }, - "peerDependencies": { - "typescript": ">= 4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=18" } }, - "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==", + "node_modules/@puppeteer/browsers/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": { - "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" + "yallist": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" } }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "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" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@puppeteer/browsers/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/@radix-ui/number": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", @@ -4236,9 +4231,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", - "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.1.tgz", + "integrity": "sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==", "cpu": [ "arm" ], @@ -4249,9 +4244,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", - "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.1.tgz", + "integrity": "sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==", "cpu": [ "arm64" ], @@ -4262,9 +4257,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", - "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.1.tgz", + "integrity": "sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==", "cpu": [ "arm64" ], @@ -4275,9 +4270,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", - "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.1.tgz", + "integrity": "sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==", "cpu": [ "x64" ], @@ -4288,9 +4283,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", - "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.1.tgz", + "integrity": "sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==", "cpu": [ "arm" ], @@ -4301,9 +4296,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", - "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.1.tgz", + "integrity": "sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==", "cpu": [ "arm64" ], @@ -4314,9 +4309,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", - "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.1.tgz", + "integrity": "sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==", "cpu": [ "arm64" ], @@ -4326,10 +4321,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.1.tgz", + "integrity": "sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==", + "cpu": [ + "ppc64le" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", - "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.1.tgz", + "integrity": "sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==", "cpu": [ "riscv64" ], @@ -4339,10 +4347,23 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.1.tgz", + "integrity": "sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", - "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.1.tgz", + "integrity": "sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==", "cpu": [ "x64" ], @@ -4353,9 +4374,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", - "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.1.tgz", + "integrity": "sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==", "cpu": [ "x64" ], @@ -4366,9 +4387,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", - "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.1.tgz", + "integrity": "sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==", "cpu": [ "arm64" ], @@ -4379,9 +4400,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", - "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.1.tgz", + "integrity": "sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==", "cpu": [ "ia32" ], @@ -4392,9 +4413,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", - "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.1.tgz", + "integrity": "sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==", "cpu": [ "x64" ], @@ -5905,11 +5926,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/base64-js": { - "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.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -6127,14 +6143,6 @@ "@types/istanbul-lib-report": "*" } }, - "node_modules/@types/jquery": { - "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.3", "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.3.tgz", @@ -6368,11 +6376,6 @@ "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", "dev": true }, - "node_modules/@types/sizzle": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==" - }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -8213,15 +8216,15 @@ } }, "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==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.18.1.tgz", + "integrity": "sha512-jB/9vrpGVtcLY6/7sPpKpSheQ3wWY9P5aQcz2SK2gMHTq3gNpa51NAyec0Al7EFpHvJ1wKYTGRLB2gPyEoJeDg==", "dev": true, "dependencies": { "@web/browser-logs": "^0.4.0", "@web/config-loader": "^0.3.0", "@web/dev-server": "^0.4.0", - "@web/test-runner-chrome": "^0.15.0", + "@web/test-runner-chrome": "^0.16.0", "@web/test-runner-commands": "^0.9.0", "@web/test-runner-core": "^0.13.0", "@web/test-runner-mocha": "^0.9.0", @@ -8244,16 +8247,16 @@ } }, "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==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.16.0.tgz", + "integrity": "sha512-Edc6Y49aVB6k18S5IOj9OCX3rEf8F3jptIu0p95+imqxmcutFEh1GNmlAk2bQGnXS0U6uVY7Xbf61fiaXUQqhg==", "dev": true, "dependencies": { "@web/test-runner-core": "^0.13.0", "@web/test-runner-coverage-v8": "^0.8.0", "async-mutex": "0.4.0", "chrome-launcher": "^0.15.0", - "puppeteer-core": "^20.0.0" + "puppeteer-core": "^22.0.0" }, "engines": { "node": ">=18.0.0" @@ -8488,9 +8491,9 @@ } }, "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==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -8916,7 +8919,8 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true }, "node_modules/available-typed-arrays": { "version": "1.0.6", @@ -8946,9 +8950,9 @@ "dev": true }, "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", "dev": true }, "node_modules/babel-core": { @@ -9161,6 +9165,42 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "dev": true, + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.3.tgz", + "integrity": "sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==", + "dev": true, + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "streamx": "^2.13.0" + } + }, + "node_modules/bare-os": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.1.tgz", + "integrity": "sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==", + "dev": true, + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.1.tgz", + "integrity": "sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A==", + "dev": true, + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -9181,9 +9221,9 @@ ] }, "node_modules/basic-ftp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz", - "integrity": "sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", "dev": true, "engines": { "node": ">=10.0.0" @@ -9704,12 +9744,14 @@ } }, "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==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.16.tgz", + "integrity": "sha512-IT5lnR44h/qZQ4GaCHvBxYIl4cQL2i9UvFyYeRyVdcpY04hx5H720HQfe/7Oz7ndxaYVLQFGpCO71J4X2Ye/Gw==", "dev": true, "dependencies": { - "mitt": "3.0.0" + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.22.4" }, "peerDependencies": { "devtools-protocol": "*" @@ -9914,6 +9956,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -10195,15 +10238,6 @@ "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, - "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", @@ -10234,9 +10268,9 @@ "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==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true, "engines": { "node": ">= 14" @@ -10423,6 +10457,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, "engines": { "node": ">=0.4.0" } @@ -10512,9 +10547,9 @@ } }, "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==", + "version": "0.0.1262051", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1262051.tgz", + "integrity": "sha512-YJe4CT5SA8on3Spa+UDtNhEqtuV6Epwz3OZ4HQVLhlRccpZ9/PAYk0/cy/oKxFKRrZPBUPyxympQci4yWNWZ9g==", "dev": true }, "node_modules/diff": { @@ -12236,25 +12271,6 @@ "node": ">=0.4.0" } }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -12296,6 +12312,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -12546,52 +12563,20 @@ } }, "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", "dev": true, "dependencies": { "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.0", + "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4", - "fs-extra": "^8.1.0" + "fs-extra": "^11.2.0" }, "engines": { "node": ">= 14" } }, - "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, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "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, - "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, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/giget": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.1.tgz", @@ -12956,9 +12941,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==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -12969,9 +12954,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==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -13206,6 +13191,25 @@ "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -14154,6 +14158,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, "node_modules/jscodeshift": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz", @@ -15775,6 +15785,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -15783,6 +15794,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -15864,9 +15876,9 @@ "dev": true }, "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==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", "dev": true }, "node_modules/mkdirp": { @@ -16570,14 +16582,6 @@ "openapi": "bin/index.js" } }, - "node_modules/opener": { - "version": "1.5.2", - "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", @@ -16759,25 +16763,18 @@ } }, "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==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "dev": true, "dependencies": { "degenerator": "^5.0.0", - "ip": "^1.1.8", "netmask": "^2.0.2" }, "engines": { "node": ">= 14" } }, - "node_modules/pac-resolver/node_modules/ip": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", - "dev": true - }, "node_modules/pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", @@ -17244,19 +17241,19 @@ } }, "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==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", "dev": true, "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.0", + "pac-proxy-agent": "^7.0.1", "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.2" }, "engines": { "node": ">= 14" @@ -17318,49 +17315,19 @@ } }, "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==", + "version": "22.6.3", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.6.3.tgz", + "integrity": "sha512-YrTAak5zCTWVTnVaCK1b7FD1qFCCT9bSvQhLzamnIsJ57/tfuXiT8ZvPJR2SBfahyFTYFCcaZAd/Npow3lmDGA==", "dev": true, "dependencies": { - "@puppeteer/browsers": "1.4.6", - "chromium-bidi": "0.4.16", - "cross-fetch": "4.0.0", + "@puppeteer/browsers": "2.2.1", + "chromium-bidi": "0.5.16", "debug": "4.3.4", - "devtools-protocol": "0.0.1147663", - "ws": "8.13.0" + "devtools-protocol": "0.0.1262051", + "ws": "8.16.0" }, "engines": { - "node": ">=16.3.0" - }, - "peerDependencies": { - "typescript": ">= 4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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": ">=18" } }, "node_modules/qs": { @@ -18073,9 +18040,9 @@ } }, "node_modules/rollup": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", - "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.1.tgz", + "integrity": "sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -18088,19 +18055,21 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.12.0", - "@rollup/rollup-android-arm64": "4.12.0", - "@rollup/rollup-darwin-arm64": "4.12.0", - "@rollup/rollup-darwin-x64": "4.12.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", - "@rollup/rollup-linux-arm64-gnu": "4.12.0", - "@rollup/rollup-linux-arm64-musl": "4.12.0", - "@rollup/rollup-linux-riscv64-gnu": "4.12.0", - "@rollup/rollup-linux-x64-gnu": "4.12.0", - "@rollup/rollup-linux-x64-musl": "4.12.0", - "@rollup/rollup-win32-arm64-msvc": "4.12.0", - "@rollup/rollup-win32-ia32-msvc": "4.12.0", - "@rollup/rollup-win32-x64-msvc": "4.12.0", + "@rollup/rollup-android-arm-eabi": "4.14.1", + "@rollup/rollup-android-arm64": "4.14.1", + "@rollup/rollup-darwin-arm64": "4.14.1", + "@rollup/rollup-darwin-x64": "4.14.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.14.1", + "@rollup/rollup-linux-arm64-gnu": "4.14.1", + "@rollup/rollup-linux-arm64-musl": "4.14.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.14.1", + "@rollup/rollup-linux-riscv64-gnu": "4.14.1", + "@rollup/rollup-linux-s390x-gnu": "4.14.1", + "@rollup/rollup-linux-x64-gnu": "4.14.1", + "@rollup/rollup-linux-x64-musl": "4.14.1", + "@rollup/rollup-win32-arm64-msvc": "4.14.1", + "@rollup/rollup-win32-ia32-msvc": "4.14.1", + "@rollup/rollup-win32-x64-msvc": "4.14.1", "fsevents": "~2.3.2" } }, @@ -18130,9 +18099,9 @@ "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==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-import-css/-/rollup-plugin-import-css-3.5.0.tgz", + "integrity": "sha512-JOVow6n00qt2C/NnsqPmIjFOfxIAudwWqC5SaC84CodMGiMFaP1gPAdgnJ8g8hcG+P85TCYp2kI98grYCEt5pg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.4" @@ -18559,26 +18528,26 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "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==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", "dev": true, "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.1", "debug": "^4.3.4", "socks": "^2.7.1" }, @@ -18719,13 +18688,16 @@ "dev": true }, "node_modules/streamx": { - "version": "2.15.7", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.7.tgz", - "integrity": "sha512-NPEKS5+yjyo597eafGbKW5ujh7Sm6lDLHZQd/lRSz6S0VarpADBJItqfB4PnwpS+472oob1GX5cCY9vzfJpHUA==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" } }, "node_modules/strict-event-emitter": { @@ -19000,14 +18972,17 @@ } }, "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==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", "dev": true, "dependencies": { - "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" } }, "node_modules/tar-stream": { @@ -20080,6 +20055,12 @@ "punycode": "^2.1.0" } }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true + }, "node_modules/use-callback-ref": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", @@ -21133,6 +21114,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 929d6ea64c..f6339dca28 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -88,6 +88,7 @@ "./webhook": "./dist-cms/packages/webhook/index.js", "./workspace": "./dist-cms/packages/core/workspace/index.js", "./external/backend-api": "./dist-cms/external/backend-api/index.js", + "./external/base64-js": "./dist-cms/external/base64-js/index.js", "./external/dompurify": "./dist-cms/external/dompurify/index.js", "./external/lit": "./dist-cms/external/lit/index.js", "./external/marked": "./dist-cms/external/marked/index.js", @@ -162,11 +163,11 @@ "npm": ">=10.1 < 11" }, "dependencies": { - "@openid/appauth": "^1.3.1", "@types/dompurify": "^3.0.5", "@types/uuid": "^9.0.8", "@umbraco-ui/uui": "1.7.2", "@umbraco-ui/uui-css": "1.7.2", + "base64-js": "^1.5.1", "dompurify": "^3.0.9", "element-internals-polyfill": "^1.3.10", "lit": "^3.1.2", @@ -197,10 +198,10 @@ "@types/mocha": "^10.0.1", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^7.1.0", - "@web/dev-server-esbuild": "^1.0.1", + "@web/dev-server-esbuild": "^1.0.2", "@web/dev-server-import-maps": "^0.2.0", "@web/dev-server-rollup": "^0.6.1", - "@web/test-runner": "^0.18.0", + "@web/test-runner": "^0.18.1", "@web/test-runner-playwright": "^0.11.0", "babel-loader": "^9.1.3", "eslint": "^8.56.0", @@ -221,12 +222,12 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "remark-gfm": "^3.0.1", - "rollup": "^4.12.0", - "rollup-plugin-esbuild": "^6.1.0", - "rollup-plugin-import-css": "^3.4.0", + "rollup": "^4.14.1", + "rollup-plugin-esbuild": "^6.1.1", + "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-web-worker-loader": "^1.6.1", - "storybook": "^7.6.17", "simple-icons": "^11.11.0", + "storybook": "^7.6.17", "tiny-glob": "^0.2.9", "tsc-alias": "^1.8.8", "typedoc": "^0.25.10", diff --git a/src/Umbraco.Web.UI.Client/src/external/base64-js/index.ts b/src/Umbraco.Web.UI.Client/src/external/base64-js/index.ts new file mode 100644 index 0000000000..d8a192ebba --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/base64-js/index.ts @@ -0,0 +1 @@ +export { fromByteArray } from 'base64-js'; diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/LICENSE b/src/Umbraco.Web.UI.Client/src/external/openid/LICENSE new file mode 100644 index 0000000000..d9a10c0d8e --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/authorization_request.ts b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_request.ts new file mode 100644 index 0000000000..668082c472 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_request.ts @@ -0,0 +1,122 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { DefaultCrypto } from './crypto_utils.js'; +import type { Crypto } from './crypto_utils.js'; +import { log } from './logger.js'; +import type { StringMap } from './types.js'; + +/** + * Represents an AuthorizationRequest as JSON. + */ +export interface AuthorizationRequestJson { + response_type: string; + client_id: string; + redirect_uri: string; + scope: string; + state?: string; + extras?: StringMap; + internal?: StringMap; +} + +/** + * Generates a cryptographically random new state. Useful for CSRF protection. + */ +const SIZE = 10; // 10 bytes +const newState = function (crypto: Crypto): string { + return crypto.generateRandom(SIZE); +}; + +/** + * Represents the AuthorizationRequest. + * For more information look at + * https://tools.ietf.org/html/rfc6749#section-4.1.1 + */ +export class AuthorizationRequest { + static RESPONSE_TYPE_TOKEN = 'token'; + static RESPONSE_TYPE_CODE = 'code'; + + // NOTE: + // Both redirect_uri and state are actually optional. + // However AppAuth is more opionionated, and requires you to use both. + + clientId: string; + redirectUri: string; + scope: string; + responseType: string; + state: string; + extras?: StringMap; + internal?: StringMap; + /** + * Constructs a new AuthorizationRequest. + * Use a `undefined` value for the `state` parameter, to generate a random + * state for CSRF protection. + */ + constructor( + request: AuthorizationRequestJson, + private crypto: Crypto = new DefaultCrypto(), + private usePkce: boolean = true, + ) { + this.clientId = request.client_id; + this.redirectUri = request.redirect_uri; + this.scope = request.scope; + this.responseType = request.response_type || AuthorizationRequest.RESPONSE_TYPE_CODE; + this.state = request.state || newState(crypto); + this.extras = request.extras; + // read internal properties if available + this.internal = request.internal; + } + + setupCodeVerifier(): Promise { + if (!this.usePkce) { + return Promise.resolve(); + } else { + const codeVerifier = this.crypto.generateRandom(128); + const challenge: Promise = this.crypto.deriveChallenge(codeVerifier).catch((error) => { + log('Unable to generate PKCE challenge. Not using PKCE', error); + return undefined; + }); + return challenge.then((result) => { + if (result) { + // keep track of the code used. + this.internal = this.internal || {}; + this.internal['code_verifier'] = codeVerifier; + this.extras = this.extras || {}; + this.extras['code_challenge'] = result; + // We always use S256. Plain is not good enough. + this.extras['code_challenge_method'] = 'S256'; + } + }); + } + } + + /** + * Serializes the AuthorizationRequest to a JavaScript Object. + */ + toJson(): Promise { + // Always make sure that the code verifier is setup when toJson() is called. + return this.setupCodeVerifier().then(() => { + return { + response_type: this.responseType, + client_id: this.clientId, + redirect_uri: this.redirectUri, + scope: this.scope, + state: this.state, + extras: this.extras, + internal: this.internal, + }; + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/authorization_request_handler.ts b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_request_handler.ts new file mode 100644 index 0000000000..90eb72b171 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_request_handler.ts @@ -0,0 +1,161 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { AuthorizationRequest } from './authorization_request.js'; +import type { AuthorizationError, AuthorizationResponse } from './authorization_response.js'; +import type { AuthorizationServiceConfiguration } from './authorization_service_configuration.js'; +import type { Crypto } from './crypto_utils.js'; +import { log } from './logger.js'; +import type { QueryStringUtils } from './query_string_utils.js'; +import type { StringMap } from './types.js'; + +/** + * This type represents a lambda that can take an AuthorizationRequest, + * and an AuthorizationResponse as arguments. + */ +export type AuthorizationListener = ( + request: AuthorizationRequest, + response: AuthorizationResponse | null, + error: AuthorizationError | null, +) => void; + +/** + * Represents a structural type holding both authorization request and response. + */ +export interface AuthorizationRequestResponse { + request: AuthorizationRequest; + response: AuthorizationResponse | null; + error: AuthorizationError | null; +} + +/** + * Authorization Service notifier. + * This manages the communication of the AuthorizationResponse to the 3p client. + */ +export class AuthorizationNotifier { + private listener: AuthorizationListener | null = null; + + setAuthorizationListener(listener: AuthorizationListener) { + this.listener = listener; + } + + /** + * The authorization complete callback. + */ + onAuthorizationComplete( + request: AuthorizationRequest, + response: AuthorizationResponse | null, + error: AuthorizationError | null, + ): void { + if (this.listener) { + // complete authorization request + this.listener(request, response, error); + } + } +} + +// TODO(rahulrav@): add more built in parameters. +/* built in parameters. */ +export const BUILT_IN_PARAMETERS = ['redirect_uri', 'client_id', 'response_type', 'state', 'scope']; + +/** + * Defines the interface which is capable of handling an authorization request + * using various methods (iframe / popup / different process etc.). + */ +export abstract class AuthorizationRequestHandler { + constructor( + public utils: QueryStringUtils, + protected crypto: Crypto, + ) {} + + // notifier send the response back to the client. + protected notifier: AuthorizationNotifier | null = null; + + /** + * A utility method to be able to build the authorization request URL. + */ + protected buildRequestUrl(configuration: AuthorizationServiceConfiguration, request: AuthorizationRequest) { + // build the query string + // coerce to any type for convenience + const requestMap: StringMap = { + redirect_uri: request.redirectUri, + client_id: request.clientId, + response_type: request.responseType, + state: request.state, + scope: request.scope, + }; + + // copy over extras + if (request.extras) { + for (const extra in request.extras) { + if (Object.prototype.hasOwnProperty.call(request.extras, extra)) { + // check before inserting to requestMap + if (BUILT_IN_PARAMETERS.indexOf(extra) < 0) { + requestMap[extra] = request.extras[extra]; + } + } + } + } + + const query = this.utils.stringify(requestMap); + const baseUrl = configuration.authorizationEndpoint; + const url = `${baseUrl}?${query}`; + return url; + } + + /** + * Completes the authorization request if necessary & when possible. + */ + completeAuthorizationRequestIfPossible(): Promise { + // call complete authorization if possible to see there might + // be a response that needs to be delivered. + log(`Checking to see if there is an authorization response to be delivered.`); + if (!this.notifier) { + log(`Notifier is not present on AuthorizationRequest handler. + No delivery of result will be possible`); + } + return this.completeAuthorizationRequest().then((result) => { + if (!result) { + log(`No result is available yet.`); + } + if (result && this.notifier) { + this.notifier.onAuthorizationComplete(result.request, result.response, result.error); + } + }); + } + + /** + * Sets the default Authorization Service notifier. + */ + setAuthorizationNotifier(notifier: AuthorizationNotifier): AuthorizationRequestHandler { + this.notifier = notifier; + return this; + } + + /** + * Makes an authorization request. + */ + abstract performAuthorizationRequest( + configuration: AuthorizationServiceConfiguration, + request: AuthorizationRequest, + ): void; + + /** + * Checks if an authorization flow can be completed, and completes it. + * The handler returns a `Promise` if ready, or a `Promise` + * if not ready. + */ + protected abstract completeAuthorizationRequest(): Promise; +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/authorization_response.ts b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_response.ts new file mode 100644 index 0000000000..ac074fca30 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_response.ts @@ -0,0 +1,79 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Represents the AuthorizationResponse as a JSON object. + */ +export interface AuthorizationResponseJson { + code: string; + state: string; +} + +/** + * Represents the AuthorizationError as a JSON object. + */ +export interface AuthorizationErrorJson { + error: string; + error_description?: string; + error_uri?: string; + state?: string; +} + +/** + * Represents the Authorization Response type. + * For more information look at + * https://tools.ietf.org/html/rfc6749#section-4.1.2 + */ +export class AuthorizationResponse { + code: string; + state: string; + + constructor(response: AuthorizationResponseJson) { + this.code = response.code; + this.state = response.state; + } + + toJson(): AuthorizationResponseJson { + return { code: this.code, state: this.state }; + } +} + +/** + * Represents the Authorization error response. + * For more information look at: + * https://tools.ietf.org/html/rfc6749#section-4.1.2.1 + */ +export class AuthorizationError { + error: string; + errorDescription?: string; + errorUri?: string; + state?: string; + + constructor(error: AuthorizationErrorJson) { + this.error = error.error; + this.errorDescription = error.error_description; + this.errorUri = error.error_uri; + this.state = error.state; + } + + toJson(): AuthorizationErrorJson { + return { + error: this.error, + error_description: this.errorDescription, + error_uri: this.errorUri, + state: this.state, + }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts new file mode 100644 index 0000000000..b532d7f2a4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts @@ -0,0 +1,81 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { Requestor } from './xhr.js'; +import { JQueryRequestor } from './xhr.js'; + +/** + * Represents AuthorizationServiceConfiguration as a JSON object. + */ +export interface AuthorizationServiceConfigurationJson { + authorization_endpoint: string; + token_endpoint: string; + revocation_endpoint: string; + end_session_endpoint?: string; + userinfo_endpoint?: string; +} + +/** + * The standard base path for well-known resources on domains. + * See https://tools.ietf.org/html/rfc5785 for more information. + */ +const WELL_KNOWN_PATH = '.well-known'; + +/** + * The standard resource under the well known path at which an OpenID Connect + * discovery document can be found under an issuer's base URI. + */ +const OPENID_CONFIGURATION = 'openid-configuration'; + +/** + * Configuration details required to interact with an authorization service. + * + * More information at https://openid.net/specs/openid-connect-discovery-1_0-17.html + */ +export class AuthorizationServiceConfiguration { + authorizationEndpoint: string; + tokenEndpoint: string; + revocationEndpoint: string; + userInfoEndpoint?: string; + endSessionEndpoint?: string; + + constructor(request: AuthorizationServiceConfigurationJson) { + this.authorizationEndpoint = request.authorization_endpoint; + this.tokenEndpoint = request.token_endpoint; + this.revocationEndpoint = request.revocation_endpoint; + this.userInfoEndpoint = request.userinfo_endpoint; + this.endSessionEndpoint = request.end_session_endpoint; + } + + toJson() { + return { + authorization_endpoint: this.authorizationEndpoint, + token_endpoint: this.tokenEndpoint, + revocation_endpoint: this.revocationEndpoint, + end_session_endpoint: this.endSessionEndpoint, + userinfo_endpoint: this.userInfoEndpoint, + }; + } + + static fetchFromIssuer(openIdIssuerUrl: string, requestor?: Requestor): Promise { + const fullUrl = `${openIdIssuerUrl}/${WELL_KNOWN_PATH}/${OPENID_CONFIGURATION}`; + + const requestorToUse = requestor || new JQueryRequestor(); + + return requestorToUse + .xhr({ url: fullUrl, dataType: 'json', method: 'GET' }) + .then((json) => new AuthorizationServiceConfiguration(json)); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/crypto_utils.ts b/src/Umbraco.Web.UI.Client/src/external/openid/crypto_utils.ts new file mode 100644 index 0000000000..9ee6c84ac1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/crypto_utils.ts @@ -0,0 +1,98 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as base64 from '@umbraco-cms/backoffice/external/base64-js'; + +import { AppAuthError } from './errors.js'; + +const HAS_CRYPTO = typeof window !== 'undefined' && !!(window.crypto as any); +const HAS_SUBTLE_CRYPTO = HAS_CRYPTO && !!(window.crypto.subtle as any); +const CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + +export function bufferToString(buffer: Uint8Array) { + const state = []; + for (let i = 0; i < buffer.byteLength; i += 1) { + const index = buffer[i] % CHARSET.length; + state.push(CHARSET[index]); + } + return state.join(''); +} + +export function urlSafe(buffer: Uint8Array): string { + const encoded = base64.fromByteArray(new Uint8Array(buffer)); + return encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); +} + +// adapted from source: http://stackoverflow.com/a/11058858 +// this is used in place of TextEncode as the api is not yet +// well supported: https://caniuse.com/#search=TextEncoder +export function textEncodeLite(str: string) { + const buf = new ArrayBuffer(str.length); + const bufView = new Uint8Array(buf); + + for (let i = 0; i < str.length; i++) { + bufView[i] = str.charCodeAt(i); + } + return bufView; +} + +export interface Crypto { + /** + * Generate a random string + */ + generateRandom(size: number): string; + /** + * Compute the SHA256 of a given code. + * This is useful when using PKCE. + */ + deriveChallenge(code: string): Promise; +} + +/** + * The default implementation of the `Crypto` interface. + * This uses the capabilities of the browser. + */ +export class DefaultCrypto implements Crypto { + generateRandom(size: number) { + const buffer = new Uint8Array(size); + if (HAS_CRYPTO) { + window.crypto.getRandomValues(buffer); + } else { + // fall back to Math.random() if nothing else is available + for (let i = 0; i < size; i += 1) { + buffer[i] = (Math.random() * CHARSET.length) | 0; + } + } + return bufferToString(buffer); + } + + deriveChallenge(code: string): Promise { + if (code.length < 43 || code.length > 128) { + return Promise.reject(new AppAuthError('Invalid code length.')); + } + if (!HAS_SUBTLE_CRYPTO) { + return Promise.reject(new AppAuthError('window.crypto.subtle is unavailable.')); + } + + return new Promise((resolve, reject) => { + crypto.subtle.digest('SHA-256', textEncodeLite(code)).then( + (buffer) => { + return resolve(urlSafe(new Uint8Array(buffer))); + }, + (error) => reject(error), + ); + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/errors.ts b/src/Umbraco.Web.UI.Client/src/external/openid/errors.ts new file mode 100644 index 0000000000..a37305b800 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/errors.ts @@ -0,0 +1,24 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Represents the AppAuthError type. + */ +export class AppAuthError { + constructor( + public message: string, + public extras?: any, + ) {} +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/flags.ts b/src/Umbraco.Web.UI.Client/src/external/openid/flags.ts new file mode 100644 index 0000000000..8a278c6c06 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/flags.ts @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Global flags that control the behavior of App Auth JS. */ + +/* Logging turned on ? */ +export const IS_LOG = true; + +/* Profiling turned on ? */ +export const IS_PROFILE = false; diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts index 5d92bc1f8c..108f5e5134 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/index.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/index.ts @@ -1,17 +1,17 @@ -export { - AuthorizationNotifier, - AuthorizationRequest, - AuthorizationServiceConfiguration, - BaseTokenRequestHandler, - FetchRequestor, - BasicQueryStringUtils, - LocalStorageBackend, - RedirectRequestHandler, - TokenRequest, - TokenResponse, - RevokeTokenRequest, - GRANT_TYPE_AUTHORIZATION_CODE, - GRANT_TYPE_REFRESH_TOKEN, -} from '@openid/appauth'; - -export type { LocationLike, StringMap } from '@openid/appauth'; +export * from './authorization_request.js'; +export * from './authorization_request_handler.js'; +export * from './authorization_response.js'; +export * from './authorization_service_configuration.js'; +export * from './crypto_utils.js'; +export * from './errors.js'; +export * from './flags.js'; +export * from './logger.js'; +export * from './query_string_utils.js'; +export * from './redirect_based_handler.js'; +export * from './revoke_token_request.js'; +export * from './storage.js'; +export * from './token_request.js'; +export * from './token_request_handler.js'; +export * from './token_response.js'; +export type * from './types.js'; +export * from './xhr.js'; diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/logger.ts b/src/Umbraco.Web.UI.Client/src/external/openid/logger.ts new file mode 100644 index 0000000000..9f31c83d79 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/logger.ts @@ -0,0 +1,71 @@ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { IS_LOG, IS_PROFILE } from './flags.js'; + +export function log(message: string, ...args: any[]) { + if (IS_LOG) { + const length = args ? args.length : 0; + if (length > 0) { + console.log(message, ...args); + } else { + console.log(message); + } + } +} + +// check to see if native support for profiling is available. +const NATIVE_PROFILE_SUPPORT = typeof window !== 'undefined' && !!window.performance && !!console.profile; + +/** + * A decorator that can profile a function. + */ +export function profile(target: any, propertyKey: string, descriptor: PropertyDescriptor) { + if (IS_PROFILE) { + return performProfile(target, propertyKey, descriptor); + } else { + // return as-is + return descriptor; + } +} + +function performProfile(target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor { + const originalCallable = descriptor.value; + // name must exist + let name = originalCallable.name; + if (!name) { + name = 'anonymous function'; + } + if (NATIVE_PROFILE_SUPPORT) { + descriptor.value = function (args: any[]) { + console.profile(name); + const startTime = window.performance.now(); + const result = originalCallable.call(this || window, ...args); + const duration = window.performance.now() - startTime; + console.log(`${name} took ${duration} ms`); + console.profileEnd(); + return result; + }; + } else { + descriptor.value = function (args: any[]) { + log(`Profile start ${name}`); + const start = Date.now(); + const result = originalCallable.call(this || window, ...args); + const duration = Date.now() - start; + log(`Profile end ${name} took ${duration} ms.`); + return result; + }; + } + return descriptor; +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/query_string_utils.ts b/src/Umbraco.Web.UI.Client/src/external/openid/query_string_utils.ts new file mode 100644 index 0000000000..eb88ce5c13 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/query_string_utils.ts @@ -0,0 +1,64 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { LocationLike, StringMap } from './types.js'; + +/** + * Query String Utilities. + */ +export interface QueryStringUtils { + stringify(input: StringMap): string; + parse(query: LocationLike, useHash?: boolean): StringMap; + parseQueryString(query: string): StringMap; +} + +export class BasicQueryStringUtils implements QueryStringUtils { + parse(input: LocationLike, useHash?: boolean) { + if (useHash) { + return this.parseQueryString(input.hash); + } else { + return this.parseQueryString(input.search); + } + } + + parseQueryString(query: string): StringMap { + const result: StringMap = {}; + // if anything starts with ?, # or & remove it + query = query.trim().replace(/^(\?|#|&)/, ''); + const params = query.split('&'); + for (let i = 0; i < params.length; i += 1) { + const param = params[i]; // looks something like a=b + const parts = param.split('='); + if (parts.length >= 2) { + const key = decodeURIComponent(parts.shift()!); + const value = parts.length > 0 ? parts.join('=') : null; + if (value) { + result[key] = decodeURIComponent(value); + } + } + } + return result; + } + + stringify(input: StringMap) { + const encoded: string[] = []; + for (const key in input) { + if (Object.prototype.hasOwnProperty.call(input, key) && input[key]) { + encoded.push(`${encodeURIComponent(key)}=${encodeURIComponent(input[key])}`); + } + } + return encoded.join('&'); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts b/src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts new file mode 100644 index 0000000000..7a5f7eafc9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts @@ -0,0 +1,147 @@ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {AuthorizationRequest} from './authorization_request'; +import {AuthorizationRequestHandler, AuthorizationRequestResponse} from './authorization_request_handler'; +import {AuthorizationError, AuthorizationResponse} from './authorization_response' +import {AuthorizationServiceConfiguration} from './authorization_service_configuration'; +import {Crypto, DefaultCrypto} from './crypto_utils'; +import {log} from './logger'; +import {BasicQueryStringUtils} from './query_string_utils'; +import {LocalStorageBackend, StorageBackend} from './storage'; +import {LocationLike} from './types'; + + +/** key for authorization request. */ +const authorizationRequestKey = + (handle: string) => { + return `${handle}_appauth_authorization_request`; + } + +/** key for authorization service configuration */ +const authorizationServiceConfigurationKey = + (handle: string) => { + return `${handle}_appauth_authorization_service_configuration`; + } + +/** key in local storage which represents the current authorization request. */ +const AUTHORIZATION_REQUEST_HANDLE_KEY = 'appauth_current_authorization_request'; + +/** + * Represents an AuthorizationRequestHandler which uses a standard + * redirect based code flow. + */ +export class RedirectRequestHandler extends AuthorizationRequestHandler { + constructor( + // use the provided storage backend + // or initialize local storage with the default storage backend which + // uses window.localStorage + public storageBackend: StorageBackend = new LocalStorageBackend(), + utils = new BasicQueryStringUtils(), + public locationLike: LocationLike = window.location, + crypto: Crypto = new DefaultCrypto()) { + super(utils, crypto); + } + + performAuthorizationRequest( + configuration: AuthorizationServiceConfiguration, + request: AuthorizationRequest) { + const handle = this.crypto.generateRandom(10); + + // before you make request, persist all request related data in local storage. + const persisted = Promise.all([ + this.storageBackend.setItem(AUTHORIZATION_REQUEST_HANDLE_KEY, handle), + // Calling toJson() adds in the code & challenge when possible + request.toJson().then( + result => + this.storageBackend.setItem(authorizationRequestKey(handle), JSON.stringify(result))), + this.storageBackend.setItem( + authorizationServiceConfigurationKey(handle), JSON.stringify(configuration.toJson())), + ]); + + persisted.then(() => { + // make the redirect request + let url = this.buildRequestUrl(configuration, request); + log('Making a request to ', request, url); + this.locationLike.assign(url); + }); + } + + /** + * Attempts to introspect the contents of storage backend and completes the + * request. + */ + protected completeAuthorizationRequest(): Promise { + // TODO(rahulrav@): handle authorization errors. + return this.storageBackend.getItem(AUTHORIZATION_REQUEST_HANDLE_KEY).then(handle => { + if (handle) { + // we have a pending request. + // fetch authorization request, and check state + return this.storageBackend + .getItem(authorizationRequestKey(handle)) + // requires a corresponding instance of result + // TODO(rahulrav@): check for inconsitent state here + .then(result => JSON.parse(result!)) + .then(json => new AuthorizationRequest(json)) + .then(request => { + // check redirect_uri and state + let currentUri = `${this.locationLike.origin}${this.locationLike.pathname}`; + let queryParams = this.utils.parse(this.locationLike, true /* use hash */); + let state: string|undefined = queryParams['state']; + let code: string|undefined = queryParams['code']; + let error: string|undefined = queryParams['error']; + log('Potential authorization request ', currentUri, queryParams, state, code, error); + let shouldNotify = state === request.state; + let authorizationResponse: AuthorizationResponse|null = null; + let authorizationError: AuthorizationError|null = null; + if (shouldNotify) { + if (error) { + // get additional optional info. + let errorUri = queryParams['error_uri']; + let errorDescription = queryParams['error_description']; + authorizationError = new AuthorizationError({ + error: error, + error_description: errorDescription, + error_uri: errorUri, + state: state + }); + } else { + authorizationResponse = new AuthorizationResponse({code: code, state: state}); + } + // cleanup state + return Promise + .all([ + this.storageBackend.removeItem(AUTHORIZATION_REQUEST_HANDLE_KEY), + this.storageBackend.removeItem(authorizationRequestKey(handle)), + this.storageBackend.removeItem(authorizationServiceConfigurationKey(handle)) + ]) + .then(() => { + log('Delivering authorization response'); + return { + request: request, + response: authorizationResponse, + error: authorizationError + } as AuthorizationRequestResponse; + }); + } else { + log('Mismatched request (state and request_uri) dont match.'); + return Promise.resolve(null); + } + }); + } else { + return null; + } + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/revoke_token_request.ts b/src/Umbraco.Web.UI.Client/src/external/openid/revoke_token_request.ts new file mode 100644 index 0000000000..97e21f1bec --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/revoke_token_request.ts @@ -0,0 +1,73 @@ +/* eslint-disable local-rules/umb-class-prefix */ +import type { StringMap } from './types.js'; + +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Supported token types + */ +export type TokenTypeHint = 'refresh_token' | 'access_token'; + +/** + * Represents the Token Request as JSON. + */ +export interface RevokeTokenRequestJson { + token: string; + token_type_hint?: TokenTypeHint; + client_id?: string; + client_secret?: string; +} + +/** + * Represents a revoke token request. + * For more information look at: + * https://tools.ietf.org/html/rfc7009#section-2.1 + */ +export class RevokeTokenRequest { + token: string; + tokenTypeHint: TokenTypeHint | undefined; + clientId: string | undefined; + clientSecret: string | undefined; + + constructor(request: RevokeTokenRequestJson) { + this.token = request.token; + this.tokenTypeHint = request.token_type_hint; + this.clientId = request.client_id; + this.clientSecret = request.client_secret; + } + + /** + * Serializes a TokenRequest to a JavaScript object. + */ + toJson(): RevokeTokenRequestJson { + const json: RevokeTokenRequestJson = { token: this.token }; + if (this.tokenTypeHint) { + json['token_type_hint'] = this.tokenTypeHint; + } + if (this.clientId) { + json['client_id'] = this.clientId; + } + if (this.clientSecret) { + json['client_secret'] = this.clientSecret; + } + return json; + } + + toStringMap(): StringMap { + const json = this.toJson(); + // :( + return json as any; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/storage.ts b/src/Umbraco.Web.UI.Client/src/external/openid/storage.ts new file mode 100644 index 0000000000..a33c5dfcad --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/storage.ts @@ -0,0 +1,101 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * A subset of the `Storage` interface which we need for the backends to work. + * + * Essentially removes the indexable properties and readonly properties from + * `Storage` in lib.dom.d.ts. This is so that a custom type can extend it for + * testing. + */ +export interface UnderlyingStorage { + readonly length: number; + clear(): void; + getItem(key: string): string | null; + removeItem(key: string): void; + setItem(key: string, data: string): void; +} + +/** + * Asynchronous storage APIs. All methods return a `Promise`. + * All methods take the `DOMString` + * IDL type (as it is the lowest common denominator). + */ +export abstract class StorageBackend { + /** + * When passed a key `name`, will return that key's value. + */ + public abstract getItem(name: string): Promise; + + /** + * When passed a key `name`, will remove that key from the storage. + */ + public abstract removeItem(name: string): Promise; + + /** + * When invoked, will empty all keys out of the storage. + */ + public abstract clear(): Promise; + + /** + * The setItem() method of the `StorageBackend` interface, + * when passed a key name and value, will add that key to the storage, + * or update that key's value if it already exists. + */ + public abstract setItem(name: string, value: string): Promise; +} + +/** + * A `StorageBackend` backed by `localstorage`. + */ +export class LocalStorageBackend extends StorageBackend { + private storage: UnderlyingStorage; + constructor(storage?: UnderlyingStorage) { + super(); + this.storage = storage || window.localStorage; + } + + public getItem(name: string): Promise { + return new Promise((resolve, reject) => { + const value = this.storage.getItem(name); + if (value) { + resolve(value); + } else { + resolve(null); + } + }); + } + + public removeItem(name: string): Promise { + return new Promise((resolve, reject) => { + this.storage.removeItem(name); + resolve(); + }); + } + + public clear(): Promise { + return new Promise((resolve, reject) => { + this.storage.clear(); + resolve(); + }); + } + + public setItem(name: string, value: string): Promise { + return new Promise((resolve, reject) => { + this.storage.setItem(name, value); + resolve(); + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts b/src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts new file mode 100644 index 0000000000..9ee6a209ce --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts @@ -0,0 +1,96 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* eslint-disable local-rules/exported-string-constant-naming */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { StringMap } from './types.js'; + +export const GRANT_TYPE_AUTHORIZATION_CODE = 'authorization_code'; +export const GRANT_TYPE_REFRESH_TOKEN = 'refresh_token'; + +/** + * Represents the Token Request as JSON. + */ +export interface TokenRequestJson { + grant_type: string; + code?: string; + refresh_token?: string; + redirect_uri: string; + client_id: string; + extras?: StringMap; +} + +/** + * Represents an Access Token request. + * For more information look at: + * https://tools.ietf.org/html/rfc6749#section-4.1.3 + */ +export class TokenRequest { + clientId: string; + redirectUri: string; + grantType: string; + code: string | undefined; + refreshToken: string | undefined; + extras: StringMap | undefined; + + constructor(request: TokenRequestJson) { + this.clientId = request.client_id; + this.redirectUri = request.redirect_uri; + this.grantType = request.grant_type; + this.code = request.code; + this.refreshToken = request.refresh_token; + this.extras = request.extras; + } + + /** + * Serializes a TokenRequest to a JavaScript object. + */ + toJson(): TokenRequestJson { + return { + grant_type: this.grantType, + code: this.code, + refresh_token: this.refreshToken, + redirect_uri: this.redirectUri, + client_id: this.clientId, + extras: this.extras, + }; + } + + toStringMap(): StringMap { + const map: StringMap = { + grant_type: this.grantType, + client_id: this.clientId, + redirect_uri: this.redirectUri, + }; + + if (this.code) { + map['code'] = this.code; + } + + if (this.refreshToken) { + map['refresh_token'] = this.refreshToken; + } + + // copy over extras + if (this.extras) { + for (const extra in this.extras) { + if (Object.prototype.hasOwnProperty.call(this.extras, extra) && !map.hasOwnProperty(extra)) { + // check before inserting to requestMap + map[extra] = this.extras[extra]; + } + } + } + return map; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts b/src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts new file mode 100644 index 0000000000..99ae687a39 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts @@ -0,0 +1,88 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { AuthorizationServiceConfiguration } from './authorization_service_configuration.js'; +import { AppAuthError } from './errors.js'; +import { BasicQueryStringUtils } from './query_string_utils.js'; +import type { QueryStringUtils } from './query_string_utils.js'; +import type { RevokeTokenRequest } from './revoke_token_request.js'; +import type { TokenRequest } from './token_request.js'; +import { TokenError, TokenResponse } from './token_response.js'; +import type { TokenErrorJson, TokenResponseJson } from './token_response.js'; +import { JQueryRequestor } from './xhr.js'; +import type { Requestor } from './xhr.js'; + +/** + * Represents an interface which can make a token request. + */ +export interface TokenRequestHandler { + /** + * Performs the token request, given the service configuration. + */ + performTokenRequest(configuration: AuthorizationServiceConfiguration, request: TokenRequest): Promise; + + performRevokeTokenRequest( + configuration: AuthorizationServiceConfiguration, + request: RevokeTokenRequest, + ): Promise; +} + +/** + * The default token request handler. + */ +export class BaseTokenRequestHandler implements TokenRequestHandler { + constructor( + public readonly requestor: Requestor = new JQueryRequestor(), + public readonly utils: QueryStringUtils = new BasicQueryStringUtils(), + ) {} + + private isTokenResponse(response: TokenResponseJson | TokenErrorJson): response is TokenResponseJson { + return (response as TokenErrorJson).error === undefined; + } + + performRevokeTokenRequest( + configuration: AuthorizationServiceConfiguration, + request: RevokeTokenRequest, + ): Promise { + const revokeTokenResponse = this.requestor.xhr({ + url: configuration.revocationEndpoint, + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + data: this.utils.stringify(request.toStringMap()), + }); + + return revokeTokenResponse.then((response) => { + return true; + }); + } + + performTokenRequest(configuration: AuthorizationServiceConfiguration, request: TokenRequest): Promise { + const tokenResponse = this.requestor.xhr({ + url: configuration.tokenEndpoint, + method: 'POST', + dataType: 'json', // adding implicit dataType + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + data: this.utils.stringify(request.toStringMap()), + }); + + return tokenResponse.then((response) => { + if (this.isTokenResponse(response)) { + return new TokenResponse(response); + } else { + return Promise.reject(new AppAuthError(response.error, new TokenError(response))); + } + }); + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/token_response.ts b/src/Umbraco.Web.UI.Client/src/external/openid/token_response.ts new file mode 100644 index 0000000000..3afbf101d7 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/token_response.ts @@ -0,0 +1,137 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Represents the access token types. + * For more information see: + * https://tools.ietf.org/html/rfc6749#section-7.1 + */ +export type TokenType = 'bearer' | 'mac'; + +/** + * Represents the TokenResponse as a JSON Object. + */ +export interface TokenResponseJson { + access_token: string; + token_type?: TokenType /* treating token type as optional, as its going to be inferred. */; + expires_in?: string /* lifetime in seconds. */; + refresh_token?: string; + scope?: string; + id_token?: string /* https://openid.net/specs/openid-connect-core-1_0.html#TokenResponse */; + issued_at?: number /* when was it issued ? */; +} + +/** + * Represents the possible error codes from the token endpoint. + * For more information look at: + * https://tools.ietf.org/html/rfc6749#section-5.2 + */ +export type ErrorType = + | 'invalid_request' + | 'invalid_client' + | 'invalid_grant' + | 'unauthorized_client' + | 'unsupported_grant_type' + | 'invalid_scope'; + +/** + * Represents the TokenError as a JSON Object. + */ +export interface TokenErrorJson { + error: ErrorType; + error_description?: string; + error_uri?: string; +} + +// constants +const AUTH_EXPIRY_BUFFER = 10 * 60 * -1; // 10 mins in seconds + +/** + * Returns the instant of time in seconds. + */ +export const nowInSeconds = () => Math.round(new Date().getTime() / 1000); + +/** + * Represents the Token Response type. + * For more information look at: + * https://tools.ietf.org/html/rfc6749#section-5.1 + */ +export class TokenResponse { + accessToken: string; + tokenType: TokenType; + expiresIn: number | undefined; + refreshToken: string | undefined; + scope: string | undefined; + idToken: string | undefined; + issuedAt: number; + + constructor(response: TokenResponseJson) { + this.accessToken = response.access_token; + this.tokenType = response.token_type || 'bearer'; + if (response.expires_in) { + this.expiresIn = parseInt(response.expires_in, 10); + } + this.refreshToken = response.refresh_token; + this.scope = response.scope; + this.idToken = response.id_token; + this.issuedAt = response.issued_at || nowInSeconds(); + } + + toJson(): TokenResponseJson { + return { + access_token: this.accessToken, + id_token: this.idToken, + refresh_token: this.refreshToken, + scope: this.scope, + token_type: this.tokenType, + issued_at: this.issuedAt, + expires_in: this.expiresIn?.toString(), + }; + } + + isValid(buffer: number = AUTH_EXPIRY_BUFFER): boolean { + if (this.expiresIn) { + const now = nowInSeconds(); + return now < this.issuedAt + this.expiresIn + buffer; + } else { + return true; + } + } +} + +/** + * Represents the Token Error type. + * For more information look at: + * https://tools.ietf.org/html/rfc6749#section-5.2 + */ +export class TokenError { + error: ErrorType; + errorDescription: string | undefined; + errorUri: string | undefined; + + constructor(tokenError: TokenErrorJson) { + this.error = tokenError.error; + this.errorDescription = tokenError.error_description; + this.errorUri = tokenError.error_uri; + } + + toJson(): TokenErrorJson { + return { + error: this.error, + error_description: this.errorDescription, + error_uri: this.errorUri, + }; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/types.ts b/src/Umbraco.Web.UI.Client/src/external/openid/types.ts new file mode 100644 index 0000000000..3af235a085 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/types.ts @@ -0,0 +1,32 @@ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface StringMap { + [key: string]: string; +} + +/** + * Represents a window.location like object. + */ +export interface LocationLike { + hash: string; + host: string; + origin: string; + hostname: string; + pathname: string; + port: string; + protocol: string; + search: string; + assign(url: string): void; +} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts b/src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts new file mode 100644 index 0000000000..96bd2c82c8 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts @@ -0,0 +1,115 @@ +/* eslint-disable local-rules/umb-class-prefix */ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AppAuthError } from './errors.js'; + +/** + * An class that abstracts away the ability to make an XMLHttpRequest. + */ +export abstract class Requestor { + abstract xhr(settings: JQueryAjaxSettings): Promise; +} + +/** + * Uses $.ajax to makes the Ajax requests. + */ +export class JQueryRequestor extends Requestor { + xhr(settings: JQueryAjaxSettings): Promise { + // NOTE: using jquery to make XHR's as whatwg-fetch requires + // that I target ES6. + const xhr = $.ajax(settings); + return new Promise((resolve, reject) => { + xhr.then( + (data, textStatus, jqXhr) => { + resolve(data as T); + }, + (jqXhr, textStatus, error) => { + reject(new AppAuthError(error)); + }, + ); + }); + } +} + +/** + * Uses fetch API to make Ajax requests + */ +export class FetchRequestor extends Requestor { + xhr(settings: JQueryAjaxSettings): Promise { + if (!settings.url) { + return Promise.reject(new AppAuthError('A URL must be provided.')); + } + const url: URL = new URL(settings.url); + const requestInit: RequestInit = {}; + requestInit.method = settings.method; + requestInit.mode = 'cors'; + + if (settings.data) { + if (settings.method && settings.method.toUpperCase() === 'POST') { + requestInit.body = settings.data; + } else { + const searchParams = new URLSearchParams(settings.data); + searchParams.forEach((value, key) => { + url.searchParams.append(key, value); + }); + } + } + + // Set the request headers + requestInit.headers = {}; + if (settings.headers) { + for (const i in settings.headers) { + if (Object.prototype.hasOwnProperty.call(settings.headers, i)) { + requestInit.headers[i] = settings.headers[i]; + } + } + } + + const isJsonDataType = settings.dataType && settings.dataType.toLowerCase() === 'json'; + + // Set 'Accept' header value for json requests (Taken from + // https://github.com/jquery/jquery/blob/e0d941156900a6bff7c098c8ea7290528e468cf8/src/ajax.js#L644 + // ) + if (isJsonDataType) { + requestInit.headers['Accept'] = 'application/json, text/javascript, */*; q=0.01'; + } + + return fetch(url.toString(), requestInit).then((response) => { + if (response.status >= 200 && response.status < 300) { + const contentType = response.headers.get('content-type'); + if (isJsonDataType || (contentType && contentType.indexOf('application/json') !== -1)) { + return response.json(); + } else { + return response.text(); + } + } else { + return Promise.reject(new AppAuthError(response.status.toString(), response.statusText)); + } + }); + } +} + +/** + * Should be used only in the context of testing. Just uses the underlying + * Promise to mock the behavior of the Requestor. + */ +export class TestRequestor extends Requestor { + constructor(public promise: Promise) { + super(); + } + xhr(settings: JQueryAjaxSettings): Promise { + return this.promise; // unsafe cast + } +} diff --git a/src/Umbraco.Web.UI.Client/tsconfig.json b/src/Umbraco.Web.UI.Client/tsconfig.json index 33bf53145e..a3a4e7e517 100644 --- a/src/Umbraco.Web.UI.Client/tsconfig.json +++ b/src/Umbraco.Web.UI.Client/tsconfig.json @@ -106,6 +106,7 @@ "@umbraco-cms/backoffice/webhook": ["./src/packages/webhook/index.ts"], "@umbraco-cms/backoffice/workspace": ["./src/packages/core/workspace/index.ts"], "@umbraco-cms/backoffice/external/backend-api": ["./src/external/backend-api/index.ts"], + "@umbraco-cms/backoffice/external/base64-js": ["./src/external/base64-js/index.ts"], "@umbraco-cms/backoffice/external/dompurify": ["./src/external/dompurify/index.ts"], "@umbraco-cms/backoffice/external/lit": ["./src/external/lit/index.ts"], "@umbraco-cms/backoffice/external/marked": ["./src/external/marked/index.ts"], From 052632c4648f10680fb683c544b59db3c967536e Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:16:52 +0200 Subject: [PATCH 175/177] revamp web/test-runner config so that commonjs() is being run before esbuild but only on the modules that are actually only exported as CJS --- src/Umbraco.Web.UI.Client/web-test-runner.config.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs index 832c831714..23006d64e2 100644 --- a/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs +++ b/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs @@ -22,7 +22,6 @@ export default { reporters: ['lcovonly', 'text-summary'], }, plugins: [ - esbuildPlugin({ ts: true, tsconfig: './tsconfig.json', target: 'auto', json: true }), importMapsPlugin({ inject: { importMap: createImportMap({ @@ -35,8 +34,9 @@ export default { }, }), commonjs({ - include: [/node_modules/], + include: ['node_modules/base64-js/**/*', 'node_modules/tinymce/**/*'] }), + esbuildPlugin({ ts: true, tsconfig: './tsconfig.json', target: 'auto', json: true }), ], testRunnerHtml: (testFramework, devMode) => ` From fd81faee01b46ca85fa66027c31b2a10f8f4e9e5 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:25:47 +0200 Subject: [PATCH 176/177] correct eslint errors --- .../external/openid/redirect_based_handler.ts | 229 +++++++++--------- .../src/external/openid/token_request.ts | 5 +- 2 files changed, 118 insertions(+), 116 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts b/src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts index 7a5f7eafc9..8344c28cf2 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/redirect_based_handler.ts @@ -1,3 +1,4 @@ +/* eslint-disable local-rules/umb-class-prefix */ /* * Copyright 2017 Google Inc. * @@ -12,28 +13,28 @@ * limitations under the License. */ -import {AuthorizationRequest} from './authorization_request'; -import {AuthorizationRequestHandler, AuthorizationRequestResponse} from './authorization_request_handler'; -import {AuthorizationError, AuthorizationResponse} from './authorization_response' -import {AuthorizationServiceConfiguration} from './authorization_service_configuration'; -import {Crypto, DefaultCrypto} from './crypto_utils'; -import {log} from './logger'; -import {BasicQueryStringUtils} from './query_string_utils'; -import {LocalStorageBackend, StorageBackend} from './storage'; -import {LocationLike} from './types'; - +import { AuthorizationRequest } from './authorization_request.js'; +import type { AuthorizationRequestResponse } from './authorization_request_handler.js'; +import { AuthorizationRequestHandler } from './authorization_request_handler.js'; +import { AuthorizationError, AuthorizationResponse } from './authorization_response.js'; +import type { AuthorizationServiceConfiguration } from './authorization_service_configuration.js'; +import type { Crypto } from './crypto_utils.js'; +import { DefaultCrypto } from './crypto_utils.js'; +import { log } from './logger.js'; +import { BasicQueryStringUtils } from './query_string_utils.js'; +import type { StorageBackend } from './storage.js'; +import { LocalStorageBackend } from './storage.js'; +import type { LocationLike } from './types.js'; /** key for authorization request. */ -const authorizationRequestKey = - (handle: string) => { - return `${handle}_appauth_authorization_request`; - } +const authorizationRequestKey = (handle: string) => { + return `${handle}_appauth_authorization_request`; +}; /** key for authorization service configuration */ -const authorizationServiceConfigurationKey = - (handle: string) => { - return `${handle}_appauth_authorization_service_configuration`; - } +const authorizationServiceConfigurationKey = (handle: string) => { + return `${handle}_appauth_authorization_service_configuration`; +}; /** key in local storage which represents the current authorization request. */ const AUTHORIZATION_REQUEST_HANDLE_KEY = 'appauth_current_authorization_request'; @@ -43,105 +44,103 @@ const AUTHORIZATION_REQUEST_HANDLE_KEY = 'appauth_current_authorization_request' * redirect based code flow. */ export class RedirectRequestHandler extends AuthorizationRequestHandler { - constructor( - // use the provided storage backend - // or initialize local storage with the default storage backend which - // uses window.localStorage - public storageBackend: StorageBackend = new LocalStorageBackend(), - utils = new BasicQueryStringUtils(), - public locationLike: LocationLike = window.location, - crypto: Crypto = new DefaultCrypto()) { - super(utils, crypto); - } + constructor( + // use the provided storage backend + // or initialize local storage with the default storage backend which + // uses window.localStorage + public storageBackend: StorageBackend = new LocalStorageBackend(), + utils = new BasicQueryStringUtils(), + public locationLike: LocationLike = window.location, + crypto: Crypto = new DefaultCrypto(), + ) { + super(utils, crypto); + } - performAuthorizationRequest( - configuration: AuthorizationServiceConfiguration, - request: AuthorizationRequest) { - const handle = this.crypto.generateRandom(10); + performAuthorizationRequest(configuration: AuthorizationServiceConfiguration, request: AuthorizationRequest) { + const handle = this.crypto.generateRandom(10); - // before you make request, persist all request related data in local storage. - const persisted = Promise.all([ - this.storageBackend.setItem(AUTHORIZATION_REQUEST_HANDLE_KEY, handle), - // Calling toJson() adds in the code & challenge when possible - request.toJson().then( - result => - this.storageBackend.setItem(authorizationRequestKey(handle), JSON.stringify(result))), - this.storageBackend.setItem( - authorizationServiceConfigurationKey(handle), JSON.stringify(configuration.toJson())), - ]); + // before you make request, persist all request related data in local storage. + const persisted = Promise.all([ + this.storageBackend.setItem(AUTHORIZATION_REQUEST_HANDLE_KEY, handle), + // Calling toJson() adds in the code & challenge when possible + request + .toJson() + .then((result) => this.storageBackend.setItem(authorizationRequestKey(handle), JSON.stringify(result))), + this.storageBackend.setItem(authorizationServiceConfigurationKey(handle), JSON.stringify(configuration.toJson())), + ]); - persisted.then(() => { - // make the redirect request - let url = this.buildRequestUrl(configuration, request); - log('Making a request to ', request, url); - this.locationLike.assign(url); - }); - } + persisted.then(() => { + // make the redirect request + const url = this.buildRequestUrl(configuration, request); + log('Making a request to ', request, url); + this.locationLike.assign(url); + }); + } - /** - * Attempts to introspect the contents of storage backend and completes the - * request. - */ - protected completeAuthorizationRequest(): Promise { - // TODO(rahulrav@): handle authorization errors. - return this.storageBackend.getItem(AUTHORIZATION_REQUEST_HANDLE_KEY).then(handle => { - if (handle) { - // we have a pending request. - // fetch authorization request, and check state - return this.storageBackend - .getItem(authorizationRequestKey(handle)) - // requires a corresponding instance of result - // TODO(rahulrav@): check for inconsitent state here - .then(result => JSON.parse(result!)) - .then(json => new AuthorizationRequest(json)) - .then(request => { - // check redirect_uri and state - let currentUri = `${this.locationLike.origin}${this.locationLike.pathname}`; - let queryParams = this.utils.parse(this.locationLike, true /* use hash */); - let state: string|undefined = queryParams['state']; - let code: string|undefined = queryParams['code']; - let error: string|undefined = queryParams['error']; - log('Potential authorization request ', currentUri, queryParams, state, code, error); - let shouldNotify = state === request.state; - let authorizationResponse: AuthorizationResponse|null = null; - let authorizationError: AuthorizationError|null = null; - if (shouldNotify) { - if (error) { - // get additional optional info. - let errorUri = queryParams['error_uri']; - let errorDescription = queryParams['error_description']; - authorizationError = new AuthorizationError({ - error: error, - error_description: errorDescription, - error_uri: errorUri, - state: state - }); - } else { - authorizationResponse = new AuthorizationResponse({code: code, state: state}); - } - // cleanup state - return Promise - .all([ - this.storageBackend.removeItem(AUTHORIZATION_REQUEST_HANDLE_KEY), - this.storageBackend.removeItem(authorizationRequestKey(handle)), - this.storageBackend.removeItem(authorizationServiceConfigurationKey(handle)) - ]) - .then(() => { - log('Delivering authorization response'); - return { - request: request, - response: authorizationResponse, - error: authorizationError - } as AuthorizationRequestResponse; - }); - } else { - log('Mismatched request (state and request_uri) dont match.'); - return Promise.resolve(null); - } - }); - } else { - return null; - } - }); - } + /** + * Attempts to introspect the contents of storage backend and completes the + * request. + */ + protected completeAuthorizationRequest(): Promise { + // TODO(rahulrav@): handle authorization errors. + return this.storageBackend.getItem(AUTHORIZATION_REQUEST_HANDLE_KEY).then((handle) => { + if (handle) { + // we have a pending request. + // fetch authorization request, and check state + return ( + this.storageBackend + .getItem(authorizationRequestKey(handle)) + // requires a corresponding instance of result + // TODO(rahulrav@): check for inconsitent state here + .then((result) => JSON.parse(result!)) + .then((json) => new AuthorizationRequest(json)) + .then((request) => { + // check redirect_uri and state + const currentUri = `${this.locationLike.origin}${this.locationLike.pathname}`; + const queryParams = this.utils.parse(this.locationLike, true /* use hash */); + const state: string | undefined = queryParams['state']; + const code: string | undefined = queryParams['code']; + const error: string | undefined = queryParams['error']; + log('Potential authorization request ', currentUri, queryParams, state, code, error); + const shouldNotify = state === request.state; + let authorizationResponse: AuthorizationResponse | null = null; + let authorizationError: AuthorizationError | null = null; + if (shouldNotify) { + if (error) { + // get additional optional info. + const errorUri = queryParams['error_uri']; + const errorDescription = queryParams['error_description']; + authorizationError = new AuthorizationError({ + error: error, + error_description: errorDescription, + error_uri: errorUri, + state: state, + }); + } else { + authorizationResponse = new AuthorizationResponse({ code: code, state: state }); + } + // cleanup state + return Promise.all([ + this.storageBackend.removeItem(AUTHORIZATION_REQUEST_HANDLE_KEY), + this.storageBackend.removeItem(authorizationRequestKey(handle)), + this.storageBackend.removeItem(authorizationServiceConfigurationKey(handle)), + ]).then(() => { + log('Delivering authorization response'); + return { + request: request, + response: authorizationResponse, + error: authorizationError, + } as AuthorizationRequestResponse; + }); + } else { + log('Mismatched request (state and request_uri) dont match.'); + return Promise.resolve(null); + } + }) + ); + } else { + return null; + } + }); + } } diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts b/src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts index 9ee6a209ce..9cf5978d63 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/token_request.ts @@ -85,7 +85,10 @@ export class TokenRequest { // copy over extras if (this.extras) { for (const extra in this.extras) { - if (Object.prototype.hasOwnProperty.call(this.extras, extra) && !map.hasOwnProperty(extra)) { + if ( + Object.prototype.hasOwnProperty.call(this.extras, extra) && + !Object.prototype.hasOwnProperty.call(map, extra) + ) { // check before inserting to requestMap map[extra] = this.extras[extra]; } From cd3c657f8b839354ad0601702c9b166898153141 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:36:56 +0200 Subject: [PATCH 177/177] fix build errors and remove traces of jquer --- .../authorization_service_configuration.ts | 4 +- .../external/openid/token_request_handler.ts | 5 +- .../src/external/openid/types.ts | 26 ++++++---- .../src/external/openid/xhr.ts | 47 ++----------------- 4 files changed, 25 insertions(+), 57 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts index b532d7f2a4..3fd30c663f 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/authorization_service_configuration.ts @@ -14,7 +14,7 @@ */ import type { Requestor } from './xhr.js'; -import { JQueryRequestor } from './xhr.js'; +import { FetchRequestor } from './xhr.js'; /** * Represents AuthorizationServiceConfiguration as a JSON object. @@ -72,7 +72,7 @@ export class AuthorizationServiceConfiguration { static fetchFromIssuer(openIdIssuerUrl: string, requestor?: Requestor): Promise { const fullUrl = `${openIdIssuerUrl}/${WELL_KNOWN_PATH}/${OPENID_CONFIGURATION}`; - const requestorToUse = requestor || new JQueryRequestor(); + const requestorToUse = requestor || new FetchRequestor(); return requestorToUse .xhr({ url: fullUrl, dataType: 'json', method: 'GET' }) diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts b/src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts index 99ae687a39..b4bc6f12e4 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/token_request_handler.ts @@ -21,8 +21,7 @@ import type { RevokeTokenRequest } from './revoke_token_request.js'; import type { TokenRequest } from './token_request.js'; import { TokenError, TokenResponse } from './token_response.js'; import type { TokenErrorJson, TokenResponseJson } from './token_response.js'; -import { JQueryRequestor } from './xhr.js'; -import type { Requestor } from './xhr.js'; +import { FetchRequestor, type Requestor } from './xhr.js'; /** * Represents an interface which can make a token request. @@ -44,7 +43,7 @@ export interface TokenRequestHandler { */ export class BaseTokenRequestHandler implements TokenRequestHandler { constructor( - public readonly requestor: Requestor = new JQueryRequestor(), + public readonly requestor: Requestor = new FetchRequestor(), public readonly utils: QueryStringUtils = new BasicQueryStringUtils(), ) {} diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/types.ts b/src/Umbraco.Web.UI.Client/src/external/openid/types.ts index 3af235a085..b6fb853dad 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/types.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/types.ts @@ -13,20 +13,26 @@ */ export interface StringMap { - [key: string]: string; + [key: string]: string; } /** * Represents a window.location like object. */ export interface LocationLike { - hash: string; - host: string; - origin: string; - hostname: string; - pathname: string; - port: string; - protocol: string; - search: string; - assign(url: string): void; + hash: string; + host: string; + origin: string; + hostname: string; + pathname: string; + port: string; + protocol: string; + search: string; + assign(url: string): void; +} + +export interface XhrRequestInit extends RequestInit { + url: string; + dataType?: string; + data?: any; } diff --git a/src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts b/src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts index 96bd2c82c8..fc32dbf8cb 100644 --- a/src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts +++ b/src/Umbraco.Web.UI.Client/src/external/openid/xhr.ts @@ -14,40 +14,20 @@ */ import { AppAuthError } from './errors.js'; +import type { XhrRequestInit } from './types.js'; /** * An class that abstracts away the ability to make an XMLHttpRequest. */ export abstract class Requestor { - abstract xhr(settings: JQueryAjaxSettings): Promise; -} - -/** - * Uses $.ajax to makes the Ajax requests. - */ -export class JQueryRequestor extends Requestor { - xhr(settings: JQueryAjaxSettings): Promise { - // NOTE: using jquery to make XHR's as whatwg-fetch requires - // that I target ES6. - const xhr = $.ajax(settings); - return new Promise((resolve, reject) => { - xhr.then( - (data, textStatus, jqXhr) => { - resolve(data as T); - }, - (jqXhr, textStatus, error) => { - reject(new AppAuthError(error)); - }, - ); - }); - } + abstract xhr(settings: unknown): Promise; } /** * Uses fetch API to make Ajax requests */ export class FetchRequestor extends Requestor { - xhr(settings: JQueryAjaxSettings): Promise { + xhr(settings: XhrRequestInit): Promise { if (!settings.url) { return Promise.reject(new AppAuthError('A URL must be provided.')); } @@ -70,11 +50,7 @@ export class FetchRequestor extends Requestor { // Set the request headers requestInit.headers = {}; if (settings.headers) { - for (const i in settings.headers) { - if (Object.prototype.hasOwnProperty.call(settings.headers, i)) { - requestInit.headers[i] = settings.headers[i]; - } - } + requestInit.headers = settings.headers; } const isJsonDataType = settings.dataType && settings.dataType.toLowerCase() === 'json'; @@ -83,7 +59,7 @@ export class FetchRequestor extends Requestor { // https://github.com/jquery/jquery/blob/e0d941156900a6bff7c098c8ea7290528e468cf8/src/ajax.js#L644 // ) if (isJsonDataType) { - requestInit.headers['Accept'] = 'application/json, text/javascript, */*; q=0.01'; + (requestInit.headers as any).Accept = 'application/json, text/javascript, */*; q=0.01'; } return fetch(url.toString(), requestInit).then((response) => { @@ -100,16 +76,3 @@ export class FetchRequestor extends Requestor { }); } } - -/** - * Should be used only in the context of testing. Just uses the underlying - * Promise to mock the behavior of the Requestor. - */ -export class TestRequestor extends Requestor { - constructor(public promise: Promise) { - super(); - } - xhr(settings: JQueryAjaxSettings): Promise { - return this.promise; // unsafe cast - } -}