From 5ceb9ed4e8163d3855445a07d5125fc90f6f502c Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Tue, 10 Sep 2024 23:27:59 +0200
Subject: [PATCH 01/31] document notifications
---
.../documents/entity-actions/manifests.ts | 2 +
.../document-notifications-modal.element.ts | 64 +++++++++++++++++++
.../document-notifications-modal.token.ts | 18 ++++++
.../document-notifications.action.ts | 20 ++++++
.../entity-actions/notifications/index.ts | 2 +
.../entity-actions/notifications/manifests.ts | 27 ++++++++
.../document-notifications.repository.ts | 44 +++++++++++++
.../document-notifications.server.data.ts | 46 +++++++++++++
.../notifications/repository/index.ts | 2 +
.../notifications/repository/manifests.ts | 12 ++++
.../documents/documents/modals/manifests.ts | 1 +
11 files changed, 238 insertions(+)
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.token.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/index.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/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 4800606d69..5b3646bd34 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
@@ -12,6 +12,7 @@ import { manifests as duplicateManifests } from './duplicate/manifests.js';
import { manifests as moveManifests } from './move-to/manifests.js';
import { manifests as publicAccessManifests } from './public-access/manifests.js';
import { manifests as sortChildrenOfManifests } from './sort-children-of/manifests.js';
+import { manifests as notificationManifests } from './notifications/manifests.js';
import type { ManifestEntityAction, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
import {
@@ -143,4 +144,5 @@ export const manifests: Array = [
...publicAccessManifests,
...sortChildrenOfManifests,
...entityActions,
+ ...notificationManifests,
];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts
new file mode 100644
index 0000000000..6c9c6aba57
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts
@@ -0,0 +1,64 @@
+import type {
+ UmbDocumentNotificationsModalData,
+ UmbDocumentNotificationsModalValue,
+} from './document-notifications-modal.token.js';
+import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
+import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit';
+import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
+import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
+
+@customElement('umb-document-notifications-modal')
+export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
+ UmbDocumentNotificationsModalData,
+ UmbDocumentNotificationsModalValue
+> {
+ #unique?: UmbEntityUnique;
+
+ constructor() {
+ super();
+ this.#unique = this.data?.unique;
+ }
+
+ override render() {
+ return html`
+
+
+ ${this.#unique}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ }
+
+ static override styles = [
+ UmbTextStyles,
+ css`
+ uui-toggle {
+ display: block;
+ }
+ `,
+ ];
+}
+
+export default UmbDocumentNotificationsModalElement;
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-document-notifications-modal': UmbDocumentNotificationsModalElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.token.ts
new file mode 100644
index 0000000000..16bf13836e
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.token.ts
@@ -0,0 +1,18 @@
+import { UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS } from './manifests.js';
+import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
+import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
+
+export interface UmbDocumentNotificationsModalData {
+ unique: UmbEntityUnique;
+}
+export interface UmbDocumentNotificationsModalValue {}
+
+export const UMB_DOCUMENT_NOTIFICATIONS_MODAL = new UmbModalToken<
+ UmbDocumentNotificationsModalData,
+ UmbDocumentNotificationsModalValue
+>(UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS, {
+ modal: {
+ type: 'sidebar',
+ size: 'small',
+ },
+});
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts
new file mode 100644
index 0000000000..ba0398e90a
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts
@@ -0,0 +1,20 @@
+import { UMB_DOCUMENT_NOTIFICATIONS_MODAL } from './document-notifications-modal.token.js';
+import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action';
+import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
+import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
+import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
+
+export class UmbDocumentNotificationsEntityAction extends UmbEntityActionBase {
+ constructor(host: UmbControllerHost, args: UmbEntityActionArgs) {
+ super(host, args);
+ }
+
+ override async execute() {
+ const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
+ const modalContext = modalManager.open(this, UMB_DOCUMENT_NOTIFICATIONS_MODAL, {
+ data: { unique: this.args.unique },
+ });
+ await modalContext.onSubmit();
+ }
+}
+export default UmbDocumentNotificationsEntityAction;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts
new file mode 100644
index 0000000000..b1641ba97e
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts
@@ -0,0 +1,2 @@
+export * from './document-notifications-modal.token.js';
+export * from './repository/index.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
new file mode 100644
index 0000000000..854920739b
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
@@ -0,0 +1,27 @@
+import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
+import { manifests as repositoryManifests } from './repository/manifests.js';
+import type { ManifestEntityAction, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
+
+export const UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS = 'Umb.Modal.DocumentNotifications';
+
+const actionManifest: ManifestEntityAction = {
+ type: 'entityAction',
+ kind: 'default',
+ alias: 'Umb.EntityAction.Document.Notifications',
+ name: 'Notifications',
+ api: () => import('./document-notifications.action.js'),
+ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
+ meta: {
+ icon: 'icon-megaphone',
+ label: '#notifications_notifications',
+ },
+};
+
+const modalManifest: ManifestTypes = {
+ type: 'modal',
+ alias: UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS,
+ name: 'Document Notifications Modal',
+ js: () => import('./document-notifications-modal.element.js'),
+};
+
+export const manifests = [actionManifest, modalManifest, ...repositoryManifests];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts
new file mode 100644
index 0000000000..9b79298de1
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts
@@ -0,0 +1,44 @@
+import { UmbDocumentNotificationsServerDataSource } from './document-notifications.server.data.js';
+import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
+import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
+import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
+import type { UmbApi } from '@umbraco-cms/backoffice/extension-api';
+import type { UpdateDocumentNotificationsRequestModel } from '@umbraco-cms/backoffice/external/backend-api';
+
+export class UmbDocumentNotificationsRepository extends UmbControllerBase implements UmbApi {
+ #dataSource = new UmbDocumentNotificationsServerDataSource(this);
+
+ #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE;
+
+ constructor(host: UmbControllerHost) {
+ super(host);
+
+ this.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => {
+ this.#notificationContext = instance;
+ });
+ }
+
+ async readNotifications(unique: string) {
+ if (!unique) throw new Error('Unique is missing');
+
+ const { data, error } = await this.#dataSource.read(unique);
+ if (!error) {
+ return { data };
+ }
+ return { error };
+ }
+
+ async updateNotifications(unique: string, data: UpdateDocumentNotificationsRequestModel) {
+ if (!unique) throw new Error('Unique is missing');
+ if (!data) throw new Error('Data is missing');
+
+ const { error } = await this.#dataSource.update(unique, data);
+ if (!error) {
+ const notification = { data: { message: `Notification settings saved` } };
+ this.#notificationContext?.peek('positive', notification);
+ }
+ return { error };
+ }
+}
+
+export { UmbDocumentNotificationsRepository as api };
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts
new file mode 100644
index 0000000000..7ee5f2bce7
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts
@@ -0,0 +1,46 @@
+import { DocumentService } from '@umbraco-cms/backoffice/external/backend-api';
+import type { UpdateDocumentNotificationsRequestModel } from '@umbraco-cms/backoffice/external/backend-api';
+import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
+import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
+
+/**
+ * A data source for the Document Culture and Hostnames that fetches data from the server
+ * @class UmbDocumentNotificationsServerDataSource
+ * @implements {RepositoryDetailDataSource}
+ */
+export class UmbDocumentNotificationsServerDataSource {
+ #host: UmbControllerHost;
+
+ /**
+ * Creates an instance of UmbDocumentNotificationsServerDataSource.
+ * @param {UmbControllerHost} host - The controller host for this controller to be appended to
+ * @memberof UmbDocumentNotificationsServerDataSource
+ */
+ constructor(host: UmbControllerHost) {
+ this.#host = host;
+ }
+
+ /**
+ * Fetches the Culture and Hostnames for the given Document unique
+ * @param {string} unique
+ * @memberof UmbDocumentNotificationsServerDataSource
+ */
+ async read(unique: string) {
+ if (!unique) throw new Error('Unique is missing');
+ return tryExecuteAndNotify(this.#host, DocumentService.getDocumentByIdNotifications({ id: unique }));
+ }
+
+ /**
+ * Updates Culture and Hostnames for the given Document unique
+ * @param {string} unique
+ * @param {UpdateDocumentNotificationsRequestModel} data
+ * @memberof UmbDocumentNotificationsServerDataSource
+ */
+ async update(unique: string, data: UpdateDocumentNotificationsRequestModel) {
+ if (!unique) throw new Error('Unique is missing');
+ return tryExecuteAndNotify(
+ this.#host,
+ DocumentService.putDocumentByIdNotifications({ id: unique, requestBody: data }),
+ );
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/index.ts
new file mode 100644
index 0000000000..6b1e01d108
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/index.ts
@@ -0,0 +1,2 @@
+export { UmbDocumentNotificationsRepository } from './document-notifications.repository.js';
+export { UMB_DOCUMENT_NOTIFICATIONS_REPOSITORY_ALIAS } from './manifests.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/manifests.ts
new file mode 100644
index 0000000000..2296083714
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/manifests.ts
@@ -0,0 +1,12 @@
+import type { ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
+
+export const UMB_DOCUMENT_NOTIFICATIONS_REPOSITORY_ALIAS = 'Umb.Repository.Document.Notifications';
+
+const repository: ManifestRepository = {
+ type: 'repository',
+ alias: UMB_DOCUMENT_NOTIFICATIONS_REPOSITORY_ALIAS,
+ name: 'Document Notifications Repository',
+ api: () => import('./document-notifications.repository.js'),
+};
+
+export const manifests: Array = [repository];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts
index 520453ed02..ff2a6d087e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts
@@ -6,6 +6,7 @@ export const UMB_DOCUMENT_PUBLISH_MODAL_ALIAS = 'Umb.Modal.DocumentPublish';
export const UMB_DOCUMENT_UNPUBLISH_MODAL_ALIAS = 'Umb.Modal.DocumentUnpublish';
export const UMB_DOCUMENT_SCHEDULE_MODAL_ALIAS = 'Umb.Modal.DocumentSchedule';
export const UMB_DOCUMENT_PUBLISH_WITH_DESCENDANTS_MODAL_ALIAS = 'Umb.Modal.DocumentPublishWithDescendants';
+export const UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS = 'Umb.Modal.DocumentNotifications';
const modals: Array = [
{
From 6dc3be8623589accbfe23170c5418c126cdd6331 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Wed, 11 Sep 2024 10:35:02 +0200
Subject: [PATCH 02/31] move files, setup modal element
---
.../document-notifications-modal.element.ts | 64 ---------
.../document-notifications.action.ts | 4 +-
.../entity-actions/notifications/index.ts | 2 +-
.../entity-actions/notifications/manifests.ts | 38 +++---
.../document-notifications-modal.element.ts | 125 ++++++++++++++++++
.../document-notifications-modal.token.ts | 0
.../notifications/modal/index.ts | 1 +
.../notifications/modal/manifests.ts | 12 ++
8 files changed, 157 insertions(+), 89 deletions(-)
delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
rename src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/{ => modal}/document-notifications-modal.token.ts (100%)
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/index.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/manifests.ts
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts
deleted file mode 100644
index 6c9c6aba57..0000000000
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.element.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import type {
- UmbDocumentNotificationsModalData,
- UmbDocumentNotificationsModalValue,
-} from './document-notifications-modal.token.js';
-import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
-import { css, customElement, html } from '@umbraco-cms/backoffice/external/lit';
-import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
-import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
-
-@customElement('umb-document-notifications-modal')
-export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
- UmbDocumentNotificationsModalData,
- UmbDocumentNotificationsModalValue
-> {
- #unique?: UmbEntityUnique;
-
- constructor() {
- super();
- this.#unique = this.data?.unique;
- }
-
- override render() {
- return html`
-
-
- ${this.#unique}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- `;
- }
-
- static override styles = [
- UmbTextStyles,
- css`
- uui-toggle {
- display: block;
- }
- `,
- ];
-}
-
-export default UmbDocumentNotificationsModalElement;
-
-declare global {
- interface HTMLElementTagNameMap {
- 'umb-document-notifications-modal': UmbDocumentNotificationsModalElement;
- }
-}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts
index ba0398e90a..a4844b73e0 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications.action.ts
@@ -1,4 +1,4 @@
-import { UMB_DOCUMENT_NOTIFICATIONS_MODAL } from './document-notifications-modal.token.js';
+import { UMB_DOCUMENT_NOTIFICATIONS_MODAL } from './modal/document-notifications-modal.token.js';
import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action';
import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
@@ -14,7 +14,7 @@ export class UmbDocumentNotificationsEntityAction extends UmbEntityActionBase undefined);
}
}
export default UmbDocumentNotificationsEntityAction;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts
index b1641ba97e..e130217e61 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/index.ts
@@ -1,2 +1,2 @@
-export * from './document-notifications-modal.token.js';
+export * from './modal/index.js';
export * from './repository/index.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
index 854920739b..d30a0587a8 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
@@ -1,27 +1,21 @@
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
import { manifests as repositoryManifests } from './repository/manifests.js';
-import type { ManifestEntityAction, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
+import { manifests as modalManifests } from './modal/manifests.js';
+import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry';
-export const UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS = 'Umb.Modal.DocumentNotifications';
-
-const actionManifest: ManifestEntityAction = {
- type: 'entityAction',
- kind: 'default',
- alias: 'Umb.EntityAction.Document.Notifications',
- name: 'Notifications',
- api: () => import('./document-notifications.action.js'),
- forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
- meta: {
- icon: 'icon-megaphone',
- label: '#notifications_notifications',
+const actionManifests: Array = [
+ {
+ type: 'entityAction',
+ kind: 'default',
+ alias: 'Umb.EntityAction.Document.Notifications',
+ name: 'Notifications',
+ api: () => import('./document-notifications.action.js'),
+ forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
+ meta: {
+ icon: 'icon-megaphone',
+ label: '#notifications_notifications',
+ },
},
-};
+];
-const modalManifest: ManifestTypes = {
- type: 'modal',
- alias: UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS,
- name: 'Document Notifications Modal',
- js: () => import('./document-notifications-modal.element.js'),
-};
-
-export const manifests = [actionManifest, modalManifest, ...repositoryManifests];
+export const manifests = [...actionManifests, ...modalManifests, ...repositoryManifests];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
new file mode 100644
index 0000000000..a83d7da494
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
@@ -0,0 +1,125 @@
+import { UmbDocumentNotificationsRepository } from '../repository/document-notifications.repository.js';
+import type {
+ UmbDocumentNotificationsModalData,
+ UmbDocumentNotificationsModalValue,
+} from './document-notifications-modal.token.js';
+import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
+import type { GetDocumentByIdNotificationsResponse } from '@umbraco-cms/backoffice/external/backend-api';
+import { css, customElement, html, repeat, state } from '@umbraco-cms/backoffice/external/lit';
+import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
+import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
+
+interface UmbDocumentNotificationSettings extends GetDocumentByIdNotificationsResponse {}
+
+@customElement('umb-document-notifications-modal')
+export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
+ UmbDocumentNotificationsModalData,
+ UmbDocumentNotificationsModalValue
+> {
+ #unique?: UmbEntityUnique;
+ #documentNotificationsRepository = new UmbDocumentNotificationsRepository(this);
+
+ #localizationKeys = [
+ { actionId: 'Umb.Document.Duplicate', key: 'actions_copy' },
+ { actionId: 'Umb.Document.Delete', key: 'actions_delete' },
+ { actionId: 'Umb.Document.Move', key: 'actions_move' },
+ { actionId: 'Umb.Document.Create', key: 'actions_create' },
+ { actionId: 'Umb.Document.PublicAccess', key: 'actions_protect' },
+ { actionId: 'Umb.Document.Publish', key: 'actions_publish' },
+ { actionId: 'Umb.DocumentRecycleBin.Restore', key: 'actions_restore' },
+ { actionId: 'Umb.Document.Permissions', key: 'actions_rights' },
+ { actionId: 'Umb.Document.Rollback', key: 'actions_rollback' },
+ { actionId: 'Umb.Document.Sort', key: 'actions_sort' },
+ { actionId: 'Umb.Document.SendForApproval', key: 'actions_sendtopublish' },
+ { actionId: 'Umb.Document.Update', key: 'actions_update' },
+ ];
+
+ @state()
+ private _settings: UmbDocumentNotificationSettings = [];
+
+ override firstUpdated() {
+ this.#unique = this.data?.unique;
+ this.#readNotificationSettings();
+ }
+
+ async #readNotificationSettings() {
+ if (!this.#unique) return;
+ const { data } = await this.#documentNotificationsRepository.readNotifications(this.#unique);
+
+ if (!data) return;
+ this._settings = data;
+ }
+
+ async #updateNotificationSettings() {
+ if (!this.#unique) return;
+
+ const subscribedActionIds = this._settings.filter((x) => x.subscribed).map((x) => x.actionId);
+ const { error } = await this.#documentNotificationsRepository.updateNotifications(this.#unique, {
+ subscribedActionIds,
+ });
+
+ if (error) return;
+ this._submitModal();
+ }
+
+ async #updateSubscription(actionId: string) {
+ this._settings = this._settings.map((setting) => {
+ if (setting.actionId === actionId) {
+ const subscribed = !setting.subscribed;
+ return { ...setting, subscribed };
+ }
+ return setting;
+ });
+ }
+
+ override render() {
+ return html`
+
+
+ ${repeat(
+ this._settings,
+ (setting) => setting.actionId,
+ (setting) => {
+ const localization = this.#localizationKeys.find((x) => x.actionId === setting.actionId);
+ return html` this.#updateSubscription(setting.actionId)}
+ .label=${localization ? this.localize.term(localization.key) : setting.actionId}
+ ?checked=${setting.subscribed}> `;
+ },
+ )}
+
+
+
+
+
+
+ `;
+ }
+
+ static override styles = [
+ UmbTextStyles,
+ css`
+ uui-toggle {
+ display: block;
+ }
+ `,
+ ];
+}
+
+export default UmbDocumentNotificationsModalElement;
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-document-notifications-modal': UmbDocumentNotificationsModalElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.token.ts
similarity index 100%
rename from src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/document-notifications-modal.token.ts
rename to src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.token.ts
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/index.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/index.ts
new file mode 100644
index 0000000000..0e93ed32df
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/index.ts
@@ -0,0 +1 @@
+export * from './document-notifications-modal.token.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/manifests.ts
new file mode 100644
index 0000000000..4a12f56a0f
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/manifests.ts
@@ -0,0 +1,12 @@
+import type { ManifestModal } from '@umbraco-cms/backoffice/extension-registry';
+
+export const UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS = 'Umb.Modal.DocumentNotifications';
+
+const modalManifest: ManifestModal = {
+ type: 'modal',
+ alias: UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS,
+ name: 'Document Notifications Modal',
+ js: () => import('./document-notifications-modal.element.js'),
+};
+
+export const manifests = [modalManifest];
From 9dac62d8074318769a7f6e431e3d999256175e23 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Thu, 12 Sep 2024 09:23:09 +0200
Subject: [PATCH 03/31] weight
---
.../documents/entity-actions/notifications/manifests.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
index d30a0587a8..2e4b014dc1 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
@@ -9,6 +9,7 @@ const actionManifests: Array = [
kind: 'default',
alias: 'Umb.EntityAction.Document.Notifications',
name: 'Notifications',
+ weight: 100,
api: () => import('./document-notifications.action.js'),
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
meta: {
From 7548bf21065d217f17b58734071b85dd120bd44b Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Thu, 12 Sep 2024 09:27:05 +0200
Subject: [PATCH 04/31] interface to type
---
.../notifications/modal/document-notifications-modal.element.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
index a83d7da494..77ad2fbcb5 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
@@ -9,7 +9,7 @@ import { css, customElement, html, repeat, state } from '@umbraco-cms/backoffice
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
-interface UmbDocumentNotificationSettings extends GetDocumentByIdNotificationsResponse {}
+type UmbDocumentNotificationSettings = GetDocumentByIdNotificationsResponse;
@customElement('umb-document-notifications-modal')
export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
From 91f34962da16b17c964a6c7314ed91e9505ab442 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 10:42:45 +0200
Subject: [PATCH 05/31] chore: fix lint error
---
.../document-notifications-modal.element.ts | 7 ++-----
.../modal/document-notifications-modal.token.ts | 17 ++++++++---------
2 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
index 77ad2fbcb5..6664e2cf22 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
@@ -1,8 +1,5 @@
import { UmbDocumentNotificationsRepository } from '../repository/document-notifications.repository.js';
-import type {
- UmbDocumentNotificationsModalData,
- UmbDocumentNotificationsModalValue,
-} from './document-notifications-modal.token.js';
+import type { UmbDocumentNotificationsModalData } from './document-notifications-modal.token.js';
import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
import type { GetDocumentByIdNotificationsResponse } from '@umbraco-cms/backoffice/external/backend-api';
import { css, customElement, html, repeat, state } from '@umbraco-cms/backoffice/external/lit';
@@ -14,7 +11,7 @@ type UmbDocumentNotificationSettings = GetDocumentByIdNotificationsResponse;
@customElement('umb-document-notifications-modal')
export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
UmbDocumentNotificationsModalData,
- UmbDocumentNotificationsModalValue
+ never
> {
#unique?: UmbEntityUnique;
#documentNotificationsRepository = new UmbDocumentNotificationsRepository(this);
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.token.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.token.ts
index 16bf13836e..0e26531dae 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.token.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.token.ts
@@ -5,14 +5,13 @@ import { UmbModalToken } from '@umbraco-cms/backoffice/modal';
export interface UmbDocumentNotificationsModalData {
unique: UmbEntityUnique;
}
-export interface UmbDocumentNotificationsModalValue {}
-export const UMB_DOCUMENT_NOTIFICATIONS_MODAL = new UmbModalToken<
- UmbDocumentNotificationsModalData,
- UmbDocumentNotificationsModalValue
->(UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS, {
- modal: {
- type: 'sidebar',
- size: 'small',
+export const UMB_DOCUMENT_NOTIFICATIONS_MODAL = new UmbModalToken(
+ UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS,
+ {
+ modal: {
+ type: 'sidebar',
+ size: 'small',
+ },
},
-});
+);
From 3c89eb6f0960f738c756ea7c9a1428fcee337ee9 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 10:43:38 +0200
Subject: [PATCH 06/31] chore: mark property as readonly
---
.../notifications/modal/document-notifications-modal.element.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
index 6664e2cf22..316f9323eb 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
@@ -103,7 +103,7 @@ export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
`;
}
- static override styles = [
+ static override readonly styles = [
UmbTextStyles,
css`
uui-toggle {
From 9d1e59e27116b7443e30bbb9c0ff07bd4b2eb8b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20Lyngs=C3=B8?=
Date: Tue, 17 Sep 2024 10:58:25 +0200
Subject: [PATCH 07/31] update to UUI 1.10.0
---
src/Umbraco.Web.UI.Client/package-lock.json | 952 ++++++++++----------
src/Umbraco.Web.UI.Client/package.json | 4 +-
2 files changed, 478 insertions(+), 478 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json
index 3ecdaf4935..9fa05a12d5 100644
--- a/src/Umbraco.Web.UI.Client/package-lock.json
+++ b/src/Umbraco.Web.UI.Client/package-lock.json
@@ -15,8 +15,8 @@
"@types/diff": "^5.2.1",
"@types/dompurify": "^3.0.5",
"@types/uuid": "^10.0.0",
- "@umbraco-ui/uui": "^v1.10.0-rc.0",
- "@umbraco-ui/uui-css": "^v1.10.0-rc.0",
+ "@umbraco-ui/uui": "^v1.10.0",
+ "@umbraco-ui/uui-css": "^v1.10.0",
"base64-js": "^1.5.1",
"diff": "^5.2.0",
"dompurify": "^3.1.6",
@@ -7904,814 +7904,814 @@
"link": true
},
"node_modules/@umbraco-ui/uui": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.10.0-rc.0.tgz",
- "integrity": "sha512-8vDudDOVsBEBmNEbX5+W7FydeKOGlGqsS9unPAaz0YiHT3F+36UowqYyEnBp9ZWK8GBPWHE0aRkclW1DuVr62w==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.10.0.tgz",
+ "integrity": "sha512-Jkbqcgo78naFjp4/QBfuxqbr7WXFvZHq5RTHNMa7SAzb/EavdWp6mBLL2Txu9259ZASIdnlsuqyrKX6giiY+Kw==",
"dependencies": {
- "@umbraco-ui/uui-action-bar": "1.10.0-rc.0",
- "@umbraco-ui/uui-avatar": "1.10.0-rc.0",
- "@umbraco-ui/uui-avatar-group": "1.10.0-rc.0",
- "@umbraco-ui/uui-badge": "1.10.0-rc.0",
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-boolean-input": "1.10.0-rc.0",
- "@umbraco-ui/uui-box": "1.10.0-rc.0",
- "@umbraco-ui/uui-breadcrumbs": "1.10.0-rc.0",
- "@umbraco-ui/uui-button": "1.10.0-rc.0",
- "@umbraco-ui/uui-button-group": "1.10.0-rc.0",
- "@umbraco-ui/uui-button-inline-create": "1.10.0-rc.0",
- "@umbraco-ui/uui-card": "1.10.0-rc.0",
- "@umbraco-ui/uui-card-block-type": "1.10.0-rc.0",
- "@umbraco-ui/uui-card-content-node": "1.10.0-rc.0",
- "@umbraco-ui/uui-card-media": "1.10.0-rc.0",
- "@umbraco-ui/uui-card-user": "1.10.0-rc.0",
- "@umbraco-ui/uui-caret": "1.10.0-rc.0",
- "@umbraco-ui/uui-checkbox": "1.10.0-rc.0",
- "@umbraco-ui/uui-color-area": "1.10.0-rc.0",
- "@umbraco-ui/uui-color-picker": "1.10.0-rc.0",
- "@umbraco-ui/uui-color-slider": "1.10.0-rc.0",
- "@umbraco-ui/uui-color-swatch": "1.10.0-rc.0",
- "@umbraco-ui/uui-color-swatches": "1.10.0-rc.0",
- "@umbraco-ui/uui-combobox": "1.10.0-rc.0",
- "@umbraco-ui/uui-combobox-list": "1.10.0-rc.0",
- "@umbraco-ui/uui-css": "1.10.0-rc.0",
- "@umbraco-ui/uui-dialog": "1.10.0-rc.0",
- "@umbraco-ui/uui-dialog-layout": "1.10.0-rc.0",
- "@umbraco-ui/uui-file-dropzone": "1.10.0-rc.0",
- "@umbraco-ui/uui-file-preview": "1.10.0-rc.0",
- "@umbraco-ui/uui-form": "1.10.0-rc.0",
- "@umbraco-ui/uui-form-layout-item": "1.10.0-rc.0",
- "@umbraco-ui/uui-form-validation-message": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry-essential": "1.10.0-rc.0",
- "@umbraco-ui/uui-input": "1.10.0-rc.0",
- "@umbraco-ui/uui-input-file": "1.10.0-rc.0",
- "@umbraco-ui/uui-input-lock": "1.10.0-rc.0",
- "@umbraco-ui/uui-input-password": "1.10.0-rc.0",
- "@umbraco-ui/uui-keyboard-shortcut": "1.10.0-rc.0",
- "@umbraco-ui/uui-label": "1.10.0-rc.0",
- "@umbraco-ui/uui-loader": "1.10.0-rc.0",
- "@umbraco-ui/uui-loader-bar": "1.10.0-rc.0",
- "@umbraco-ui/uui-loader-circle": "1.10.0-rc.0",
- "@umbraco-ui/uui-menu-item": "1.10.0-rc.0",
- "@umbraco-ui/uui-modal": "1.10.0-rc.0",
- "@umbraco-ui/uui-pagination": "1.10.0-rc.0",
- "@umbraco-ui/uui-popover": "1.10.0-rc.0",
- "@umbraco-ui/uui-popover-container": "1.10.0-rc.0",
- "@umbraco-ui/uui-progress-bar": "1.10.0-rc.0",
- "@umbraco-ui/uui-radio": "1.10.0-rc.0",
- "@umbraco-ui/uui-range-slider": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-list": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node-data-type": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node-document-type": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node-form": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node-member": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node-package": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node-user": "1.10.0-rc.0",
- "@umbraco-ui/uui-scroll-container": "1.10.0-rc.0",
- "@umbraco-ui/uui-select": "1.10.0-rc.0",
- "@umbraco-ui/uui-slider": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-expand": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-file": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-file-dropzone": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-file-thumbnail": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-folder": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-lock": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-more": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-sort": "1.10.0-rc.0",
- "@umbraco-ui/uui-table": "1.10.0-rc.0",
- "@umbraco-ui/uui-tabs": "1.10.0-rc.0",
- "@umbraco-ui/uui-tag": "1.10.0-rc.0",
- "@umbraco-ui/uui-textarea": "1.10.0-rc.0",
- "@umbraco-ui/uui-toast-notification": "1.10.0-rc.0",
- "@umbraco-ui/uui-toast-notification-container": "1.10.0-rc.0",
- "@umbraco-ui/uui-toast-notification-layout": "1.10.0-rc.0",
- "@umbraco-ui/uui-toggle": "1.10.0-rc.0",
- "@umbraco-ui/uui-visually-hidden": "1.10.0-rc.0"
+ "@umbraco-ui/uui-action-bar": "1.10.0",
+ "@umbraco-ui/uui-avatar": "1.10.0",
+ "@umbraco-ui/uui-avatar-group": "1.10.0",
+ "@umbraco-ui/uui-badge": "1.10.0",
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-boolean-input": "1.10.0",
+ "@umbraco-ui/uui-box": "1.10.0",
+ "@umbraco-ui/uui-breadcrumbs": "1.10.0",
+ "@umbraco-ui/uui-button": "1.10.0",
+ "@umbraco-ui/uui-button-group": "1.10.0",
+ "@umbraco-ui/uui-button-inline-create": "1.10.0",
+ "@umbraco-ui/uui-card": "1.10.0",
+ "@umbraco-ui/uui-card-block-type": "1.10.0",
+ "@umbraco-ui/uui-card-content-node": "1.10.0",
+ "@umbraco-ui/uui-card-media": "1.10.0",
+ "@umbraco-ui/uui-card-user": "1.10.0",
+ "@umbraco-ui/uui-caret": "1.10.0",
+ "@umbraco-ui/uui-checkbox": "1.10.0",
+ "@umbraco-ui/uui-color-area": "1.10.0",
+ "@umbraco-ui/uui-color-picker": "1.10.0",
+ "@umbraco-ui/uui-color-slider": "1.10.0",
+ "@umbraco-ui/uui-color-swatch": "1.10.0",
+ "@umbraco-ui/uui-color-swatches": "1.10.0",
+ "@umbraco-ui/uui-combobox": "1.10.0",
+ "@umbraco-ui/uui-combobox-list": "1.10.0",
+ "@umbraco-ui/uui-css": "1.10.0",
+ "@umbraco-ui/uui-dialog": "1.10.0",
+ "@umbraco-ui/uui-dialog-layout": "1.10.0",
+ "@umbraco-ui/uui-file-dropzone": "1.10.0",
+ "@umbraco-ui/uui-file-preview": "1.10.0",
+ "@umbraco-ui/uui-form": "1.10.0",
+ "@umbraco-ui/uui-form-layout-item": "1.10.0",
+ "@umbraco-ui/uui-form-validation-message": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0",
+ "@umbraco-ui/uui-icon-registry": "1.10.0",
+ "@umbraco-ui/uui-icon-registry-essential": "1.10.0",
+ "@umbraco-ui/uui-input": "1.10.0",
+ "@umbraco-ui/uui-input-file": "1.10.0",
+ "@umbraco-ui/uui-input-lock": "1.10.0",
+ "@umbraco-ui/uui-input-password": "1.10.0",
+ "@umbraco-ui/uui-keyboard-shortcut": "1.10.0",
+ "@umbraco-ui/uui-label": "1.10.0",
+ "@umbraco-ui/uui-loader": "1.10.0",
+ "@umbraco-ui/uui-loader-bar": "1.10.0",
+ "@umbraco-ui/uui-loader-circle": "1.10.0",
+ "@umbraco-ui/uui-menu-item": "1.10.0",
+ "@umbraco-ui/uui-modal": "1.10.0",
+ "@umbraco-ui/uui-pagination": "1.10.0",
+ "@umbraco-ui/uui-popover": "1.10.0",
+ "@umbraco-ui/uui-popover-container": "1.10.0",
+ "@umbraco-ui/uui-progress-bar": "1.10.0",
+ "@umbraco-ui/uui-radio": "1.10.0",
+ "@umbraco-ui/uui-range-slider": "1.10.0",
+ "@umbraco-ui/uui-ref": "1.10.0",
+ "@umbraco-ui/uui-ref-list": "1.10.0",
+ "@umbraco-ui/uui-ref-node": "1.10.0",
+ "@umbraco-ui/uui-ref-node-data-type": "1.10.0",
+ "@umbraco-ui/uui-ref-node-document-type": "1.10.0",
+ "@umbraco-ui/uui-ref-node-form": "1.10.0",
+ "@umbraco-ui/uui-ref-node-member": "1.10.0",
+ "@umbraco-ui/uui-ref-node-package": "1.10.0",
+ "@umbraco-ui/uui-ref-node-user": "1.10.0",
+ "@umbraco-ui/uui-scroll-container": "1.10.0",
+ "@umbraco-ui/uui-select": "1.10.0",
+ "@umbraco-ui/uui-slider": "1.10.0",
+ "@umbraco-ui/uui-symbol-expand": "1.10.0",
+ "@umbraco-ui/uui-symbol-file": "1.10.0",
+ "@umbraco-ui/uui-symbol-file-dropzone": "1.10.0",
+ "@umbraco-ui/uui-symbol-file-thumbnail": "1.10.0",
+ "@umbraco-ui/uui-symbol-folder": "1.10.0",
+ "@umbraco-ui/uui-symbol-lock": "1.10.0",
+ "@umbraco-ui/uui-symbol-more": "1.10.0",
+ "@umbraco-ui/uui-symbol-sort": "1.10.0",
+ "@umbraco-ui/uui-table": "1.10.0",
+ "@umbraco-ui/uui-tabs": "1.10.0",
+ "@umbraco-ui/uui-tag": "1.10.0",
+ "@umbraco-ui/uui-textarea": "1.10.0",
+ "@umbraco-ui/uui-toast-notification": "1.10.0",
+ "@umbraco-ui/uui-toast-notification-container": "1.10.0",
+ "@umbraco-ui/uui-toast-notification-layout": "1.10.0",
+ "@umbraco-ui/uui-toggle": "1.10.0",
+ "@umbraco-ui/uui-visually-hidden": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-action-bar": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.10.0-rc.0.tgz",
- "integrity": "sha512-yzWfSI+Q4XBIwvLslcYMtjmJnztkywUsaEI13B//Zh3qf/wREMritPTc3gsQ8VQ55iFVTrwQs8HmcJ7ABN1/Yw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.10.0.tgz",
+ "integrity": "sha512-f4nQx/s4XRtnQA3p/Q+qOhMi5zdK2ZUz7rh0qAT9Qi+Y24uLwnMabLWlnMRqyDe5z5/DTMoYDKaKhRWTjVFjzw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-button-group": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-button-group": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-avatar": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.10.0-rc.0.tgz",
- "integrity": "sha512-Uy06I5dTFOeh3nKePGAVHHuOIen5YXAuaXeNeVAi8vZB1vKE0syNUqvkAHf/Unk7J/+dtF6sVz1ltgpmz249Ww==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.10.0.tgz",
+ "integrity": "sha512-JwCoFF/lLkLwRWYRYDoi8w7qHp3bFZQvCu9unQ8QQg/XZVULbiDGwZnSJoMPRdNo6fpN/hx8gDszYDn1tMkCaw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-avatar-group": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.10.0-rc.0.tgz",
- "integrity": "sha512-yVOGzZ3xZRqN5BHR1L6dFVLhVFGnFw0UtADm/eM8O+BWFdACOZI/UjOuT0K32N5mO6hNKpjqa7+DBSByu+mdDg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.10.0.tgz",
+ "integrity": "sha512-JMx0cBIsKfhSSf/I0rBNw3jxjKOMw3UJEDL0YTOEBUhtsVIXf7LSQlJ8977vzJuO7a3PjlhWx8F7lhukRzL3aw==",
"dependencies": {
- "@umbraco-ui/uui-avatar": "1.10.0-rc.0",
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-avatar": "1.10.0",
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-badge": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.10.0-rc.0.tgz",
- "integrity": "sha512-72diFwaDHoX4u//e3rCSqFTQ0c4VpF8r3VX2wrKuI4lOeykuHoD5NCWtZRoA6ar4P4YqnoofwuouqxhYNPO0MQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.10.0.tgz",
+ "integrity": "sha512-x+UsAQknE3kT7yxAhzS38ILqvDzKdEmYxlYES4dqR5Cj/Vc4iMZTY4pRd1UJEBsC5G/tLlquDGbXG9IZCgCk/w==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-base": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.10.0-rc.0.tgz",
- "integrity": "sha512-E0+3G3FxWPzaVh3vkArUMKCF/1IsCozGBqeHoAUGz2bkfvcOyZuRTfIhvjOPZcArV3xLiZqcfUDdFcT+4lnsTA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.10.0.tgz",
+ "integrity": "sha512-0t6BpQmXPgSdjDhb3rQEYcJJtkE50w5rZppsOFXyossaBxfijfTK9JRVc95JRzpLn/a5iQyhuxdUx9r85t71HA==",
"peerDependencies": {
"lit": ">=2.8.0"
}
},
"node_modules/@umbraco-ui/uui-boolean-input": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.10.0-rc.0.tgz",
- "integrity": "sha512-XwD+oRwtW7Earnqhi4TauciA8oYHkLDHb3TqwlH9VoCfXw9vexCHOeH2g0hy3d8EtdE8Fo6rJ33wXMsrFNr+jQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.10.0.tgz",
+ "integrity": "sha512-Xe+B1E+RJCHmSK3aE/ZHVjZwJkijNOh4Un+x42oZX2XQqTz57aafBVY5HSrY7/N8n0xvSY1HCc6sG9wJyXXfMQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-box": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.10.0-rc.0.tgz",
- "integrity": "sha512-XTMjYk9HlKmRv4ni7yR4wbgcmrKIZxcioJJJctLNXFP4EHFI5Q3yqXyr5j2jwAQ1LOY5zgao0auFzUtS7n8kLQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.10.0.tgz",
+ "integrity": "sha512-BF/AUdGTjRxf4OqdVapMkKNkRLbnHTvuYMEhXDxhHT19prB8ZQQLzjDiX1WW9+q8owq3LPVMxoRjT/+AATpsEA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-css": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-css": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-breadcrumbs": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.10.0-rc.0.tgz",
- "integrity": "sha512-bTl8//vgCy4aWo941KYUnuJYFzTchXyAouheR/LBZr5b3csgbn26vqhuTgXNxQoypxHepa0skrFbJc8NUvJdkw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.10.0.tgz",
+ "integrity": "sha512-yXzTPi/CTb48QQjgFhFUgO5yM2fe/f7gOiPcXKUelLFbCnWV+HpvO+5QdE9fklJd9rTLb7OuxBVsTU96j90fPA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-button": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.10.0-rc.0.tgz",
- "integrity": "sha512-s5GnQeVgq5tryNOIVWcU1bH9+I+b7jnaMHUfuE7v9p4ubCBImS4ntREJOr3m28p1v5DBN5luwr00Dlko4NtX6w==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.10.0.tgz",
+ "integrity": "sha512-zCTVTPMkBG6zQpSzHALOjSlsQu4e1SZCciZoC2bD6aZ6nQbx1C9z8mgIGsNt8lGQqzU5GnF1nVGwIfFn6MEq7Q==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry-essential": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-icon-registry-essential": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-button-group": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.10.0-rc.0.tgz",
- "integrity": "sha512-KPeLDYDyQWwXh3pOmyoB/UXAgNhENQeP2NsHYVVD5cjz3ppoB1Sg7pgbuDzOZ+9BUcnpDxmAb2NNUV9MZE2M+Q==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.10.0.tgz",
+ "integrity": "sha512-8Fmrs920fExYhvAvm7LtKfwNqwE4bAjqTeNYUoisthbKcme2//po1w4II6RLYGLfq39A6mcEpn9IptjIsPF67g==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-button-inline-create": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.10.0-rc.0.tgz",
- "integrity": "sha512-bqYVEoJumD4n3V2cqtEYM8KQ/PWbBjVwCACGioHtaG52qKjCLM4h2uHUtAoG2AM5ZrKXnw0zbMxdgf6r4awvZA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.10.0.tgz",
+ "integrity": "sha512-MBQLGhBZJzhUxzrFvbAtBZkK5zlZkS1nR1vBTQEqunORjbooo6JEeTBrlPRk7HDPJpWWsqB6uIe0m2UQ8rBAPA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-card": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.10.0-rc.0.tgz",
- "integrity": "sha512-YXQVm93o6MAdy0u6oV5srX35FLbMTtx3UuYI5fw6qhYArZkIMivWIu6V6BRmzEZpFhUzwlxegh+LWFnQEoK2Dw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.10.0.tgz",
+ "integrity": "sha512-ozWuLFJanivYDybnJgvPomPPwhCxPHg2NatpNGxLnDnn0VCJVwQQ4vvejrjdHTGknjITmFaGweZbJG3a4q+G1g==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-card-block-type": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.10.0-rc.0.tgz",
- "integrity": "sha512-/IAvNnKajnaPMbY72QGQOs6MF15tE1+ZJcoDIaJN4huS0mCeLsUIU/irTQVkpcto/qZlzv537OKq9pI5M06SFQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-block-type/-/uui-card-block-type-1.10.0.tgz",
+ "integrity": "sha512-9BMH9Z5jS75++onPuGIODcsHFS+bCuEKjgTOqmCDZfU7BIMLMJH/+OW2Uzwqoh+4If41Yumm2TiOSwxo6KOOdw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-card": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-card": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-card-content-node": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.10.0-rc.0.tgz",
- "integrity": "sha512-VGcwQD65t4kI6ZbkeDA93P/hfF4AlG6qAEXnbconEBHGUxBKSnkHywCHnlYWE9DnVkflTEp2HtLaXQ7kzYk1tA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.10.0.tgz",
+ "integrity": "sha512-iJQucR2IDC6OQFuCsqHjUlt6ze/X6n0ZQm/nDnSZofVTRRFOJb95T0CA6Ytm4Atuz3K0kkLr4AcKsb10/6Zayw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-card": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-card": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-card-media": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.10.0-rc.0.tgz",
- "integrity": "sha512-5A28Fn7yntGccSzUN5x0iF5UcNJUj9kCHzY2W/HIFHzyOb1g9d1j6HEukTdrsItuMdDXHjXmS/n582cGQ87atQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.10.0.tgz",
+ "integrity": "sha512-zWL+/cnQRVFpvWPUOhHjirW9WxBRpC5tFfdE1SunvKBNkKhygGsPTq+b/Te9dI024ZLyaazej57NkpylGeNSOA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-card": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-file": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-folder": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-card": "1.10.0",
+ "@umbraco-ui/uui-symbol-file": "1.10.0",
+ "@umbraco-ui/uui-symbol-folder": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-card-user": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.10.0-rc.0.tgz",
- "integrity": "sha512-nheAqLaUWbp+xZuLWxU1zdwJPRopGIPfvVNsxKxBxzIOP1q6GVv6MCPR58J7Djqp59ijs9Tud6Smt8vFuH8h+w==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.10.0.tgz",
+ "integrity": "sha512-e6LRpSfgKzbKo2pSKL5Ku9jaB5P6lowiV0/0l/uGHkvXfFfuCUVoMPjQncuCcaMcGW7Q2g5lkXNgOOXtiuyw0A==",
"dependencies": {
- "@umbraco-ui/uui-avatar": "1.10.0-rc.0",
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-card": "1.10.0-rc.0"
+ "@umbraco-ui/uui-avatar": "1.10.0",
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-card": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-caret": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.10.0-rc.0.tgz",
- "integrity": "sha512-OhSO5QZdmol+io9pGGebOGu44WjWyusqtpzIhrFFsU/83XdlFrVoODZ4jmZ3eZDBBlztzIaKMZUKsfBwgiy0dw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.10.0.tgz",
+ "integrity": "sha512-XCsvDV5CKZ5wy1zdjEQ849411B/fCkENRmqCiqnHa1+JFAVgbb1AA1+gjb+lz4EWpE1CfiL556mYjt1ZznwFZA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-checkbox": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.10.0-rc.0.tgz",
- "integrity": "sha512-8/urZ6yo/+i0Vs2yIJ0h1DjjHZYHBNHnY49h/mQoqPmEkCWem/gQz4Lc+Z9/COWihz2NQv95K7+QU26t+FJQAA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.10.0.tgz",
+ "integrity": "sha512-1NPLxyGGJcWuU0tXzw/FpQrwjEfBzrO4yTkss+kRbryi9yrxJgxfOsug+JIHSEfiFjQoSDU/mvoirPxa5xhGIg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-boolean-input": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry-essential": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-boolean-input": "1.10.0",
+ "@umbraco-ui/uui-icon-registry-essential": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-color-area": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.10.0-rc.0.tgz",
- "integrity": "sha512-D5McF22Z3O6VmGmQPJmo7NVvtdW1LJMsBFLyRzMcZRwES/tMkCk1MVrQ6cQm36chkuQo6vBIW77QFeuQOuwvFw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.10.0.tgz",
+ "integrity": "sha512-zmJseESe9KmFmJrrI+/l1a2RLOZWuRNp8MTjhuaf7p9HBopOeYyhC4vXgf/6VPa+y5uZyitRM6d/yUQmL7CxsA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
+ "@umbraco-ui/uui-base": "1.10.0",
"colord": "^2.9.3"
}
},
"node_modules/@umbraco-ui/uui-color-picker": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.10.0-rc.0.tgz",
- "integrity": "sha512-UBDZnCDOSz4hn5z/0vGemnHm4fYAgh6dj/3jCSDvC3LOByasbBEPwolqBxxTT62R2z6+0pv9rDphqam26abqEg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.10.0.tgz",
+ "integrity": "sha512-MYDaO+pBUTH7lpdjH5RQivqEc4JqFcpTD0qEqyk7iyU5vHJ7HcYLng5fiNuEhavVGhN6f0Ee10bAq7cWx3ZKyA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-popover-container": "1.10.0-rc.0",
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-popover-container": "1.10.0",
"colord": "^2.9.3"
}
},
"node_modules/@umbraco-ui/uui-color-slider": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.10.0-rc.0.tgz",
- "integrity": "sha512-/SVWPR6JG/ezumom5wf519vRjaI8igqXaFLG6ejb4EhdLKNwHn88P7g7Tg4FNXoAxU0iOkFZ78WjevjtkNd4mg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.10.0.tgz",
+ "integrity": "sha512-Y6u5G7YVHMVC28rmggFYGSdB3A3MO6wZ2GL1YJjzzO8smRRAjtYkOkkbHYSKgn4Mao9K2BHn4DuZVizhWQe8Aw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-color-swatch": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.10.0-rc.0.tgz",
- "integrity": "sha512-3OxzRLxbGtb24Ky8o7C2EjVfiT/gZfDiHvhW7vUZ0uIBCm8AFRHqCejYR9SEtTHP+3KzjiDYQ8ahE5ujUzlOIg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.10.0.tgz",
+ "integrity": "sha512-BazYXqGeScvYsHuOZlnT0Yi8xRH1XfQYaHJEpzvSR4tfdUPqM4fGbLdnFNgDrCPaZziIbkuGltpz/lK/JeN9ew==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry-essential": "1.10.0-rc.0",
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-icon-registry-essential": "1.10.0",
"colord": "^2.9.3"
}
},
"node_modules/@umbraco-ui/uui-color-swatches": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.10.0-rc.0.tgz",
- "integrity": "sha512-XSf96rqVZmMSsq6D9mfzA+h+3oz+3ye32GnXlwYD1Sd38Mm71AtWzA61To90VhZRzmlmT43Q9i7LYKEGMkY8Kg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.10.0.tgz",
+ "integrity": "sha512-q5vcDckApfL730m59ihiAOwvojMg5t/EHAAqzyKrPO2rqUXB1+SYukWAc7pu12V0Yvqvl6in4zqcyNK8uPdT6g==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-color-swatch": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-color-swatch": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-combobox": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.10.0-rc.0.tgz",
- "integrity": "sha512-6l1bLH6HSvLVmUerXyAemVrdCbnn9YkYB4IjQsREZcTtxo9S3e40Q/321uyIOrMZLoEh38eD2CxzJLK/mPq3vQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.10.0.tgz",
+ "integrity": "sha512-Z86/u0PAIUepTL0J7+H1kiJzXFEoHJcaFJQpExFMp6AbCEP11m1Fz17oHipz7uCWQ0DlImrSQcBq+7ed/Y1OLQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-button": "1.10.0-rc.0",
- "@umbraco-ui/uui-combobox-list": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0",
- "@umbraco-ui/uui-popover-container": "1.10.0-rc.0",
- "@umbraco-ui/uui-scroll-container": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-expand": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-button": "1.10.0",
+ "@umbraco-ui/uui-combobox-list": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0",
+ "@umbraco-ui/uui-popover-container": "1.10.0",
+ "@umbraco-ui/uui-scroll-container": "1.10.0",
+ "@umbraco-ui/uui-symbol-expand": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-combobox-list": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.10.0-rc.0.tgz",
- "integrity": "sha512-u0GncF8M/jAbtsRmaBG0oVARfnleh+aIPZTYOEhLKfVKNCcgLu/QP4AwpSDg8wvXqYOrDRipy8GZd2ZjMd11FQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.10.0.tgz",
+ "integrity": "sha512-5TBt/C6eDyd8TDYVS7oXE0hjDvTqbskjMNBsUTzZwWWGr1G8LtRliEVEc48akSrWSFmNf799OPQhNLWQnJ1UEA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-css": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.10.0-rc.0.tgz",
- "integrity": "sha512-R+dZT091X9wnKfF5u3bJ3xq88s9Q+4RkW7WDSTwqw1p0MCf5OpKZGt3LmloDKu3snFAEXNzevZzCulTMnhO9Wg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.10.0.tgz",
+ "integrity": "sha512-bsUBvFGzPzAMegNpznYIzW1CBgxmN2pXfbsgQLpaDJIE8GIW3Y+AW4RNSZV4Tf0uDWIxVlbvI/NruRGLuoCKhA==",
"peerDependencies": {
"lit": ">=2.8.0"
}
},
"node_modules/@umbraco-ui/uui-dialog": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.10.0-rc.0.tgz",
- "integrity": "sha512-7CmAgheSKGbaDqaV6YH5fOd4cMZrOa5AEzlwT2rL2AnkShOpnSVlux3J4NsCQbuVZkCgYRv+Mf5mY+daI8wojw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.10.0.tgz",
+ "integrity": "sha512-Pkm+YShZbZWHtZ7j27uvabTt33MiAeLL8b/HkTppSCbcVqZ0F/TvUxNBVy0N0mlgvU8c0Zei8b4TPSDfeNnxEQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-css": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-css": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-dialog-layout": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.10.0-rc.0.tgz",
- "integrity": "sha512-rDgeYEkoxivTl6MXOOV/aOMH3yrPMyLsrPyxbwB+7coHPJtXjmejs8ON+n2bW8USZNZr3ll3PDwq8X+rdA1b8g==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.10.0.tgz",
+ "integrity": "sha512-Jdk7FFoyhKqwK8n3+T13CuJUsJ0X/gG0e9XKUC9DdcnJsw5WYx4BhyqPyQpw+7uTZ9GMBSMZ4PMzN30KbMNcvg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-file-dropzone": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.10.0-rc.0.tgz",
- "integrity": "sha512-l3RlwpITjMX+4CuBfiDK8fg8igI/V2D6TUxy1UNDojLhAPdEpLfccrKzUfhH+CGBnWCrePhu8jethdCL16pujA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.10.0.tgz",
+ "integrity": "sha512-2LubyWBGElIVbgyJ+dwxZlAVbO6H3RI0geCQkC52j7KJyR/hZ/G4nFoGw4RFUaL7n7wsWHmyTVQsEalgczdCbg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-file-dropzone": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-symbol-file-dropzone": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-file-preview": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.10.0-rc.0.tgz",
- "integrity": "sha512-xNKv6y0/3BoQaFz8WpicdsrbziijabZUp5TJ0p26oSEZaBSSYeIr+XxZrdWbxG/M9iDRRSmrZbsCbKIvXTJ1wA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.10.0.tgz",
+ "integrity": "sha512-1r7BSSF7JHPC3t9YIRCKfchK7jK+43Y9WTHi8lyi2ZpNt3Kju42OQIB9eyFm1+MdJsZi2VkEcBCWTo1wveUasw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-file": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-file-thumbnail": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-folder": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-symbol-file": "1.10.0",
+ "@umbraco-ui/uui-symbol-file-thumbnail": "1.10.0",
+ "@umbraco-ui/uui-symbol-folder": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-form": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.10.0-rc.0.tgz",
- "integrity": "sha512-d2+uW43ojVaHGgLBKNm+/tGYJi36FWTwY++l9fWYmlHLyEM5U0LVpLM+cKRMbyCJB3HoWuZGjBf+pvpuzx+Sxg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.10.0.tgz",
+ "integrity": "sha512-ByJQV+Lr0iNwth4GXxckoeXtnpRQ1Gnqfo2/Bu53EdEpnpfomrzB6su4AIdaswtHPD+RoM6JVGNtlfzPGtcVvQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-form-layout-item": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.10.0-rc.0.tgz",
- "integrity": "sha512-2b5CFy072j66jnV2wgWCUMiegdXIwqihxptcAeK6lr51FzbydOXnmyi8PIjtY59qd0dSF2Gr7ynOzoEt9G96Wg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.10.0.tgz",
+ "integrity": "sha512-VdbEhx84mgrWm8puo6RagY9LsaR+kfGp8yPzuzuFXKvWNtKNucT+OmB8OoU6cWJfNahQ89evYeSicIJKakHivw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-form-validation-message": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-form-validation-message": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-form-validation-message": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.10.0-rc.0.tgz",
- "integrity": "sha512-Fhny5SWNMJb6A6Ojm29X+im20jHzLllhljue2zJ5/lzbhImMsF2cXqHZaziqjr51HnFkbG2CcIXhCNYwjwpCJA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.10.0.tgz",
+ "integrity": "sha512-TlSvmNAxWmkg5ncKyBrTtMSDvUnGCyn1BxvNfaz8pp4KqGu/sd1a0hBp/80dCa025XH7BJ3d87Kyp9UXLRQi0A==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-icon": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.10.0-rc.0.tgz",
- "integrity": "sha512-jy/06iEG6jPglKdDn8pVpDS4anW9Q+8bvSinncI/s7bPkSkFF22v1z0ELRV+gsKoa78z53a2ZsdLMjkJNZ2fwg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.10.0.tgz",
+ "integrity": "sha512-nsZyJfcF9MpRXahZ2DS/kzPfJzY3Xql5I/xjjFaS8JEIkT81HzOy1D9bo8AoDrL7VzyaspCbDgLM6R1yhNhlMg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-icon-registry": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.10.0-rc.0.tgz",
- "integrity": "sha512-6Q17o+F6CadGTkmtVGUAkAoE2HjQqXhG5pRBgH08GUibdhBpaxa5XVIO3imW7yC2NQBLPVxAAM/tATT9DW4TJQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.10.0.tgz",
+ "integrity": "sha512-v/ajwASl4jVSiuGgn4uYetV5NxNghtdZXD7DV0+Lu2u9sV8wIOvk89pWAFsAwDT593/p9/H3p5CoRIzyCmCDIA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-icon-registry-essential": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.10.0-rc.0.tgz",
- "integrity": "sha512-6kPXq6lE+bcUUmOZ5KJ5/TRTsYAet8LAsgbBmsudGSE3RDatDhe7NUhKGhliwNViJsVE9pm3uA3HMmtCHhWrHQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.10.0.tgz",
+ "integrity": "sha512-0MdN0A4Mz8O1bT22JlHPesvbqMVM+RomtcsHh+DhN3l0RxfamlrSZLEWMavRODq/ign0vfhQ0Zo4iS3fjqzaeg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-icon-registry": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-input": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.10.0-rc.0.tgz",
- "integrity": "sha512-QriIbqMcChLKZjUQto+jH5KlKsOnb4rifVpkEY7IGzlCXpGWMF+KfCvcuG2sChCE5jc0XN56d/ou5VeXSa0gbg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.10.0.tgz",
+ "integrity": "sha512-dnK43VZo7RMOquO8Ih+wurqwlHMmGQ0vdYfc8/DIy3RAeT6+G5ZYJyWmZ3u5jJJ7lBauLJfPVOJAH7BdNPIhmA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-input-file": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.10.0-rc.0.tgz",
- "integrity": "sha512-k7APb+NV9kH/p2Ut1Mj/aC+obOh2hnsvFxvCJdyFnCpEEuFF8zH++KCbyRYlTC6lW+Np/gfepBkUtHRZ/rJSaA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.10.0.tgz",
+ "integrity": "sha512-GU6cZDEHU5MUQIsQnLAndg2sZ1B4EPPPqI45V2Ynh9ZQUq5OVI+uEyNleiac8yYCM0+w80FE3asJYYETu5inHg==",
"dependencies": {
- "@umbraco-ui/uui-action-bar": "1.10.0-rc.0",
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-button": "1.10.0-rc.0",
- "@umbraco-ui/uui-file-dropzone": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry-essential": "1.10.0-rc.0"
+ "@umbraco-ui/uui-action-bar": "1.10.0",
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-button": "1.10.0",
+ "@umbraco-ui/uui-file-dropzone": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0",
+ "@umbraco-ui/uui-icon-registry-essential": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-input-lock": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.10.0-rc.0.tgz",
- "integrity": "sha512-/+4i4mB90g6TIQJcPgp9X/TAzsRNcs9FCahFiXNRhRUMvUScTG97xdKCOMLZZMMMtk+VQFa091KaL9Csvpjrcw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.10.0.tgz",
+ "integrity": "sha512-nIY/lT/sN6R0jSTk27h42CqQcFHEI3JZgzlQz9sb0Z8HZ+uybuh5MWLuElWdDh+3V2On+fKKZUuXVcHERsWfww==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-button": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0",
- "@umbraco-ui/uui-input": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-button": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0",
+ "@umbraco-ui/uui-input": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-input-password": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.10.0-rc.0.tgz",
- "integrity": "sha512-K7Dq7cl/W21ezlcI+3rFYvzFIyftp2QxW21taTRVZSuwZijM2BA7AyCzlzTN4EBeRXXoZEWip7CYP43STBaZZg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.10.0.tgz",
+ "integrity": "sha512-uffOb2+O/wTk2RgYZmdFZTJwCwhPm56l9/YGkZ+p9O4QBhTIrwEndfdQjGLCo+qj0/skuG0sMzKyWZTbJTRb+Q==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry-essential": "1.10.0-rc.0",
- "@umbraco-ui/uui-input": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-icon-registry-essential": "1.10.0",
+ "@umbraco-ui/uui-input": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-keyboard-shortcut": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.10.0-rc.0.tgz",
- "integrity": "sha512-A5S6iyVw1TQzyN8jmh4NMwocfpdBnLxYLVPX/S7r1g6KCDUlmXMqxZayO2CpSWotwvOAcTvxQ+ZyE7VXYlWzLw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.10.0.tgz",
+ "integrity": "sha512-hr3puURGR8DgHOAOa9vzXKFx+WAxfBbQtcg+xw4PHgCDEDV9wLbvnqBOVdP5DrIp3atLCHW355i8T/Fv8ffPqA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-label": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.10.0-rc.0.tgz",
- "integrity": "sha512-Kro5SZdJ8PQPAb79GSL/yy/eRyf5jN4R2lpA7RfXgGFQvsew3ef1AEM4N9KgWEyn3n3pJS7DgvDKeAtTnbV0aQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.10.0.tgz",
+ "integrity": "sha512-VD8daFTnNgnTgDG8sFmq6JaMMWLDYsTyR5Jl6twrC09GgD2YOn1lFw7mOYpNpKwJv1i5yngXbaT6QCQ+uU1NFg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-loader": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.10.0-rc.0.tgz",
- "integrity": "sha512-HTb/iP8Qf1gHjmdERi+g5GKu+YL5Nn8TKDj6IAcI6Tjssy1Yg0TSUTkw77adWYLinPmnOYH4pvFEcxRc7mufVQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.10.0.tgz",
+ "integrity": "sha512-VDxYhwkojD52zI2PfFAoPI5m83KeU7AILFqDqjySIr5uqjrHv3DlE6BjbfqQHivIvgRKSNlSukukROJZ+bsPiQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-loader-bar": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.10.0-rc.0.tgz",
- "integrity": "sha512-0BJUSI+AdbIm+l6OHMTbBKSyP3B+2+kK1HIu0px47h+v38lTnQiwgBE4UajqeSBvElIeJh+/ftuqHCsCjN6QqQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.10.0.tgz",
+ "integrity": "sha512-66BVb/Y2mkb7jHMeQhHGuAuxZ54n2IOeGZ8yVYIs44+U8tXb792Mq6Tr1zgEIzvvmWdfajAjnglhR9hfmijdoQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-loader-circle": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.10.0-rc.0.tgz",
- "integrity": "sha512-ViCAnKKXTCJW5oDHK6orYPXc09dPhbGKGScxB35rKZF72blo8/kB9uOnKC7BRIQ8J6gxBQulc0xltn3Mylsn/w==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.10.0.tgz",
+ "integrity": "sha512-Beg5+Kt3QpPnC31gYMHI2IkVlk8+EU7fzyXSBq+PIaRhhWF8WO0pjsnsXrY0SxrBfSO4qqcGPaB7VDjD/Q4u6g==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-menu-item": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.10.0-rc.0.tgz",
- "integrity": "sha512-vqEPuSopZPsZVfHug+rU++KHPmmOb4dvmTxGlZvybZB2ne7uaJUasahNYW8cUza06/68pkZ6A1SVfHrntZaDAg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.10.0.tgz",
+ "integrity": "sha512-DJHBKkp8gWP4x/r0k8NiI8QFQmJscD8iaSKMbRkIBm8cb/Lk7hF/szlo67j1rfoV7iRrGvYhL17p+JaoJ9FyqQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-loader-bar": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-expand": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-loader-bar": "1.10.0",
+ "@umbraco-ui/uui-symbol-expand": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-modal": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.10.0-rc.0.tgz",
- "integrity": "sha512-mAgXfKvPAm283oCJ5B8mYro34yV/bBjg2WXpptcILKUElehbMEo39c7XDfUoUy8RsbgoJ2J8GwVsh0ney4iuAA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.10.0.tgz",
+ "integrity": "sha512-Z13sfDV47aDlr7cpsD3YTFpbr1vhFJ/icpSBTKm6oJs4koiG+ZuiVjt//qLqS3eBL8UXgz6rVL5Q+DcWmJOn3Q==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-pagination": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.10.0-rc.0.tgz",
- "integrity": "sha512-NOzhjXvcdF+iG2dIX2++90EnDsilxh9zKRFXyxW86ADFLW0TKgU7RUp7s+bg3y/WUA9w9sBkMr1CtrB5BzR3Ew==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.10.0.tgz",
+ "integrity": "sha512-PP0Dsa++77fxv7SqZmRRs8EzKNBQCubPV2t6AEN33fGXjYW83STMJN0BLwZ4za46KbInImAorIbkWA3kEetZQQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-button": "1.10.0-rc.0",
- "@umbraco-ui/uui-button-group": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-button": "1.10.0",
+ "@umbraco-ui/uui-button-group": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-popover": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.10.0-rc.0.tgz",
- "integrity": "sha512-DIMsJ31edx3+8ZomQoKakOrjT0hWKgbFkXt0KjwU00FC/cDNJtuL8CUwM7vlcgRy1YzCkbZocQ8M1Pt8rxuUFw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.10.0.tgz",
+ "integrity": "sha512-gPEVFVeFqa76bGwzkxc8Gjt5EbLKd2WgUeFGIBrP8+ZscbDyP/eG6bXjfUSBweXedPFxmlN/Ng3Dtz+KU2QIGQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-popover-container": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.10.0-rc.0.tgz",
- "integrity": "sha512-Bufn+sBYgstGU5PAzbgvwKPtFAsx73aPeFHPJL3JO7aehIk5qaku0WhmAwKxwcgjO31yP/DxH2MJC3a4FbpW7g==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover-container/-/uui-popover-container-1.10.0.tgz",
+ "integrity": "sha512-YguOGWH7XfD7tsopKoh5S6UgymufLna/1xxsBt88/FdF/m1xzHHmrgqWy/GnNycXgGgSulJ3fYe1OG2JhIOHRQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-progress-bar": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.10.0-rc.0.tgz",
- "integrity": "sha512-ilHRDvdTKZDDAVetbpBvMRcmhroqqcBRHafULtIL5BKDX0fCblLnB1XKoowQpPUv6fS2SwFHuogDJcRFmJHrQw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.10.0.tgz",
+ "integrity": "sha512-ymOWS5R8l3xU3NOPCXAb2gsRvHVjgu6zCGyUreDj0Lz1glagkPKM2evttui9ixoVV8CR7SxAj3hK6t+PXp2ubA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-radio": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.10.0-rc.0.tgz",
- "integrity": "sha512-fTm8QV8B/N+jva2otkOMvPf49NwifN/q9FyvR4fcB6ngmDlIWtgrVDePvd4jTsGb9MNmqpchASv1GQxdK1gM+Q==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.10.0.tgz",
+ "integrity": "sha512-ZvC7wgVB4Odn7n8oYsyXOLeIGhx6Ej/Np67Eqg3l+YSxee+SZzBKIHnqSo6BrgaNDSuSS+gWXS8vREGss1UVjg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-range-slider": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.10.0-rc.0.tgz",
- "integrity": "sha512-XPvSZWamsTJVwisIDHudzRjWsI2sz5fv673cinkkPB3nB+s7xlESmNvZuon9mCpzgb9pnzOouy10Xv7bR3GNPQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.10.0.tgz",
+ "integrity": "sha512-suYF7UnErKmWyjnPdua6GwmzUe+FovKMyePKISk17gicoiCfked1ygQi0w7YFPJeo7hScx1MA9sUpvh6TVDrkw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.10.0-rc.0.tgz",
- "integrity": "sha512-k6SwZpmGUd/3A81QG6x5ar1SrRZRgkaALmzOG7vfnefq0DBST0FKNFBFzxZLBIVz6FmWGpZNr65OQdHdhXFjQA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.10.0.tgz",
+ "integrity": "sha512-dDbpHYQeMQGF/3pudcj0B6y3ATN8/IQqF9fWlbz/L4H9oAxmiiFgujwXpzLqLx2j9IQvw+pbOx2fi7rVpKsMfw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-list": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.10.0-rc.0.tgz",
- "integrity": "sha512-PFFAjYkdz07uosSVhJHNGA+nstC6TwAZQb6nULpOPjb1ZNvkO5eSaF6iIrcbcTl0JenK6YmbVoJ5ht+FN/m8Jw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.10.0.tgz",
+ "integrity": "sha512-XvDCMM4WTEADKqV/QIqy9gzFe1M6w6XQjX5dVE64Luc2lEjvzKf+/LKcJaoULJsd72roh31MbXNvCO6AdGTqdA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-node": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.10.0-rc.0.tgz",
- "integrity": "sha512-kVU35pcCmfcE37rRbfxIKkXTP7owH8bm7/fOjOAnbPWa64vCBzSa+INbTmpP2AvGkbXwI1alsaDuK01kKlMKiQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.10.0.tgz",
+ "integrity": "sha512-gRu81TImEcJdJ1PKs7glmFXWwP4NkkuvEg0EDXEZoS1ORK7Ms/rLgjecnjruTU2oqxlEiTeSpy3fvw8Ybc+Wyg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0",
+ "@umbraco-ui/uui-ref": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-node-data-type": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.10.0-rc.0.tgz",
- "integrity": "sha512-JcnQpA7AXYpIpfmUeMxnUpmRYBVpZxIqPJDUkGNh6vWbaxbhdzzTUpvemOG17tpE2A5QvslVK/5IH5EAF7EcCA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.10.0.tgz",
+ "integrity": "sha512-4PxcAdF8wgKfBepHL5xmUKB6i1i5lbHKJUOPmo67N/Vj/xPeBfc899mfv9zFxHV2i5q7FGrxexDEkjtvp2QkYg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-ref-node": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-node-document-type": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.10.0-rc.0.tgz",
- "integrity": "sha512-2CsBeWayG+taUgukHLRm1wYnQ3kSRxBMnSktM3b+T1LwcRt/X2WH6F+GuLrggkOnC4a8fYczcCnpzHrEcM+emA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.10.0.tgz",
+ "integrity": "sha512-sKqOGeqbLoJfOrstQebwNv/Mu+Zn5MJOUEyhKgYU04Xh5alpQuEm8G1fmrWYlR3RVeN0APGhl8zC0GJToThw4g==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-ref-node": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-node-form": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.10.0-rc.0.tgz",
- "integrity": "sha512-kuwm0/dDoCe0exGqRHgvxy042XCu1T+Q1fWw8PrFHqZOnRm/9vr36+sAT/0OifsJuVom4PTf4gjvh4kn+2NpFw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.10.0.tgz",
+ "integrity": "sha512-c7fJdsNswUnbCl92zWSU6cxKoimPKqNstoHGcDXfy0GTW0pPQqdL/Ux2ymuY84U1HfJxMsc+hC21KVmG/N0oxw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-ref-node": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-node-member": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.10.0-rc.0.tgz",
- "integrity": "sha512-F/zswnmdlHKBA4g6SWHiX60FwYFZ1dta7TqmbWPgm/xuTRAyL6tFXvThXVUteBPXoizYlCVI2vzq6slVgxDsTw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.10.0.tgz",
+ "integrity": "sha512-ZrSb8b6/hizqqlKtcaCxg0A/L8hBblxiXpMuxx+vD0ihYLJt6fYBFo6NI2KGqAztTd/5/Bih+7Ayy33gh7+0Eg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-ref-node": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-node-package": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.10.0-rc.0.tgz",
- "integrity": "sha512-rjhoXKp7gS7t3gT0qgfBdfRthy7v9jkr2uPHNtZOjqO94FUBewUho74VAOoXLMI0yctzVFL0RFoBdGiUGZFMVg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.10.0.tgz",
+ "integrity": "sha512-yaHAx0NOWIBDs+eHqvKMIgqHvTIRvPEj0O9c8smTDPaXNiIpTdzikRoqbFfp9QoPipK2Yzgtdzx6FxwnkOldJw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-ref-node": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-ref-node-user": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.10.0-rc.0.tgz",
- "integrity": "sha512-ko8SQ9hjCi0lamiqdyh3U+pfxiuJQK29wFgb685++nJRSbEWdAiNE1V6fpOziW5bRK/IY3FZ4YlY3I2iP2XHFQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.10.0.tgz",
+ "integrity": "sha512-+gFVF/gY3VU6NqwI1Ns54Ly7LNEIlTh891MTLxum/3WidyhCQfHEjlFpjEtyBYafWY2/dS54/9ST7wg8+wLFlQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-ref-node": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-ref-node": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-scroll-container": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.10.0-rc.0.tgz",
- "integrity": "sha512-KCfLvYzYXeOIZpnuE8LTyX7iUSCSQ+5SCUYwxLHcpYXUY89jCQyboV+oilKgf9QjsYdjDP5E9Wv7ALD5K+mNgg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.10.0.tgz",
+ "integrity": "sha512-BX/ECh7lsJPbNzQD6N43bMyNTk4EROG6L9LbQja/YUYB6/9CH/uaOpve31vFyykjQTi84QFf/C4zWcuLAfQHPg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-select": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.10.0-rc.0.tgz",
- "integrity": "sha512-NsJP4crr71ZH6dAFXvBFzmjsjr4V2ANvXVTbZDczr6mXwx8mzXqrzQbk7FzRzChAYQTm+SVbBkg6IkU8NpTipg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.10.0.tgz",
+ "integrity": "sha512-J2Oif7zwWaGvmV+04B6oAi37+AWsId9sfBy9LHswuovoe4wOf2mwIiSXRfJZ7hODfoS9g8y9Y/usX09CZhPZVA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-slider": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.10.0-rc.0.tgz",
- "integrity": "sha512-SPQItCmki/lfcUksK6dMgwUm6bH958QspRv2b5mZhyM69E1CSN09IhqAuEHAKngGl+VJv8hDmQo4fCth3EpZhA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.10.0.tgz",
+ "integrity": "sha512-opDTKBsfzzOlQzTCx+HYGnYWHGgPYtyFCHdHzsfJAl9o010mIMLmiujqD/VLifKYfKETXFJuRjWMhpSIAn3msQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-expand": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.10.0-rc.0.tgz",
- "integrity": "sha512-8qsL0xn4riumBMA5qmv7c6V0vL6FZmGRB/sAAyzDJqryDOsAWf++LjkROqjTyZcxtnMPYjwXVl9CBVRmW5W2PQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.10.0.tgz",
+ "integrity": "sha512-hmZrRLaGGaNM65vuUI6bfAIHMfN59Ba3bpiHcEXUvtS1lMsyydGgfZlVuzW7ZlUUEdRj3FRhdwyATuTVUDkhCg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-file": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.10.0-rc.0.tgz",
- "integrity": "sha512-fWeZkiH1sROc9gSYwd4CPCX4+gnt0OmADwqTOZNcvxe0h8wrmcCrtxQ37tZLGOsfA2PAjtFZtOMe1QWZF2veNw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.10.0.tgz",
+ "integrity": "sha512-DitXeZrr2X5bRNqP8Etxdg/0oN0PKwxOVdOndAUxvW/5nSQMEPu6YBR4VBPwvTBrO/O3aXW7fe99yMnQ0mILKg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-file-dropzone": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.10.0-rc.0.tgz",
- "integrity": "sha512-3DF/wVIZIiHNTDJiN0gRoXpmBuFtC20pNqm9Bdzuf8oP6QO7SD1LBJM1PPpCe7kDFtdJeELJlPhLEsGUD7TOJw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.10.0.tgz",
+ "integrity": "sha512-jTF+20vxDQzhpcuqEFbub+5EkCgEZb7OVYBhgxCUW9SftoB5EWaGYR+9lpz5FNjqBQJi5FTR08oji8gFEbmiEA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-file-thumbnail": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.10.0-rc.0.tgz",
- "integrity": "sha512-xA/XY6c7uHohZ2+v0tCuvqjsGmzTu+C9slWftR2Es2yS92MQIKNkYM435Nt1cY+pD1jJbXoFnbUY749129NKlw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.10.0.tgz",
+ "integrity": "sha512-ZbXqXD8MyrHPMTgqwSy81mjaSgb8ZYgkZ6a7M2WNWqL5cpzQ7URUUuT/3U+VDreMexyl9Yy60soWbr2zrjBuqQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-folder": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.10.0-rc.0.tgz",
- "integrity": "sha512-aTB432He1wSFdIPDKSse2OagOT8C2ElMS0iPrf7Un3hHmc7MJSwBX8wJ9qmTzEzlRKlnf0HvijG2iwoUjXLb8Q==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.10.0.tgz",
+ "integrity": "sha512-7gCGuIl8WPwZKVjR5+Tcb5CjAFL7i9kdbpKdDXGpComyZUpfIzy+2Eeb6H0N1P7M6c9gWJkvl06hghI7XJpz+A==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-lock": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.10.0-rc.0.tgz",
- "integrity": "sha512-VtJdbVVxtIRk5ALeeotwtxW3zgM7knxQXq76jBbwy3FzzCQTtBOQXsijQyCROPDaSsZ8YGOKB0n9ivPBXGjsGg==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.10.0.tgz",
+ "integrity": "sha512-8kziG7cQxd0Xjo3XdBBorZ7AwFw0joI7xJCTsFbymIvwRYp5hiJbrj2Kmf4kxs2rCcXPaWjI9D9nr/41EJqO2A==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-more": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.10.0-rc.0.tgz",
- "integrity": "sha512-QSFlkgwX7gAY/xw9FdNPIuQjm0yTcfHVny7dFRNi1N01EM1+VGPHV7n7gPwSeu2m5f99P5Kf0YdjDkkkIPc84A==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.10.0.tgz",
+ "integrity": "sha512-Hp2/BP8JDatgI/WVxfriZ/5IhlzvxFOyBzKNi/EIGPQYvMRofdp0GAI1UhT5MmWe6J5R/q9v106CWaDSNUP9pw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-symbol-sort": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.10.0-rc.0.tgz",
- "integrity": "sha512-VUelA+lzP5Kom/KfbnzdUErXFa+Kz/tSR6ao879GIE+TtQ3ntEW1BvwQC0LkRzZALQL5MRdSgIxM9fYIjQPD4Q==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.10.0.tgz",
+ "integrity": "sha512-J6EyHkY0hT7ZcZrh3JhCXlKnHE6xC9CXzIZ3EJ0lIPZOBLOql2okut0g/ZdP5s4JM7zGOEUEwEFwO+duxxacYA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-table": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.10.0-rc.0.tgz",
- "integrity": "sha512-m3YjJ6lvHvkstzvVSdWg7jCiN/zezqFSGzcfjkVrxGjyiIyaFvOHkqByH6EL37FlJIV9eoIVPo11y2ldRpPe5A==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.10.0.tgz",
+ "integrity": "sha512-AoqRaRAfI/WokEuDtE1utl5HVh05l/4+gpUWUj1vzyTNoVeBH3pMxg93ZDlus5pntNavP4foYl4GyTlPSVXcXg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-tabs": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.10.0-rc.0.tgz",
- "integrity": "sha512-FxUJ8kOT0UogS6PD2gdB+0MbXR2LY7X/dtSJuARvR08kjH6K7mDu7fd4q5v1FPd0ZAqNII/wzWDue4n+1z+fJA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.10.0.tgz",
+ "integrity": "sha512-97kkyWEyTvbNVFvcsD4Q9Av2SSwlRN+bdTZe+v1s4gROLJTef9UXs53N68WcjjPZvjBuVL0MpcxZ6kYTs9oxOg==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-button": "1.10.0-rc.0",
- "@umbraco-ui/uui-popover-container": "1.10.0-rc.0",
- "@umbraco-ui/uui-symbol-more": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-button": "1.10.0",
+ "@umbraco-ui/uui-popover-container": "1.10.0",
+ "@umbraco-ui/uui-symbol-more": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-tag": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.10.0-rc.0.tgz",
- "integrity": "sha512-Zl5fAA5pZpBOsxLZyWeZAnYdXxevZWkChJnFoOqHK7Vhm8ra+AUHaH7U7zSZbvk9ef8S5l2+Km3yYXkEmMGrGQ==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.10.0.tgz",
+ "integrity": "sha512-CtR6XcvM9DXBhZrVmngeT2aMsx5D38DnJCDLZlxcNyqbfL7U6FH8QGTWO9Htepln/hPr48VyTMV0yHs/mKfpHQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-textarea": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.10.0-rc.0.tgz",
- "integrity": "sha512-CRfg4rLxymAHFsvZheXbSLSCJfmqFE2akaRMQcbPUJjrNsw8vF+xEH0SbSV4yMhJoF+6slA9qzqXSswFBeEJ1Q==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.10.0.tgz",
+ "integrity": "sha512-hZKAhzDYqGVGqR2aZ+TsE/YygfKXOUs8i0OGeecUEuiEsL18+Js5Y2qyeb8pq5GUE2Mu6nJx2FkH8KThRCoLug==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-toast-notification": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.10.0-rc.0.tgz",
- "integrity": "sha512-th6zzSwsmmTldIYnzmFE4q6L+vmCqNzWnZOVxu13i43mBA5Hu3yKZP4ABsD1tNA+7VjMIOMO/4dql0vkEm/Ohw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.10.0.tgz",
+ "integrity": "sha512-dVPSRVPDblNDeqKMEVZx2PePyn/qfKtq6pu5k6gqh5aQhYZt2GyyV/oHELgf+VYNzzfgdN65w2cd78i3Ug5fVw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-button": "1.10.0-rc.0",
- "@umbraco-ui/uui-css": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon": "1.10.0-rc.0",
- "@umbraco-ui/uui-icon-registry-essential": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-button": "1.10.0",
+ "@umbraco-ui/uui-css": "1.10.0",
+ "@umbraco-ui/uui-icon": "1.10.0",
+ "@umbraco-ui/uui-icon-registry-essential": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-toast-notification-container": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.10.0-rc.0.tgz",
- "integrity": "sha512-Zlv6O3M5KbbxYsJ4gwBNxrZzuLqZxE0mIzRMNNMEGlh6nfa8DDbGRfMlIQUK1O8F2tO/F1DtA2bw4OOXFtMcpA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.10.0.tgz",
+ "integrity": "sha512-s+Uxe+IDLvzg+cj1+icFzVYU+8UB/XgFZetLOI7PLe5edbvFVwld0UmminQ9n1KYbyxGOnxvvhCgBfrgpiFkLw==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-toast-notification": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-toast-notification": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-toast-notification-layout": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.10.0-rc.0.tgz",
- "integrity": "sha512-5I9Tr+0VaH2LZ9Wlh6VlxPl9DQedFBNsEfFPKcuvBIuo77XZdKHwf/cgOzf0cyoyyrZPljIzwiCOW6oGd+aeaA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.10.0.tgz",
+ "integrity": "sha512-TY6DUEDqXXvNpe7O/j1fanBeWxyeV6Mc9jpXY2ERXrDCaPKL1uEUl2ouIrOCBw5OQMJsoZBU8ZtZmkGRRjlu4w==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-css": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-css": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-toggle": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.10.0-rc.0.tgz",
- "integrity": "sha512-VFS5THivr1OQIJpcF0i/OFwIt/1+sCkN9TnWnz6WHdwczKnLmq7/FmdOfjJ3W7EadmWfLj2dHTsxIUnHP1obtA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.10.0.tgz",
+ "integrity": "sha512-uSBf7j1f66rKHnfYXzJdkEDAx0WLukMpQ8zD7ZhvsZ6fEfNP31JbWDaWM7quHshXhk05/wVOgU7fa+6D7sCleA==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0",
- "@umbraco-ui/uui-boolean-input": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0",
+ "@umbraco-ui/uui-boolean-input": "1.10.0"
}
},
"node_modules/@umbraco-ui/uui-visually-hidden": {
- "version": "1.10.0-rc.0",
- "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.10.0-rc.0.tgz",
- "integrity": "sha512-l03O3u0QlsuuHmVwZuKrByePXweJQi1kw0wgTj6v1pzvZY0rSo7NFmwWLOGIteBLsRBUjH7mAUqeYecN4CQAFw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-visually-hidden/-/uui-visually-hidden-1.10.0.tgz",
+ "integrity": "sha512-Jp+tg8v2Ujth+HSP8W/JZth6QaeqWO2qbLhCCifEwvU4M7/ehmavcm+JnFx8zICkHrSsyL+p7yH4iXJ3H4eGOQ==",
"dependencies": {
- "@umbraco-ui/uui-base": "1.10.0-rc.0"
+ "@umbraco-ui/uui-base": "1.10.0"
}
},
"node_modules/@vue/compiler-core": {
diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json
index 9270456b65..4f810d3278 100644
--- a/src/Umbraco.Web.UI.Client/package.json
+++ b/src/Umbraco.Web.UI.Client/package.json
@@ -188,8 +188,8 @@
"@types/diff": "^5.2.1",
"@types/dompurify": "^3.0.5",
"@types/uuid": "^10.0.0",
- "@umbraco-ui/uui": "^v1.10.0-rc.0",
- "@umbraco-ui/uui-css": "^v1.10.0-rc.0",
+ "@umbraco-ui/uui": "^v1.10.0",
+ "@umbraco-ui/uui-css": "^v1.10.0",
"base64-js": "^1.5.1",
"diff": "^5.2.0",
"dompurify": "^3.1.6",
From 5e6fc141470b865948f9cf157441df3c14f5355e Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:02:48 +0200
Subject: [PATCH 08/31] chore: generate api
---
.../src/external/backend-api/src/services.gen.ts | 8 ++++++--
.../src/external/backend-api/src/types.gen.ts | 3 +++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services.gen.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services.gen.ts
index 5475bae356..ebf24b1f18 100644
--- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services.gen.ts
+++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/services.gen.ts
@@ -2425,6 +2425,7 @@ export class DocumentService {
* @param data.query
* @param data.skip
* @param data.take
+ * @param data.parentId
* @returns unknown OK
* @throws ApiError
*/
@@ -2435,7 +2436,8 @@ export class DocumentService {
query: {
query: data.query,
skip: data.skip,
- take: data.take
+ take: data.take,
+ parentId: data.parentId
},
errors: {
401: 'The resource is protected and requires an authentication token'
@@ -4014,6 +4016,7 @@ export class MediaService {
* @param data.query
* @param data.skip
* @param data.take
+ * @param data.parentId
* @returns unknown OK
* @throws ApiError
*/
@@ -4024,7 +4027,8 @@ export class MediaService {
query: {
query: data.query,
skip: data.skip,
- take: data.take
+ take: data.take,
+ parentId: data.parentId
},
errors: {
401: 'The resource is protected and requires an authentication token'
diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts
index 5a7d32f9f7..9971788f1c 100644
--- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts
+++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts
@@ -652,6 +652,7 @@ export type DocumentItemResponseModel = {
export type DocumentNotificationResponseModel = {
actionId: string;
+ alias: string;
subscribed: boolean;
};
@@ -3501,6 +3502,7 @@ export type GetItemDocumentData = {
export type GetItemDocumentResponse = (Array<(DocumentItemResponseModel)>);
export type GetItemDocumentSearchData = {
+ parentId?: string;
query?: string;
skip?: number;
take?: number;
@@ -3954,6 +3956,7 @@ export type GetItemMediaData = {
export type GetItemMediaResponse = (Array<(MediaItemResponseModel)>);
export type GetItemMediaSearchData = {
+ parentId?: string;
query?: string;
skip?: number;
take?: number;
From 133b4e569cf1f371b1f663f0e44a80c3e641971a Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:08:51 +0200
Subject: [PATCH 09/31] feat: use the action `alias` to generate the
localization and fallback to alias if none is found
---
.../document-notifications-modal.element.ts | 24 ++++++-------------
1 file changed, 7 insertions(+), 17 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
index 316f9323eb..a0ae938873 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
@@ -16,21 +16,6 @@ export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
#unique?: UmbEntityUnique;
#documentNotificationsRepository = new UmbDocumentNotificationsRepository(this);
- #localizationKeys = [
- { actionId: 'Umb.Document.Duplicate', key: 'actions_copy' },
- { actionId: 'Umb.Document.Delete', key: 'actions_delete' },
- { actionId: 'Umb.Document.Move', key: 'actions_move' },
- { actionId: 'Umb.Document.Create', key: 'actions_create' },
- { actionId: 'Umb.Document.PublicAccess', key: 'actions_protect' },
- { actionId: 'Umb.Document.Publish', key: 'actions_publish' },
- { actionId: 'Umb.DocumentRecycleBin.Restore', key: 'actions_restore' },
- { actionId: 'Umb.Document.Permissions', key: 'actions_rights' },
- { actionId: 'Umb.Document.Rollback', key: 'actions_rollback' },
- { actionId: 'Umb.Document.Sort', key: 'actions_sort' },
- { actionId: 'Umb.Document.SendForApproval', key: 'actions_sendtopublish' },
- { actionId: 'Umb.Document.Update', key: 'actions_update' },
- ];
-
@state()
private _settings: UmbDocumentNotificationSettings = [];
@@ -77,11 +62,16 @@ export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
this._settings,
(setting) => setting.actionId,
(setting) => {
- const localization = this.#localizationKeys.find((x) => x.actionId === setting.actionId);
+ const localizationKey = `actions_${setting.alias}`;
+ let localization = this.localize.term(localizationKey);
+ if (localization === localizationKey) {
+ // Fallback to alias if no localization is found
+ localization = setting.alias;
+ }
return html` this.#updateSubscription(setting.actionId)}
- .label=${localization ? this.localize.term(localization.key) : setting.actionId}
+ .label=${localization}
?checked=${setting.subscribed}> `;
},
)}
From d3e85c54cef812476d24265ebc978fa4d4b55a6e Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:14:21 +0200
Subject: [PATCH 10/31] feat: add permissions to notifications
---
.../entity-actions/notifications/manifests.ts | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
index 2e4b014dc1..109b596631 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/manifests.ts
@@ -1,7 +1,9 @@
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
+import { UMB_USER_PERMISSION_DOCUMENT_NOTIFICATIONS } from '../../user-permissions/constants.js';
import { manifests as repositoryManifests } from './repository/manifests.js';
import { manifests as modalManifests } from './modal/manifests.js';
import type { ManifestEntityAction } from '@umbraco-cms/backoffice/extension-registry';
+import { UMB_ENTITY_IS_NOT_TRASHED_CONDITION_ALIAS } from '@umbraco-cms/backoffice/recycle-bin';
const actionManifests: Array = [
{
@@ -14,8 +16,17 @@ const actionManifests: Array = [
forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
meta: {
icon: 'icon-megaphone',
- label: '#notifications_notifications',
+ label: '#actions_notify',
},
+ conditions: [
+ {
+ alias: 'Umb.Condition.UserPermission.Document',
+ allOf: [UMB_USER_PERMISSION_DOCUMENT_NOTIFICATIONS],
+ },
+ {
+ alias: UMB_ENTITY_IS_NOT_TRASHED_CONDITION_ALIAS,
+ },
+ ],
},
];
From cd13b1f52dafbe46ee41e3a311e10acbc9ec6d20 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:14:40 +0200
Subject: [PATCH 11/31] chore: remove TODO comment
---
.../documents/entity-actions/manifests.ts | 24 -------------------
1 file changed, 24 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 5b3646bd34..c514daa291 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
@@ -109,30 +109,6 @@ const entityActions: Array = [
],
},
*/
- /* TODO: Implement Notifications Entity Action
- {
- type: 'entityAction',
- kind: 'default',
- alias: 'Umb.EntityAction.Document.Notifications',
- name: 'Notifications Document Entity Action',
- weight: 100,
- forEntityTypes: [UMB_DOCUMENT_ENTITY_TYPE],
- api: () => import('./permissions.action.js'),
- meta: {
- icon: 'icon-megaphone',
- label: '#actions_notify',
- },
- conditions: [
- {
- alias: 'Umb.Condition.UserPermission.Document',
- allOf: [UMB_USER_PERMISSION_DOCUMENT_NOTIFICATIONS],
- },
- {
- alias: UMB_ENTITY_IS_NOT_TRASHED_CONDITION_ALIAS,
- },
- ],
- },
- */
];
export const manifests: Array = [
From 60a59bb1ff6bb67fda6902d667cd16fb4ac304da Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:29:49 +0200
Subject: [PATCH 12/31] chore: add and cleanup in "notifications" localizations
---
src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts | 11 ++---------
src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts | 9 +--------
src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts | 11 ++---------
src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts | 4 ++--
src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts | 9 +--------
src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts | 4 ++--
src/Umbraco.Web.UI.Client/src/assets/lang/en.ts | 4 ++--
src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts | 9 +--------
src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts | 11 ++---------
src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts | 11 ++---------
src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts | 9 +--------
src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts | 11 ++---------
src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts | 6 +-----
src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts | 6 +-----
24 files changed, 32 insertions(+), 143 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts
index 5dd76d7531..bfc3158628 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/bs.ts
@@ -1031,15 +1031,8 @@ export default {
relateToOriginal: 'Povežite kopirane stavke s originalom',
},
notifications: {
- editNotifications: 'Odaberite vaše obavještenje za %0% ',
- notificationsSavedFor: 'Postavke obavještenja su sačuvane za',
- mailBody:
- "\n Zdravo %0%\n\n Ovo je automatizirana poruka koja vas obavještava da je zadatak '%1%'\n izvršen na stranici '%2%'\n od korisnika '%3%'\n\n Idi http://%4%/#/content/content/edit/%5% za uređivanje.\n\n %6%\n\n Ugodan dan!\n Pozdrav od Umbraco robota\n ",
- mailBodyVariantSummary: 'Sljedeći jezici su izmijenjeni %0%',
- mailBodyHtml:
- "\n \n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n
\n\n \n \n \n
\n \n \n
\n\n\n \n\n\n
\n
\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tZdravo %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOvo je automatiziran email koja vas obavještava da je zadatak '%1%' izvršen na stranici '%2%' od korisnika '%3%' \n
\n\n\n
Sažetak izmjena: \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t%6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUgodan dan! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPozdrav od Umbraco robota\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n \n \n
\n \n \n
\n
\n
\n \n \n \n
\n\n\n\t",
- mailBodyVariantHtmlSummary: 'Sljedeći jezici su izmijenjeni:
\n %0%\n ',
- mailSubject: '[%0%] Obavještenje o %1% izvedena na %2%',
+ editNotifications: 'Odaberite vaše obavještenje za %0%',
+ notificationsSavedFor: 'Postavke obavještenja su sačuvane za %0%',
notifications: 'Obavještenja',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts
index f26e8f1a23..08ac94fae7 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/cs-cz.ts
@@ -931,14 +931,7 @@ export default {
},
notifications: {
editNotifications: 'Upravte vaše oznámení pro %0%',
- notificationsSavedFor: 'Nastavení oznámení bylo uloženo pro',
- mailBody:
- "\n Dobrý den, %0%\n\n Toto je automatická zpráva informující Vás, že úloha '%1%'\n byla provedena na stránce '%2%'\n uživatelem '%3%'\n\n Přejděte na http://%4%/#/content/content/edit/%5% pro editování.\n\n Mějte hezký den!\n\n Zdraví Umbraco robot\n ",
- mailBodyVariantSummary: 'Následující jazyky byly změněny %0%',
- mailBodyHtml:
- 'Ahoj %0%
\n\n Toto je automatická zpráva informující Vás, že úloha \'%1%\' \n byla provedena na stránce \'%2%\' \n uživatelem \'%3%\' \n
\n \n \n
Shrnutí změn: \n \n
\n\n \n\n Mějte hezký den! \n Zdraví Umbraco robot\n
',
- mailBodyVariantHtmlSummary: 'Byly změněny následující jazyky:
\n %0%\n ',
- mailSubject: '[%0%] Upozornění o %1% na %2%',
+ notificationsSavedFor: 'Nastavení oznámení bylo uloženo pro %0%',
notifications: 'Upozornění',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts
index 7878e4d18f..4d320ab231 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/cy-gb.ts
@@ -1076,15 +1076,8 @@ export default {
relateToOriginal: "Perthnasu eitemau wedi'u copïo at y rhai gwreiddiol",
},
notifications: {
- editNotifications: 'Golygu eich hysbysiad ar gyfer %0% ',
- notificationsSavedFor: 'Gosodiad hysbysiadau wedi cadw am',
- mailBody:
- "\n Helo %0%\n\n Mae hyn yn ebost awtomatig i'ch hysbysu fod y dasg '%1%'\n wedi'i berfformio ar y dudalen '%2%'\n gan y defnyddiwr '%3%'\n\n Ewch at http://%4%/#/content/content/edit/%5% i olygu.\n\n Mwynhewch eich diwrnod!\n\n Hwyl fawr oddi wrth y robot Umbraco\n ",
- mailBodyVariantSummary: "Mae'r ieithoedd canlynol wedi'u haddasu %0%",
- mailBodyHtml:
- "\n \n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tHelo %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMae hyn yn ebost awtomatig i'ch hysbysu fod y dasg '%1%' wedi'i berfformio ar y dudalen '%2%' gan y defnyddiwr '%3%' \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGOLYGU
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
Crynodeb diweddariad: \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t %6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMwynhewch eich diwrnod! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tHwyl fawr oddi wrth y robot Umbraco\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\n\t\t\n\t",
- mailBodyVariantHtmlSummary: "Mae'r ieithoedd canlynol wedi'u haddasu:
\n %0%\n ",
- mailSubject: '[%0%] Hysbysiad am %1% wedi perfformio am %2%',
+ editNotifications: 'Golygu eich hysbysiad ar gyfer %0%',
+ notificationsSavedFor: 'Gosodiad hysbysiadau wedi cadw am %0%',
notifications: 'Hysbysiadau',
},
packager: {
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 7e3abc9b1d..a56efd4c07 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
@@ -1078,8 +1078,8 @@ export default {
relateToOriginal: 'Relater det kopierede element til originalen',
},
notifications: {
- editNotifications: 'Vælg dine notificeringer for %0% ',
- notificationsSavedFor: 'Notificeringer er gemt for',
+ editNotifications: 'Vælg dine notificeringer for %0%',
+ notificationsSavedFor: 'Notificeringer er gemt for %0%',
notifications: 'Notificeringer',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts
index 8dd086d6d9..3d4af17cd2 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/de-de.ts
@@ -1060,14 +1060,7 @@ export default {
},
notifications: {
editNotifications: "Bearbeiten Sie Ihre Benachrichtigungseinstellungen für '%0%'",
- notificationsSavedFor: 'Benachrichtigungseinstellungen wurden gesichert für',
- mailBody:
- "\n Hallo %0%,\n\n die Aufgabe '%1%' (von Benutzer '%3%') an der Seite '%2%' wurde ausgeführt.\n\n Zum Bearbeiten verwenden Sie bitte diesen Link: http://%4%/#/content/content/edit/%5%\n\n Einen schönen Tag wünscht\n Ihr freundlicher Umbraco-Robot\n ",
- mailBodyVariantSummary: 'Die folgenden Sprachen wurden geändert %0%',
- mailBodyHtml:
- "\n \n\t\n\t\t \n\t\t \n\t\n\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t \n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tHallo %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tDiese automatische E-Mail soll Sie informiern, dass die Aufgabe '%1%' auf Seite '%2%' von Benutzer '%3%' ausgeführt wurde.\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBearbeiten
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
Zusammenfassung der Änderungen: \n\t\t\t\t\t\t\t\t\t\t\t\t\t%6%\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tEinen schönen Tag wünscht \n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\tIhr freundlicher Umbraco-Robot\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t \n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t \n\t\t\t\t \n\t\t\t \n\t\t
\n\t\n\n",
- mailBodyVariantHtmlSummary: 'Folgende Sprachen wurden geändert:
\n %0%\n ',
- mailSubject: "[%0%] Benachrichtigung: %1% ausgeführt an Seite '%2%' ",
+ notificationsSavedFor: "Benachrichtigungseinstellungen wurden gesichert für '%0%'",
notifications: 'Benachrichtigungen',
},
packager: {
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 d1b15a8978..175e8c78d8 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
@@ -1085,8 +1085,8 @@ export default {
relateToOriginal: 'Relate copied items to original',
},
notifications: {
- editNotifications: 'Select your notification for %0% ',
- notificationsSavedFor: 'Notification settings saved for',
+ editNotifications: 'Select your notification for %0%',
+ notificationsSavedFor: 'Notification settings saved for %0%',
notifications: 'Notifications',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
index ee477bbac0..495129c5cc 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
@@ -1105,8 +1105,8 @@ export default {
relateToOriginal: 'Relate copied items to original',
},
notifications: {
- editNotifications: 'Select your notification for %0% ',
- notificationsSavedFor: 'Notification settings saved for',
+ editNotifications: 'Select your notification for %0%',
+ notificationsSavedFor: 'Notification settings saved for %0%',
notifications: 'Notifications',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts
index b51465d40b..58c612db2c 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/es-es.ts
@@ -743,11 +743,7 @@ export default {
},
notifications: {
editNotifications: 'Edita tu notificación para %0%',
- mailBody:
- "Hola %0% Esto es un e-mail automático para informarte que la tarea '%1%' ha sido realizada sobre la página '%2%' por el usuario '%3%' Vaya a http://%4%/#/content/content/edit/%5% para editarla. ¡Espero que tenga un buen día! Saludos del robot de Umbraco",
- mailBodyHtml:
- 'Hola %0%
Esto es un e-mail generado automáticamente para informarle que la tarea \'%1%\' ha sido realizada sobre la página \'%2%\' por el usuario \'%3%\'
Resumen de actualización: ¡Espero que tenga un buen día! Saludos del robot Umbraco.
',
- mailSubject: '[%0%] Notificación acerca de %1% realizado en %2%',
+ notificationsSavedFor: 'Notificaciones guardadas para %0%',
notifications: 'Notificaciones',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts
index 05922b01d7..5413b2e03c 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/fr-fr.ts
@@ -965,14 +965,7 @@ export default {
},
notifications: {
editNotifications: 'Editez vos notifications pour %0%',
- notificationsSavedFor: 'Paramètres de notification enregistrés pour',
- mailBody:
- "\n Hello %0%\n\n Ceci est un email automatique pour vous informer que la tâche '%1%'\n a été executée sur la page '%2%'\n par l'utilisateur '%3%'\n\n Allez sur http://%4%/#/content/content/edit/%5% pour éditer cette page.\n\n Bonne journée !\n\n Avec les salutations du Robot Umbraco\n ",
- mailBodyVariantSummary: 'Les langues suivantes ont été modifiées : %0%',
- mailBodyHtml:
- "\n\t\t\n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSalut %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCeci est un email automatique pour vous informer que la tâche '%1%' a été exécutée sur la page '%2%' par l'utilisateur '%3%' \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMODIFIER
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
Résumé de la mise à jour : \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t %6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBonne journée ! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAvec les salutations du Robot Umbraco\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\n\t\t\n\t\t",
- mailBodyVariantHtmlSummary: 'Les langues suivantes ont été modifiées :
\n %0%\n ',
- mailSubject: 'La notification [%0%] à propos de %1% a été executée sur %2%',
+ notificationsSavedFor: 'Paramètres de notification enregistrés pour %0%',
notifications: 'Notifications',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts
index 9a4b9ca146..fd9ee14b19 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/he-il.ts
@@ -469,11 +469,7 @@ export default {
},
notifications: {
editNotifications: 'ערוך את ההתראות עבור %0%',
- mailBody:
- '\n שלום, %0%\n\n זוהי הודעה אוטומטית המיידעת אותך שהמשימה %1%\n\t בוצעה בעמוד %2% על ידי המשתמש %3%\n\n לעריכה, יש ללחוץ על הלינק הבא://%4%/actions/editContent.aspx?id=%5% .\n\n המשך יום נעים!\n ',
- mailBodyHtml:
- 'Hi %0%
\n\n\t\t This is an automated mail to inform you that the task \'%1%\' \n\t\t has been performed on the page \'%2%\' \n\t\t by the user \'%3%\' \n\t
\n\t\t \n\t\t\t\t
\n\t\t\t\t
EDIT \n\t\t\t\t
\n\t\t
\n\t\t \n\t\t\t
Update summary: \n\t\t\t \n\t\t\t\t\t\t %6%\n\t\t\t\t
\n\t\t\t \n\n\t\t \n\t\t\t\t
\n\t\t\t\t
EDIT \n\t\t\t\t
\n\t\t
\n\n\t\t Have a nice day! \n\t\t\t Cheers from the Umbraco robot\n\t\t
',
- mailSubject: '[%0%] התראות %1% בוצעו ב %2%',
+ notificationsSavedFor: 'ההתראות נשמרו עבור %0%',
notifications: 'התראות',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts
index 71881e104c..3597b95fc9 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/hr-hr.ts
@@ -1033,15 +1033,8 @@ export default {
relateToOriginal: 'Povežite kopirane stavke s originalom',
},
notifications: {
- editNotifications: 'Odaberite vaše obavijesti za %0% ',
- notificationsSavedFor: 'Postavke obavijesti su spremljene za',
- mailBody:
- "\n Zdravo %0%\n\n Ovo je automatizirana poruka koja vas obavještava da je zadatak '%1%'\n izvršen na stranici '%2%'\n od korisnika '%3%'\n\n Idite na http://%4%/#/content/content/edit/%5% za uređivanje.\n\n %6%\n\n Ugodan dan!\n Pozdrav od Umbraco robota\n ",
- mailBodyVariantSummary: 'Sljedeći jezici su izmijenjeni %0%',
- mailBodyHtml:
- "\n \n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n
\n\n \n \n \n
\n \n \n
\n\n\n \n\n\n
\n
\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPozdrav %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOvo je automatiziran email koja vas obavještava da je zadatak '%1%' izvršen na stranici '%2%' od korisnika '%3%' \n
\n\n\n
Sažetak izmjena: \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t%6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUgodan dan! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPozdrav od Umbraco robota\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n \n \n
\n \n \n
\n
\n
\n \n \n \n
\n\n\n\t",
- mailBodyVariantHtmlSummary: 'Sljedeći jezici su izmijenjeni:
\n %0%\n ',
- mailSubject: '[%0%] Obavijesti o %1% izvedena na %2%',
+ editNotifications: 'Odaberite vaše obavijesti za %0%',
+ notificationsSavedFor: 'Postavke obavijesti su spremljene za %0%',
notifications: 'Obavijesti',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts
index 6ecf289fd3..2f2d5f60b7 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/it-it.ts
@@ -1020,15 +1020,8 @@ export default {
relateToOriginal: "Collega gli elementi copiati all'originale",
},
notifications: {
- editNotifications: 'Modifica le tue notifiche per %0% ',
- notificationsSavedFor: 'Impostazioni di notifica salvate per',
- mailBody:
- "\n Ciao %0%\n\n Questa è un'email automatica per informare che l'azione '%1%'\n è stata eseguita sulla pagina '%2%'\n dall'utente '%3%'\n\n Vai al link http://%4%/#/content/content/edit/%5% per modificare.\n\n %6%\n\n Buona giornata!\n\n Saluti dal robot di Umbraco\n ",
- mailBodyVariantSummary: 'Sono state modificate le lingue seguenti %0%',
- mailBodyHtml:
- "\n \t\n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCiao %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tQuesta è un'email automatica per informare che l'azione '%1%' è stata eseguita sulla pagina '%2%' dall'utente '%3%' \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMODIFICA
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
Riepilogo dell'aggiornamento: \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t%6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBuona giornata! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSaluti dal robot di Umbraco\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\n\t\t\n\t",
- mailBodyVariantHtmlSummary: 'Sono state modificate le seguenti lingue:
\n %0%\n ',
- mailSubject: '[%0%] Notifica per %1% eseguito su %2%',
+ editNotifications: 'Modifica le tue notifiche per %0%',
+ notificationsSavedFor: 'Impostazioni di notifica salvate per %0%',
notifications: 'Notifiche',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts
index aa44887bda..2b812c42aa 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/ja-jp.ts
@@ -594,11 +594,7 @@ export default {
},
notifications: {
editNotifications: '%0% への通知を編集',
- mailBody:
- "\n 前略 %0% さま\n\n ユーザー '%3%' により\n ページ '%2%' 上のタスク'%1%'から\n 自動的にメールします。\n\n 編集はこちらから: http://%4%/#/content/content/edit/%5%\n\n 早々\n\n Umbracoのロボットより\n ",
- mailBodyHtml:
- '前略 %0% さま
\n\n\t\t\tユーザー \'%3%\' によりページ \'%2%\' 上のタスク \'%1%\' から自動的にメールします。
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
編集 \n\t\t\t\t
\n\t\t
\n\t\t \n\t\t\t
更新のまとめ: \n\t\t\t \n\t\t\t\t\t\t %6%\n\t\t\t\t
\n\t\t\t \n\n\t\t \n\t\t\t\t
\n\t\t\t\t
編集 \n\t\t\t\t
\n\t\t
\n\n\t\t 早々 \n\t\t\t Umbracoのロボットより\n\t\t
',
- mailSubject: '[%0%] に通知: ページ %2% 上の %1% について',
+ notificationsSavedFor: '%0% への通知が保存されました',
notifications: '通知',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts
index e1804fb584..f2cfcab172 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/ko-kr.ts
@@ -468,11 +468,7 @@ export default {
},
notifications: {
editNotifications: '%0% 에 대한 알림 편집',
- mailBody:
- "\n 안녕하세요 %0%\n\n 사용자 '%3%' 가 작업 '%1%' 를 페이지 '%2%' 에서\n 진행했음을 알리는 자동 발송 메일입니다.\n\n 편집하시려면 http://%4%/#/content/content/edit/%5% 로 이동하세요\n\n 좋은 하루 되세요!\n\n ",
- mailBodyHtml:
- '안녕하세요 %0%
\n\n\t 사용자 \'%3%\' 가 작업 \'%1%\' 를\n 페이지 \'%2%\' 에서\n 진행했음을 알리는 자동 발송 메일입니다.\n
\n\t \n\t\t\t
\n\t\t\t
편집 \n\t\t\t
\n\t
\n\t \n\t\t
업데이트 요약: \n\t\t \n\t\t \n\n\t \n\t\t\t
\n\t\t\t
편집 \n\t\t\t
\n\t
\n\n\t 좋은 하루 되세요! \n\t
',
- mailSubject: '%1%에 대한 [%0]알림이 %2%에 생성되었습니다',
+ notificationsSavedFor: '%0% 에 대한 알림이 저장되었습니다.',
notifications: '알림',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts
index 062e0e4ca2..14ff0ab87a 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/nb-no.ts
@@ -550,11 +550,7 @@ export default {
},
notifications: {
editNotifications: 'Rediger dine varsler for %0%',
- mailBody:
- "\nHei %0%\n\nDette er en automatisk mail for å informere om at handlingen '%1%'\ner utført på siden '%2%'\nav brukeren '%3%'\n\nGå til http://%4%/Umbraco/default.aspx?section=content&id=%5% for å redigere.\n\nHa en fin dag!\n\nVennlig hilsen Umbraco roboten\n ",
- mailBodyHtml:
- 'Hei %0%
\n\n\t\t Dette er en automatisk mail for å informere om at handlingen \'%1%\'\n er blitt utført på siden \'%2%\' \n av brukeren \'%3%\' \n\t
\n\t\t \n\t\t\t\t
\n\t\t\t\t
REDIGER \n\t\t\t\t
\n\t\t
\n\t\t \n\t\t\t
Rettelser: \n\t\t\t \n\t\t\t\t\t\t %6%\n\t\t\t\t
\n\t\t\t \n\n\t\t \n\t\t\t\t
\n\t\t\t\t
REDIGER \n\t\t\t\t
\n\t\t
\n\n\t\t Ha en fin dag! \n\t\t\t Vennlig hilsen Umbraco roboten\n\t\t
',
- mailSubject: '[%0%] Varsling om %1% utført på %2%',
+ notificationsSavedFor: 'Varsler lagret for %0%',
notifications: 'Varslinger',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts
index 71aada2acb..3f7bb995ae 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/nl-nl.ts
@@ -990,14 +990,7 @@ export default {
},
notifications: {
editNotifications: 'Bewerk de notificatie voor %0%',
- notificationsSavedFor: 'Notificatie instellingen opgeslagen voor',
- mailBody:
- "\n Hallo %0%,\n\n Dit is een geautomatiseerd bericht om u te informeren dat de taak '%1%'\n is uitgevoerd op pagina '%2%'\n door gebruiker '%3%'.\n\n Ga naar http://%4%/#/content/content/edit/%5% om dit te bewerken.\n\n Een prettige dag!\n\n Dit is een bericht van uw Content Management Systeem.\n\n ",
- mailBodyVariantSummary: 'De volgende talen zijn gewijzigd %0%',
- mailBodyHtml:
- 'Hi %0%
\n\n\t\t Dit is een geautomatiseerde mail om u op de hoogte te brengen dat de taak \'%1%\' \n\t\t is uitgevoerd op pagina \'%2%\' \n\t\t door gebruiker \'%3%\' \n\t
\n\t\t \n\t\t \n\t\t\t
Update samenvatting: \n\t\t\t \n\t\t\t\t\t\t %6%\n\t\t\t\t\t
\n\t\t\t \n\n\t\t \n\n\t\t Een prettige dag! \n\t\t\t Dit is een bericht van uw Content Management Systeem.\n\t\t
\n ',
- mailBodyVariantHtmlSummary: 'De volgende talen zijn gewijzigd:
\n %0%\n ',
- mailSubject: '[%0%] Notificatie over %1% uitgevoerd op %2%',
+ notificationsSavedFor: 'Notificatie instellingen opgeslagen voor %0%',
notifications: 'Notificaties',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts
index edbcbeef73..3dbfc8a21a 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/pl-pl.ts
@@ -725,11 +725,7 @@ export default {
},
notifications: {
editNotifications: 'Edytuj powiadomienie dla %0%',
- mailBody:
- "\n Witaj %0%\n\n To jest automatyczny e-mail, wysłany, aby poinformować Cię, że polecenie '%1%'\n zostało wykonane na stronie '%2%'\n przez użytkownika '%3%'.\n\n Możesz dalej edytować pod adresem http://%4%/#/content/content/edit/%5%\n\n Miłego dnia!\n\n Pozdrowienia od robota Umbraco\n ",
- mailBodyHtml:
- 'Witaj %0%
\n\n To jest automatyczny e-mail, wysłany, aby poinformować Cię, że polecenie \'%1%\' \n zostało wykonane na stronie \'%2%\' \n przez użytkownika \'%3%\' \n
\n \n \n
Podsumowanie zmian: \n \n \n\n \n\n Miłego dnia! \n Pozdrowienia od robota Umbraco\n
',
- mailSubject: '[%0%] Powiadomienie o %1% wykonane na %2%',
+ notificationsSavedFor: 'Zapisano powiadomienia dla %0%',
notifications: 'Powiadomienie',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts
index fdfec8369d..1253547fef 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/pt-br.ts
@@ -476,11 +476,7 @@ export default {
},
notifications: {
editNotifications: 'Editar sua notificação para %0%',
- mailBody:
- "\n Olá %0%\n\n Esta é uma mensagem automatizada de email para informar que a tarefa '%1%' foi realizada na página '%2%' pelo usuário '%3%'\n\nVá até http://%4%/#/content/content/edit/%5% para editar.\n\n Tenha um bom dia!\n\n Saudações do robô Umbraco",
- mailBodyHtml:
- 'Olá %0%
\n\n\t\t Esta é uma mensagem automatizada para informar que a tarefa \'%1%\' \n\t\t foi completada na página \'%2%\' \n\t\t pelo usuário \'%3%\' \n\t
\n\t\t \n\t\t\t\t
\n\t\t\t\t
EDIT \n\t\t\t\t
\n\t\t
\n\t\t \n\t\t\t
Resumo da Atualização: \n\t\t\t \n\t\t\t\t\t\t %6%\n\t\t\t\t
\n\t\t\t \n\n\t\t \n\t\t\t\t
\n\t\t\t\t
EDIT \n\t\t\t\t
\n\t\t
\n\n\t\t Tenha um bom dia! \n\t\t\t Saudações do robô Umbraco\n\t\t
\n ',
- mailSubject: '[%0%] Notificação sobre %1% realizada em %2%',
+ notificationsSavedFor: 'Notificações salvas para %0%',
notifications: 'Notificações',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts
index 90ec2b31db..4e7a769eb4 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/ru-ru.ts
@@ -868,11 +868,7 @@ export default {
},
notifications: {
editNotifications: 'Вы можете изменить уведомление для %0%',
- mailBody:
- "\n\t\tЗдравствуйте, %0%\n\n\t\tЭто автоматически сгенерированное уведомление.\n\t\tОперация '%1%'\n\t\tбыла произведена на странице '%2%' пользователем '%3%'.\n\n\t\tВы можете увидеть изменения и отредактировать, перейдя по ссылке http://%4%/#/content/content/edit/%5%.\n\n\t\tУдачи!\n\n\t\tГенератор уведомлений Umbraco.\n\t\t",
- mailBodyHtml:
- "\n \n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tЗдравствуйте, %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tЭто автоматически сгенерированное сообщение, отправленное, чтобы уведомить Вас о том, что операция '%1%' была выполнена на странице '%2%' пользователем '%3%' \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tВНЕСТИ ИЗМЕНЕНИЯ
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
Обзор обновления: \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t %6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tУдачного дня! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tК Вашим услугам, почтовый робот Umbraco\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\n\t\t\n ",
- mailSubject: '[%0%] Уведомление об операции %1% над документом %2%',
+ notificationsSavedFor: 'Уведомления сохранены для %0%',
notifications: 'Уведомления',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts
index a938ef0921..e33916c100 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/sv-se.ts
@@ -724,11 +724,7 @@ export default {
},
notifications: {
editNotifications: 'Inställningar för notifieringar gällande %0%',
- mailBody:
- "Hej %0% Detta mail skickas till dig automatiskt för att meddela att '%1%' har utförts på sidan '%2%' av användaren '%3%' Gå till http://%4%/actions/editContent.aspx?id=%5% för att redigera.",
- mailBodyHtml:
- 'Hej %0%
Detta mail skickas till dig automatiskt för att meddela att \'%1%\' har utförts på sidan \'%2%\' av användaren \'%3%\'
Sammanfattning av uppdateringen: ',
- mailSubject: '[%0%] Meddelande för att informera om att %1% har utförts på %2%',
+ notificationsSavedFor: 'Notifieringar sparade för %0%',
notifications: 'Notifieringar',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts
index ee92d31390..dfe98dd10e 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/tr-tr.ts
@@ -960,15 +960,8 @@ export default {
relateToOriginal: 'Kopyalanan öğeleri asıl öğe ile ilişkilendir',
},
notifications: {
- editNotifications: '%0% için bildiriminizi seçin',
- notificationsSavedFor: 'Bildirim ayarları bu belirtilen öğe için kaydedildi',
- mailBody:
- "\n Merhaba %0%\n\n Bu, '%1%' görevinin '%2%' sayfasında '%3%' kullanıcısı tarafından\n gerçekleştirildiğini bildiren\n otomatik bir e-postadır.\n\n Düzenleme yapmak için http://%4%/#/content/content/edit/%5% adresine gidiniz.\n\n %6%\n\n İyi günler!\n\n Umbraco robotundan teşekkürler\n ",
- mailBodyVariantSummary: 'Aşağıdaki diller %0% değiştirildi',
- mailBodyHtml:
- "\n \n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMerhaba %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n \n Bu, '%1%' görevinin '%2%' sayfasında '%3%' kullanıcısı tarafından gerçekleştirildiğini size bildirmek için otomatik bir postadır.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDÜZENLE
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
Güncelleme Özeti: \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t%6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tİyi günler dilerim! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUmbraco robotundan teşekkürler\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\n\t\t\n\t",
- mailBodyVariantHtmlSummary: ' Aşağıdaki diller değiştirildi:
\n %0%\n ',
- mailSubject: '[ %0%]%1% ile ilgili bildirim%2% üzerinde gerçekleştirildi',
+ editNotifications: '%0% için bildiriminizi seçin',
+ notificationsSavedFor: 'Bildirim ayarları bu belirtilen öğe için kaydedildi %0%',
notifications: 'Bildirimler',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts
index db7da8e88f..eaa3f06a06 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/uk-ua.ts
@@ -867,11 +867,7 @@ export default {
},
notifications: {
editNotifications: 'Ви можете змінити повідомлення для %0%',
- mailBody:
- "\n\t\tВітаємо, %0%\n\n\t\tЦе автоматично згенероване повідомлення.\n\t\tОперація '%1%'\n\t\tбула зроблена на сторінці '%2%' користувачем '%3%'.\n\n\t\tВи можете побачити зміни та відредагувати, перейшовши за посиланням http://%4%/#/content/content/edit/%5%.\n\n\t\tУспіхів!\n\n\t\tГенератор повідомлень Umbraco.\n\t\t",
- mailBodyHtml:
- "\n \n\t\t\t\n\t\t\t\t \n\t\t\t\t \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tВітаємо, %0%,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tЦе автоматично згенероване повідомлення, відправлене, щоб повідомити Вас про те, що операція '%1%' була виконана на сторінці '%2%' користувачем '%3%' \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tВНЕСТИ ЗМІНИ
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
Огляд оновлення: \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t %6%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tВдалого дня! \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tДо Ваших послуг, поштовий робот Umbraco\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t \n\t\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t
\n\t\t\t\n\t\t\n ",
- mailSubject: '[%0%] Сповіщення про операцію %1% над документом %2%',
+ notificationsSavedFor: 'Повідомлення збережено для %0%',
notifications: 'Сповіщення',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts
index cfdb1c5b48..50715aa84e 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-cn.ts
@@ -603,11 +603,7 @@ export default {
},
notifications: {
editNotifications: '为 %0% 编写通知',
- mailBody:
- "\n%0%:\n\n 您好!这是一封自动邮件,提醒您用户'%3%'\n 执行'%1%'任务\n 已经在完成'%2%'。\n\n 转到 http://%4%/#/content/content/edit/%5% 进行编辑\n\n Have a nice day!\n\n 来自Umbraco机器人\n ",
- mailBodyHtml:
- '%0%:
\n\n\t\t 您好!这是一封自动发送的邮件,告诉您任务\'%1%\' \n\t\t 已在\'%2%\' \n\t\t 被用户\'%3%\' 执行\n\t\t
\n\t\t \n\t\t\t\t
\n\t\t\t\t
编辑 \n\t\t\t\t
\n\t\t
\n\t\t \n
更新概况: \n\t\t\t \n\t\t\t\t\t\t %6%\n\t\t\t\t
\n\t\t\t \n\n\t\t \n\n 祝您愉快! \n 该信息由系统自动发送\n
',
- mailSubject: '在 %2%,[%0%] 关于 %1% 的通告已执行。',
+ notificationsSavedFor: '通知已保存为 %0%',
notifications: '通知',
},
packager: {
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts
index 539ccca2cd..62d39dae16 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/zh-tw.ts
@@ -605,11 +605,7 @@ export default {
},
notifications: {
editNotifications: '為 %0% 編寫通知',
- mailBody:
- '\n 哈嘍 %0%\n\n 這是一封自動產生的信件來通知您 %1% 工作\n 已經在頁面 %2% 上由使用者 %3% 執行完成\n\n\n 請移至下列網址編輯: http://%4%/#/content/content/edit/%5%\n\n 祝您有美好的一天!\n\n Umbraco機器人 謹上\n ',
- mailBodyHtml:
- '哈嘍 %0%
\n\n\t\t 這是一封自動產生的信件來通知您 %1% 工作\n\t\t 已經在頁面 %2% 上由使用者 %3% 執行完成\n\t
\n\t\t \n\t\t\t\t
\n\t\t\t\t
編輯 \n\t\t\t\t
\n\t\t
\n\t\t \n\t\t\t
更新摘要: \n\t\t\t \n\t\t\t\t\t\t %6%\n\t\t\t\t
\n\t\t\t \n\n\t\t \n\t\t\t\t
\n\t\t\t\t
編輯 \n\t\t\t\t
\n\t\t
\n\n\t\t 祝您有美好的一天! \n\t\t\t Umbraco機器人 謹上\n\t\t
',
- mailSubject: '在 %2%,[%0%] 關於 %1% 的通告已執行。',
+ notificationsSavedFor: '通知已經為 %0% 保存',
notifications: '通知',
},
packager: {
From 5bd2ef2102a3cf3da1adfd2b123ef16d070a3bac Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:30:11 +0200
Subject: [PATCH 13/31] feat: fetch the document name and use in headlines and
notifications
---
.../document-notifications-modal.element.ts | 27 ++++++++++++++++---
.../document-notifications.repository.ts | 9 +++++--
2 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
index a0ae938873..b1d9683fc1 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/modal/document-notifications-modal.element.ts
@@ -1,3 +1,4 @@
+import { UmbDocumentItemRepository } from '../../../repository/index.js';
import { UmbDocumentNotificationsRepository } from '../repository/document-notifications.repository.js';
import type { UmbDocumentNotificationsModalData } from './document-notifications-modal.token.js';
import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
@@ -19,9 +20,23 @@ export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
@state()
private _settings: UmbDocumentNotificationSettings = [];
+ @state()
+ private _documentName = '';
+
override firstUpdated() {
this.#unique = this.data?.unique;
this.#readNotificationSettings();
+ this.#getDocumentName();
+ }
+
+ async #getDocumentName() {
+ if (!this.#unique) return;
+ // Should this be done here or in the action file?
+ const { data } = await new UmbDocumentItemRepository(this).requestItems([this.#unique]);
+ if (!data) return;
+ const item = data[0];
+ //TODO How do we ensure we get the correct variant?
+ this._documentName = item.variants[0]?.name;
}
async #readNotificationSettings() {
@@ -36,9 +51,13 @@ export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
if (!this.#unique) return;
const subscribedActionIds = this._settings.filter((x) => x.subscribed).map((x) => x.actionId);
- const { error } = await this.#documentNotificationsRepository.updateNotifications(this.#unique, {
- subscribedActionIds,
- });
+ const { error } = await this.#documentNotificationsRepository.updateNotifications(
+ this.#unique,
+ this._documentName,
+ {
+ subscribedActionIds,
+ },
+ );
if (error) return;
this._submitModal();
@@ -57,7 +76,7 @@ export class UmbDocumentNotificationsModalElement extends UmbModalBaseElement<
override render() {
return html`
-
+
${repeat(
this._settings,
(setting) => setting.actionId,
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts
index 9b79298de1..2b27380355 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.ts
@@ -4,12 +4,15 @@ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
import type { UmbApi } from '@umbraco-cms/backoffice/extension-api';
import type { UpdateDocumentNotificationsRequestModel } from '@umbraco-cms/backoffice/external/backend-api';
+import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';
export class UmbDocumentNotificationsRepository extends UmbControllerBase implements UmbApi {
#dataSource = new UmbDocumentNotificationsServerDataSource(this);
#notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE;
+ #localize = new UmbLocalizationController(this);
+
constructor(host: UmbControllerHost) {
super(host);
@@ -28,13 +31,15 @@ export class UmbDocumentNotificationsRepository extends UmbControllerBase implem
return { error };
}
- async updateNotifications(unique: string, data: UpdateDocumentNotificationsRequestModel) {
+ async updateNotifications(unique: string, documentName: string, data: UpdateDocumentNotificationsRequestModel) {
if (!unique) throw new Error('Unique is missing');
if (!data) throw new Error('Data is missing');
const { error } = await this.#dataSource.update(unique, data);
if (!error) {
- const notification = { data: { message: `Notification settings saved` } };
+ const notification = {
+ data: { message: this.#localize.term('notifications_notificationsSavedFor', documentName) },
+ };
this.#notificationContext?.peek('positive', notification);
}
return { error };
From 7398f126f78eb0685f3107f227b933b6d35370d8 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:32:07 +0200
Subject: [PATCH 14/31] docs: fix some jsdocs warnings
---
.../repository/document-notifications.server.data.ts | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts
index 7ee5f2bce7..be7cd0511c 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/notifications/repository/document-notifications.server.data.ts
@@ -6,7 +6,6 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
/**
* A data source for the Document Culture and Hostnames that fetches data from the server
* @class UmbDocumentNotificationsServerDataSource
- * @implements {RepositoryDetailDataSource}
*/
export class UmbDocumentNotificationsServerDataSource {
#host: UmbControllerHost;
@@ -22,7 +21,7 @@ export class UmbDocumentNotificationsServerDataSource {
/**
* Fetches the Culture and Hostnames for the given Document unique
- * @param {string} unique
+ * @param {string} unique - The unique identifier of the Document
* @memberof UmbDocumentNotificationsServerDataSource
*/
async read(unique: string) {
@@ -32,8 +31,8 @@ export class UmbDocumentNotificationsServerDataSource {
/**
* Updates Culture and Hostnames for the given Document unique
- * @param {string} unique
- * @param {UpdateDocumentNotificationsRequestModel} data
+ * @param {string} unique - The unique identifier of the Document
+ * @param {UpdateDocumentNotificationsRequestModel} data - The data to update
* @memberof UmbDocumentNotificationsServerDataSource
*/
async update(unique: string, data: UpdateDocumentNotificationsRequestModel) {
From 8b9373f5520e6d094baaec757c902d32b201f426 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:33:52 +0200
Subject: [PATCH 15/31] chore: remove unused export
---
.../src/packages/documents/documents/modals/manifests.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts
index 0ca21d07f0..a63325aff9 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/manifests.ts
@@ -5,7 +5,6 @@ export const UMB_DOCUMENT_PUBLISH_MODAL_ALIAS = 'Umb.Modal.DocumentPublish';
export const UMB_DOCUMENT_UNPUBLISH_MODAL_ALIAS = 'Umb.Modal.DocumentUnpublish';
export const UMB_DOCUMENT_SCHEDULE_MODAL_ALIAS = 'Umb.Modal.DocumentSchedule';
export const UMB_DOCUMENT_PUBLISH_WITH_DESCENDANTS_MODAL_ALIAS = 'Umb.Modal.DocumentPublishWithDescendants';
-export const UMB_DOCUMENT_NOTIFICATIONS_MODAL_ALIAS = 'Umb.Modal.DocumentNotifications';
const modals: Array = [
{
From d9d6611bd8cf70aec23bd1ce400449da741aa9c3 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Tue, 17 Sep 2024 11:19:20 +0200
Subject: [PATCH 16/31] MultipleTextString: add new line on pressing enter
---
.../input-multiple-text-string-item.element.ts | 9 +++++++++
.../input-multiple-text-string.element.ts | 1 +
2 files changed, 10 insertions(+)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts
index 9087d92a28..d2f07b510f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string-item.element.ts
@@ -49,6 +49,14 @@ export class UmbInputMultipleTextStringItemElement extends UUIFormControlMixin(U
this.dispatchEvent(new UmbInputEvent());
}
+ #onKeydown(event: KeyboardEvent) {
+ event.stopPropagation();
+ const target = event.currentTarget as UUIInputElement;
+ if (event.key === 'Enter' && target.value) {
+ this.dispatchEvent(new CustomEvent('enter'));
+ }
+ }
+
#onChange(event: UUIInputEvent) {
event.stopPropagation();
const target = event.currentTarget as UUIInputElement;
@@ -84,6 +92,7 @@ export class UmbInputMultipleTextStringItemElement extends UUIFormControlMixin(U
id="input"
label="Value"
value=${this.value}
+ @keydown=${this.#onKeydown}
@input=${this.#onInput}
@change=${this.#onChange}
?disabled=${this.disabled}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts
index 69104fce20..d90b113355 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-text-string-input/input-multiple-text-string.element.ts
@@ -209,6 +209,7 @@ export class UmbInputMultipleTextStringElement extends UmbFormControlMixin this.#deleteItem(event, index)}
@input=${(event: UmbInputEvent) => this.#onInput(event, index)}>
From 906a0ff4694afabe7edfc3fe168cea05b8ecfb26 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Wed, 21 Aug 2024 14:27:03 +0200
Subject: [PATCH 17/31] extension setup
---
.../interfaces/file-upload-preview.interface.ts | 4 ++++
.../packages/core/extension-registry/interfaces/index.ts | 1 +
.../extension-registry/models/file-upload-preview.model.ts | 7 +++++++
.../src/packages/core/extension-registry/models/index.ts | 3 +++
4 files changed, 15 insertions(+)
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/file-upload-preview.interface.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/file-upload-preview.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/file-upload-preview.interface.ts
new file mode 100644
index 0000000000..5b3fc46b66
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/file-upload-preview.interface.ts
@@ -0,0 +1,4 @@
+export interface UmbFileUploadPreviewElement extends HTMLElement {
+ path?: string;
+ file?: File;
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/index.ts
index 7585b5001b..593ea53bc5 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/index.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/interfaces/index.ts
@@ -1,6 +1,7 @@
export * from './block-editor-custom-view-element.interface.js';
export * from './dashboard-element.interface.js';
export * from './external-login-provider-element.interface.js';
+export * from './file-upload-preview.interface.js';
export * from './menu-item-element.interface.js';
export * from './modal-extension-element.interface.js';
export * from './property-editor-ui-element.interface.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
new file mode 100644
index 0000000000..9c5bba9bc0
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
@@ -0,0 +1,7 @@
+import type { UmbFileUploadPreviewElement } from '../interfaces/file-upload-preview.interface.js';
+import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api';
+
+export interface ManifestFileUploadPreview extends ManifestElement {
+ type: 'fileUploadPreview';
+ forMimeTypes?: Array;
+}
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 bcec4417ea..e0d4de3ae9 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
@@ -23,6 +23,7 @@ import type {
} from './entity-action.model.js';
import type { ManifestDynamicRootOrigin, ManifestDynamicRootQueryStep } from './dynamic-root.model.js';
import type { ManifestEntityBulkAction } from './entity-bulk-action.model.js';
+import type { ManifestFileUploadPreview } from './file-upload-preview.model.js';
import type { ManifestExternalLoginProvider } from './external-login-provider.model.js';
import type { ManifestGlobalContext } from './global-context.model.js';
import type { ManifestHeaderApp, ManifestHeaderAppButtonKind } from './header-app.model.js';
@@ -90,6 +91,7 @@ export type * from './entity-action.model.js';
export type * from './entity-bulk-action.model.js';
export type * from './entity-user-permission.model.js';
export type * from './entry-point.model.js';
+export type * from './file-upload-preview.model.js';
export type * from './external-login-provider.model.js';
export type * from './global-context.model.js';
export type * from './header-app.model.js';
@@ -176,6 +178,7 @@ export type ManifestTypes =
| ManifestEntityBulkAction
| ManifestEntityUserPermission
| ManifestEntryPoint
+ | ManifestFileUploadPreview
| ManifestExternalLoginProvider
| ManifestGlobalContext
| ManifestGranularUserPermission
From 7b9d530bf8870cc668db410a9b8c133e9e592b2e Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Wed, 21 Aug 2024 14:27:37 +0200
Subject: [PATCH 18/31] extension example
---
.../input-upload-field/manifests.ts | 12 +++++
.../input-upload-field/test.element.ts | 48 +++++++++++++++++++
.../upload-field/manifests.ts | 17 ++++++-
.../upload-field/test.element.ts | 48 +++++++++++++++++++
4 files changed, 123 insertions(+), 2 deletions(-)
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts
new file mode 100644
index 0000000000..12e70fe184
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts
@@ -0,0 +1,12 @@
+import type { ManifestFileUploadPreview } from '@umbraco-cms/backoffice/extension-registry';
+const previews: Array = [
+ {
+ type: 'fileUploadPreview',
+ alias: 'My PDF Showcase',
+ name: 'PDF Showcase',
+ forMimeTypes: ['application/pdf'],
+ },
+];
+console.log('export..');
+
+export const manifests = [...previews];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts
new file mode 100644
index 0000000000..09adc8addc
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts
@@ -0,0 +1,48 @@
+import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+
+@customElement('umb-pdf-preview')
+export class UmbPDFPreviewElement extends UmbLitElement {
+ @property({ attribute: false })
+ file?: File;
+
+ @property({ type: String })
+ path?: string;
+
+ override render() {
+ if (!this.path) return html` `;
+
+ return html`This is the path: ${this.path} & the file is named ${this.file?.name}`;
+ }
+
+ static override styles = [
+ css`
+ :host {
+ display: flex;
+ background-color: #fff;
+ background-image: url('data:image/svg+xml;charset=utf-8, ');
+ background-repeat: repeat;
+ background-size: 10px 10px;
+ height: 100%;
+ min-height: 240px;
+ position: relative;
+ width: fit-content;
+ max-height: 240px;
+ }
+
+ img {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+ width: auto;
+ height: auto;
+ }
+ `,
+ ];
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-pdf-preview': UmbPDFPreviewElement;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts
index 311f8d61b9..a5aca4d748 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts
@@ -1,5 +1,9 @@
import { manifest as schemaManifest } from './Umbraco.UploadField.js';
-import type { ManifestPropertyEditorUi, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
+import type {
+ ManifestFileUploadPreview,
+ ManifestPropertyEditorUi,
+ ManifestTypes,
+} from '@umbraco-cms/backoffice/extension-registry';
const manifest: ManifestPropertyEditorUi = {
type: 'propertyEditorUi',
@@ -14,4 +18,13 @@ const manifest: ManifestPropertyEditorUi = {
},
};
-export const manifests: Array = [manifest, schemaManifest];
+/** Testing */
+const previews: ManifestFileUploadPreview = {
+ type: 'fileUploadPreview',
+ alias: 'My PDF Showcase',
+ name: 'PDF Showcase',
+ element: () => import('./test.element.js'),
+ forMimeTypes: ['application/pdf'],
+};
+
+export const manifests: Array = [manifest, schemaManifest, previews];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts
new file mode 100644
index 0000000000..65072a1316
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts
@@ -0,0 +1,48 @@
+import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+
+@customElement('umb-pdf-preview')
+export default class UmbPDFPreviewElement extends UmbLitElement {
+ @property({ attribute: false })
+ file?: File;
+
+ @property({ type: String })
+ path?: string;
+
+ override render() {
+ if (!this.path) return html` `;
+
+ return html`This is the path: ${this.path} & the file is named ${this.file?.name}`;
+ }
+
+ static override styles = [
+ css`
+ :host {
+ display: flex;
+ background-color: #fff;
+ background-image: url('data:image/svg+xml;charset=utf-8, ');
+ background-repeat: repeat;
+ background-size: 10px 10px;
+ height: 100%;
+ min-height: 240px;
+ position: relative;
+ width: fit-content;
+ max-height: 240px;
+ }
+
+ img {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+ width: auto;
+ height: auto;
+ }
+ `,
+ ];
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-pdf-preview': UmbPDFPreviewElement;
+ }
+}
From 258afb5f888ffa7e82180f002005f4d75a0b3e12 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Wed, 21 Aug 2024 14:27:55 +0200
Subject: [PATCH 19/31] property editor upload field loading previews
---
.../input-upload-field.element.ts | 47 ++++++++++++++++++-
1 file changed, 46 insertions(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index 2d73135ec5..84150986e5 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -17,6 +17,9 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
import './input-upload-field-file.element.js';
+import { UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
+import { type ManifestFileUploadPreview, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
+import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api';
@customElement('umb-input-upload-field')
export class UmbInputUploadFieldElement extends UmbLitElement {
@@ -56,6 +59,17 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
#manager = new UmbTemporaryFileManager(this);
+ #previewers = new UmbArrayState(>[], (x) => x.alias);
+
+ constructor() {
+ super();
+ new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'fileUploadPreview', null, (previews) => {
+ previews.forEach((preview) => {
+ this.#previewers.appendOne(preview.manifest);
+ });
+ });
+ }
+
#setExtensions(extensions: Array) {
if (!extensions?.length) {
this._extensions = undefined;
@@ -71,6 +85,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
temporaryUnique: UmbId.new(),
file: e.detail.files[0],
};
+
const upload = this.#manager.uploadOne(item);
const reader = new FileReader();
@@ -111,6 +126,8 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
#renderFile(src: string, file?: File) {
const extension = this.#getFileExtensionFromPath(src);
+ const element = this.#getElementFromFilePath(src);
+ console.log('element', element);
return html`
@@ -125,7 +142,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
`;
/**
- *
+ * @returns {string} The template for the file extension.
*/
function getElementTemplate() {
switch (extension) {
@@ -143,6 +160,34 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
}
}
+ #getElementFromFilePath(path: string) {
+ const previews = this.#previewers.getValue();
+ const fallbackElement = previews.find((preview) => !preview.forMimeTypes?.length)?.element;
+
+ // Extract the the MIME type from the data url and get corresponding previewer.
+ if (path.startsWith('data:')) {
+ const mimeType = path.substring(5, path.indexOf(';'));
+
+ const manifest = previews.find((preview) => {
+ return preview.forMimeTypes?.find((type) => {
+ const snippet = type.replace('*', '');
+ if (mimeType.startsWith(snippet)) return preview;
+ if (mimeType.endsWith(snippet)) return preview;
+ return undefined;
+ });
+ });
+
+ if (manifest) return manifest.element;
+ return fallbackElement;
+ }
+
+ // Extract the file extension from the path
+ const extension = path.split('.').pop()?.toLowerCase();
+ if (!extension) return fallbackElement;
+
+ return fallbackElement;
+ }
+
#getFileExtensionFromPath(path: string): 'audio' | 'video' | 'image' | 'svg' | 'file' {
// Extract the MIME type from the data URL
if (path.startsWith('data:')) {
From a05527961c62b7c69a65b6bbcf4acae93be434d6 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Fri, 23 Aug 2024 11:24:13 +0200
Subject: [PATCH 20/31] mimetype utils
---
.../components/input-upload-field/utils.ts | 829 ++++++++++++++++++
1 file changed, 829 insertions(+)
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/utils.ts
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/utils.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/utils.ts
new file mode 100644
index 0000000000..42b8375b24
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/utils.ts
@@ -0,0 +1,829 @@
+/**
+ * @param {string} extension - The file extension to convert
+ * @returns { string | null } The MIME type or null if the mime type is not found
+ */
+export function getMimeTypeFromExtension(extension: string): string | null {
+ // Define a map of file extensions to MIME types
+ const mimeTypes: { [key: string]: string } = {
+ '.123': 'application/vnd.lotus-1-2-3',
+ '.3dml': 'text/vnd.in3d.3dml',
+ '.3g2': 'video/3gpp2',
+ '.3gp': 'video/3gpp',
+ '.a': 'application/octet-stream',
+ '.aab': 'application/x-authorware-bin',
+ '.aac': 'audio/x-aac',
+ '.aam': 'application/x-authorware-map',
+ '.aas': 'application/x-authorware-seg',
+ '.abw': 'application/x-abiword',
+ '.acc': 'application/vnd.americandynamics.acc',
+ '.ace': 'application/x-ace-compressed',
+ '.acu': 'application/vnd.acucobol',
+ '.acutc': 'application/vnd.acucorp',
+ '.adp': 'audio/adpcm',
+ '.aep': 'application/vnd.audiograph',
+ '.afm': 'application/x-font-type1',
+ '.afp': 'application/vnd.ibm.modcap',
+ '.ai': 'application/postscript',
+ '.aif': 'audio/x-aiff',
+ '.aifc': 'audio/x-aiff',
+ '.aiff': 'audio/x-aiff',
+ '.air': 'application/vnd.adobe.air-application-installer-package+zip',
+ '.ami': 'application/vnd.amiga.ami',
+ '.apk': 'application/vnd.android.package-archive',
+ '.application': 'application/x-ms-application',
+ '.apr': 'application/vnd.lotus-approach',
+ '.asc': 'application/pgp-signature',
+ '.asf': 'video/x-ms-asf',
+ '.asm': 'text/x-asm',
+ '.aso': 'application/vnd.accpac.simply.aso',
+ '.asx': 'video/x-ms-asf',
+ '.atc': 'application/vnd.acucorp',
+ '.atom': 'application/atom+xml',
+ '.atomcat': 'application/atomcat+xml',
+ '.atomsvc': 'application/atomsvc+xml',
+ '.atx': 'application/vnd.antix.game-component',
+ '.au': 'audio/basic',
+ '.avi': 'video/x-msvideo',
+ '.aw': 'application/applixware',
+ '.azf': 'application/vnd.airzip.filesecure.azf',
+ '.azs': 'application/vnd.airzip.filesecure.azs',
+ '.azw': 'application/vnd.amazon.ebook',
+ '.bat': 'application/x-msdownload',
+ '.bcpio': 'application/x-bcpio',
+ '.bdf': 'application/x-font-bdf',
+ '.bdm': 'application/vnd.syncml.dm+wbxml',
+ '.bh2': 'application/vnd.fujitsu.oasysprs',
+ '.bin': 'application/octet-stream',
+ '.bmi': 'application/vnd.bmi',
+ '.bmp': 'image/bmp',
+ '.book': 'application/vnd.framemaker',
+ '.box': 'application/vnd.previewsystems.box',
+ '.boz': 'application/x-bzip2',
+ '.bpk': 'application/octet-stream',
+ '.btif': 'image/prs.btif',
+ '.bz': 'application/x-bzip',
+ '.bz2': 'application/x-bzip2',
+ '.c': 'text/x-c',
+ '.c4d': 'application/vnd.clonk.c4group',
+ '.c4f': 'application/vnd.clonk.c4group',
+ '.c4g': 'application/vnd.clonk.c4group',
+ '.c4p': 'application/vnd.clonk.c4group',
+ '.c4u': 'application/vnd.clonk.c4group',
+ '.cab': 'application/vnd.ms-cab-compressed',
+ '.car': 'application/vnd.curl.car',
+ '.cat': 'application/vnd.ms-pki.seccat',
+ '.cc': 'text/x-c',
+ '.cct': 'application/x-director',
+ '.ccxml': 'application/ccxml+xml',
+ '.cdbcmsg': 'application/vnd.contact.cmsg',
+ '.cdf': 'application/x-netcdf',
+ '.cdkey': 'application/vnd.mediastation.cdkey',
+ '.cdx': 'chemical/x-cdx',
+ '.cdxml': 'application/vnd.chemdraw+xml',
+ '.cdy': 'application/vnd.cinderella',
+ '.cer': 'application/pkix-cert',
+ '.cgm': 'image/cgm',
+ '.chat': 'application/x-chat',
+ '.chm': 'application/vnd.ms-htmlhelp',
+ '.chrt': 'application/vnd.kde.kchart',
+ '.cif': 'chemical/x-cif',
+ '.cii': 'application/vnd.anser-web-certificate-issue-initiation',
+ '.cil': 'application/vnd.ms-artgalry',
+ '.cla': 'application/vnd.claymore',
+ '.class': 'application/java-vm',
+ '.clkk': 'application/vnd.crick.clicker.keyboard',
+ '.clkp': 'application/vnd.crick.clicker.palette',
+ '.clkt': 'application/vnd.crick.clicker.template',
+ '.clkw': 'application/vnd.crick.clicker.wordbank',
+ '.clkx': 'application/vnd.crick.clicker',
+ '.clp': 'application/x-msclip',
+ '.cmc': 'application/vnd.cosmocaller',
+ '.cmdf': 'chemical/x-cmdf',
+ '.cml': 'chemical/x-cml',
+ '.cmp': 'application/vnd.yellowriver-custom-menu',
+ '.cmx': 'image/x-cmx',
+ '.cod': 'application/vnd.rim.cod',
+ '.com': 'application/x-msdownload',
+ '.conf': 'text/plain',
+ '.cpio': 'application/x-cpio',
+ '.cpp': 'text/x-c',
+ '.cpt': 'application/mac-compactpro',
+ '.crd': 'application/x-mscardfile',
+ '.crl': 'application/pkix-crl',
+ '.crt': 'application/x-x509-ca-cert',
+ '.csh': 'application/x-csh',
+ '.csml': 'chemical/x-csml',
+ '.csp': 'application/vnd.commonspace',
+ '.css': 'text/css',
+ '.cst': 'application/x-director',
+ '.csv': 'text/csv',
+ '.cu': 'application/cu-seeme',
+ '.curl': 'text/vnd.curl',
+ '.cww': 'application/prs.cww',
+ '.cxt': 'application/x-director',
+ '.cxx': 'text/x-c',
+ '.daf': 'application/vnd.mobius.daf',
+ '.dataless': 'application/vnd.fdsn.seed',
+ '.davmount': 'application/davmount+xml',
+ '.dcr': 'application/x-director',
+ '.dcurl': 'text/vnd.curl.dcurl',
+ '.dd2': 'application/vnd.oma.dd2+xml',
+ '.ddd': 'application/vnd.fujixerox.ddd',
+ '.deb': 'application/x-debian-package',
+ '.def': 'text/plain',
+ '.deploy': 'application/octet-stream',
+ '.der': 'application/x-x509-ca-cert',
+ '.dfac': 'application/vnd.dreamfactory',
+ '.dic': 'text/x-c',
+ '.diff': 'text/plain',
+ '.dir': 'application/x-director',
+ '.dis': 'application/vnd.mobius.dis',
+ '.dist': 'application/octet-stream',
+ '.distz': 'application/octet-stream',
+ '.djv': 'image/vnd.djvu',
+ '.djvu': 'image/vnd.djvu',
+ '.dll': 'application/x-msdownload',
+ '.dmg': 'application/octet-stream',
+ '.dms': 'application/octet-stream',
+ '.dna': 'application/vnd.dna',
+ '.doc': 'application/msword',
+ '.docm': 'application/vnd.ms-word.document.macroenabled.12',
+ '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ '.dot': 'application/msword',
+ '.dotm': 'application/vnd.ms-word.template.macroenabled.12',
+ '.dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
+ '.dp': 'application/vnd.osgi.dp',
+ '.dpg': 'application/vnd.dpgraph',
+ '.dsc': 'text/prs.lines.tag',
+ '.dtb': 'application/x-dtbook+xml',
+ '.dtd': 'application/xml-dtd',
+ '.dts': 'audio/vnd.dts',
+ '.dtshd': 'audio/vnd.dts.hd',
+ '.dump': 'application/octet-stream',
+ '.dvi': 'application/x-dvi',
+ '.dwf': 'model/vnd.dwf',
+ '.dwg': 'image/vnd.dwg',
+ '.dxf': 'image/vnd.dxf',
+ '.dxp': 'application/vnd.spotfire.dxp',
+ '.dxr': 'application/x-director',
+ '.ecelp4800': 'audio/vnd.nuera.ecelp4800',
+ '.ecelp7470': 'audio/vnd.nuera.ecelp7470',
+ '.ecelp9600': 'audio/vnd.nuera.ecelp9600',
+ '.ecma': 'application/ecmascript',
+ '.edm': 'application/vnd.novadigm.edm',
+ '.edx': 'application/vnd.novadigm.edx',
+ '.efif': 'application/vnd.picsel',
+ '.ei6': 'application/vnd.pg.osasli',
+ '.elc': 'application/octet-stream',
+ '.eml': 'message/rfc822',
+ '.emma': 'application/emma+xml',
+ '.eol': 'audio/vnd.digital-winds',
+ '.eot': 'application/vnd.ms-fontobject',
+ '.eps': 'application/postscript',
+ '.epub': 'application/epub+zip',
+ '.es3': 'application/vnd.eszigno3+xml',
+ '.esf': 'application/vnd.epson.esf',
+ '.et3': 'application/vnd.eszigno3+xml',
+ '.etx': 'text/x-setext',
+ '.exe': 'application/x-msdownload',
+ '.ext': 'application/vnd.novadigm.ext',
+ '.ez': 'application/andrew-inset',
+ '.ez2': 'application/vnd.ezpix-album',
+ '.ez3': 'application/vnd.ezpix-package',
+ '.f': 'text/x-fortran',
+ '.f4v': 'video/x-f4v',
+ '.f77': 'text/x-fortran',
+ '.f90': 'text/x-fortran',
+ '.fbs': 'image/vnd.fastbidsheet',
+ '.fdf': 'application/vnd.fdf',
+ '.fe_launch': 'application/vnd.denovo.fcselayout-link',
+ '.fg5': 'application/vnd.fujitsu.oasysgp',
+ '.fgd': 'application/x-director',
+ '.fh': 'image/x-freehand',
+ '.fh4': 'image/x-freehand',
+ '.fh5': 'image/x-freehand',
+ '.fh7': 'image/x-freehand',
+ '.fhc': 'image/x-freehand',
+ '.fig': 'application/x-xfig',
+ '.fli': 'video/x-fli',
+ '.flo': 'application/vnd.micrografx.flo',
+ '.flv': 'video/x-flv',
+ '.flw': 'application/vnd.kde.kivio',
+ '.flx': 'text/vnd.fmi.flexstor',
+ '.fly': 'text/vnd.fly',
+ '.fm': 'application/vnd.framemaker',
+ '.fnc': 'application/vnd.frogans.fnc',
+ '.for': 'text/x-fortran',
+ '.fpx': 'image/vnd.fpx',
+ '.frame': 'application/vnd.framemaker',
+ '.fsc': 'application/vnd.fsc.weblaunch',
+ '.fst': 'image/vnd.fst',
+ '.ftc': 'application/vnd.fluxtime.clip',
+ '.fti': 'application/vnd.anser-web-funds-transfer-initiation',
+ '.fvt': 'video/vnd.fvt',
+ '.fzs': 'application/vnd.fuzzysheet',
+ '.g3': 'image/g3fax',
+ '.gac': 'application/vnd.groove-account',
+ '.gdl': 'model/vnd.gdl',
+ '.geo': 'application/vnd.dynageo',
+ '.gex': 'application/vnd.geometry-explorer',
+ '.ggb': 'application/vnd.geogebra.file',
+ '.ggt': 'application/vnd.geogebra.tool',
+ '.ghf': 'application/vnd.groove-help',
+ '.gif': 'image/gif',
+ '.gim': 'application/vnd.groove-identity-message',
+ '.gmx': 'application/vnd.gmx',
+ '.gnumeric': 'application/x-gnumeric',
+ '.gph': 'application/vnd.flographit',
+ '.gqf': 'application/vnd.grafeq',
+ '.gqs': 'application/vnd.grafeq',
+ '.gram': 'application/srgs',
+ '.gre': 'application/vnd.geometry-explorer',
+ '.grv': 'application/vnd.groove-injector',
+ '.grxml': 'application/srgs+xml',
+ '.gsf': 'application/x-font-ghostscript',
+ '.gtar': 'application/x-gtar',
+ '.gtm': 'application/vnd.groove-tool-message',
+ '.gtw': 'model/vnd.gtw',
+ '.gv': 'text/vnd.graphviz',
+ '.gz': 'application/x-gzip',
+ '.h': 'text/x-c',
+ '.h261': 'video/h261',
+ '.h263': 'video/h263',
+ '.h264': 'video/h264',
+ '.hbci': 'application/vnd.hbci',
+ '.hdf': 'application/x-hdf',
+ '.hh': 'text/x-c',
+ '.hlp': 'application/winhlp',
+ '.hpgl': 'application/vnd.hp-hpgl',
+ '.hpid': 'application/vnd.hp-hpid',
+ '.hps': 'application/vnd.hp-hps',
+ '.hqx': 'application/mac-binhex40',
+ '.htke': 'application/vnd.kenameaapp',
+ '.htm': 'text/html',
+ '.html': 'text/html',
+ '.hvd': 'application/vnd.yamaha.hv-dic',
+ '.hvp': 'application/vnd.yamaha.hv-voice',
+ '.hvs': 'application/vnd.yamaha.hv-script',
+ '.icc': 'application/vnd.iccprofile',
+ '.ice': 'x-conference/x-cooltalk',
+ '.icm': 'application/vnd.iccprofile',
+ '.ico': 'image/x-icon',
+ '.ics': 'text/calendar',
+ '.ief': 'image/ief',
+ '.ifb': 'text/calendar',
+ '.ifm': 'application/vnd.shana.informed.formdata',
+ '.iges': 'model/iges',
+ '.igl': 'application/vnd.igloader',
+ '.igs': 'model/iges',
+ '.igx': 'application/vnd.micrografx.igx',
+ '.iif': 'application/vnd.shana.informed.interchange',
+ '.imp': 'application/vnd.accpac.simply.imp',
+ '.ims': 'application/vnd.ms-ims',
+ '.in': 'text/plain',
+ '.ipk': 'application/vnd.shana.informed.package',
+ '.irm': 'application/vnd.ibm.rights-management',
+ '.irp': 'application/vnd.irepository.package+xml',
+ '.iso': 'application/octet-stream',
+ '.itp': 'application/vnd.shana.informed.formtemplate',
+ '.ivp': 'application/vnd.immervision-ivp',
+ '.ivu': 'application/vnd.immervision-ivu',
+ '.jad': 'text/vnd.sun.j2me.app-descriptor',
+ '.jam': 'application/vnd.jam',
+ '.jar': 'application/java-archive',
+ '.java': 'text/x-java-source',
+ '.jisp': 'application/vnd.jisp',
+ '.jlt': 'application/vnd.hp-jlyt',
+ '.jnlp': 'application/x-java-jnlp-file',
+ '.joda': 'application/vnd.joost.joda-archive',
+ '.jpe': 'image/jpeg',
+ '.jpeg': 'image/jpeg',
+ '.jpg': 'image/jpeg',
+ '.jpgm': 'video/jpm',
+ '.jpgv': 'video/jpeg',
+ '.jpm': 'video/jpm',
+ '.js': 'application/javascript',
+ '.json': 'application/json',
+ '.kar': 'audio/midi',
+ '.karbon': 'application/vnd.kde.karbon',
+ '.kfo': 'application/vnd.kde.kformula',
+ '.kia': 'application/vnd.kidspiration',
+ '.kil': 'application/x-killustrator',
+ '.kml': 'application/vnd.google-earth.kml+xml',
+ '.kmz': 'application/vnd.google-earth.kmz',
+ '.kne': 'application/vnd.kinar',
+ '.knp': 'application/vnd.kinar',
+ '.kon': 'application/vnd.kde.kontour',
+ '.kpr': 'application/vnd.kde.kpresenter',
+ '.kpt': 'application/vnd.kde.kpresenter',
+ '.ksh': 'text/plain',
+ '.ksp': 'application/vnd.kde.kspread',
+ '.ktr': 'application/vnd.kahootz',
+ '.ktz': 'application/vnd.kahootz',
+ '.kwd': 'application/vnd.kde.kword',
+ '.kwt': 'application/vnd.kde.kword',
+ '.latex': 'application/x-latex',
+ '.lbd': 'application/vnd.llamagraphics.life-balance.desktop',
+ '.lbe': 'application/vnd.llamagraphics.life-balance.exchange+xml',
+ '.les': 'application/vnd.hhe.lesson-player',
+ '.lha': 'application/octet-stream',
+ '.link66': 'application/vnd.route66.link66+xml',
+ '.list': 'text/plain',
+ '.list3820': 'application/vnd.ibm.modcap',
+ '.listafp': 'application/vnd.ibm.modcap',
+ '.log': 'text/plain',
+ '.lostxml': 'application/lost+xml',
+ '.lrf': 'application/octet-stream',
+ '.lrm': 'application/vnd.ms-lrm',
+ '.ltf': 'application/vnd.frogans.ltf',
+ '.lvp': 'audio/vnd.lucent.voice',
+ '.lwp': 'application/vnd.lotus-wordpro',
+ '.lzh': 'application/octet-stream',
+ '.m13': 'application/x-msmediaview',
+ '.m14': 'application/x-msmediaview',
+ '.m1v': 'video/mpeg',
+ '.m2a': 'audio/mpeg',
+ '.m2v': 'video/mpeg',
+ '.m3a': 'audio/mpeg',
+ '.m3u': 'audio/x-mpegurl',
+ '.m4u': 'video/vnd.mpegurl',
+ '.m4v': 'video/x-m4v',
+ '.ma': 'application/mathematica',
+ '.mag': 'application/vnd.ecowin.chart',
+ '.maker': 'application/vnd.framemaker',
+ '.man': 'text/troff',
+ '.mathml': 'application/mathml+xml',
+ '.mb': 'application/mathematica',
+ '.mbk': 'application/vnd.mobius.mbk',
+ '.mbox': 'application/mbox',
+ '.mc1': 'application/vnd.medcalcdata',
+ '.mcd': 'application/vnd.mcd',
+ '.mcurl': 'text/vnd.curl.mcurl',
+ '.mdb': 'application/x-msaccess',
+ '.mdi': 'image/vnd.ms-modi',
+ '.me': 'text/troff',
+ '.mesh': 'model/mesh',
+ '.mfm': 'application/vnd.mfmp',
+ '.mgz': 'application/vnd.proteus.magazine',
+ '.mht': 'message/rfc822',
+ '.mhtml': 'message/rfc822',
+ '.mid': 'audio/midi',
+ '.midi': 'audio/midi',
+ '.mif': 'application/vnd.mif',
+ '.mime': 'message/rfc822',
+ '.mj2': 'video/mj2',
+ '.mjp2': 'video/mj2',
+ '.mlp': 'application/vnd.dolby.mlp',
+ '.mmd': 'application/vnd.chipnuts.karaoke-mmd',
+ '.mmf': 'application/vnd.smaf',
+ '.mmr': 'image/vnd.fujixerox.edmics-mmr',
+ '.mny': 'application/x-msmoney',
+ '.mobi': 'application/x-mobipocket-ebook',
+ '.mov': 'video/quicktime',
+ '.movie': 'video/x-sgi-movie',
+ '.mp2': 'audio/mpeg',
+ '.mp2a': 'audio/mpeg',
+ '.mp3': 'audio/mpeg',
+ '.mp4': 'video/mp4',
+ '.mp4a': 'audio/mp4',
+ '.mp4s': 'application/mp4',
+ '.mp4v': 'video/mp4',
+ '.mpa': 'video/mpeg',
+ '.mpc': 'application/vnd.mophun.certificate',
+ '.mpe': 'video/mpeg',
+ '.mpeg': 'video/mpeg',
+ '.mpg': 'video/mpeg',
+ '.mpg4': 'video/mp4',
+ '.mpga': 'audio/mpeg',
+ '.mpkg': 'application/vnd.apple.installer+xml',
+ '.mpm': 'application/vnd.blueice.multipass',
+ '.mpn': 'application/vnd.mophun.application',
+ '.mpp': 'application/vnd.ms-project',
+ '.mpt': 'application/vnd.ms-project',
+ '.mpy': 'application/vnd.ibm.minipay',
+ '.mqy': 'application/vnd.mobius.mqy',
+ '.mrc': 'application/marc',
+ '.ms': 'text/troff',
+ '.mscml': 'application/mediaservercontrol+xml',
+ '.mseed': 'application/vnd.fdsn.mseed',
+ '.mseq': 'application/vnd.mseq',
+ '.msf': 'application/vnd.epson.msf',
+ '.msh': 'model/mesh',
+ '.msi': 'application/x-msdownload',
+ '.msl': 'application/vnd.mobius.msl',
+ '.msty': 'application/vnd.muvee.style',
+ '.mts': 'model/vnd.mts',
+ '.mus': 'application/vnd.musician',
+ '.musicxml': 'application/vnd.recordare.musicxml+xml',
+ '.mvb': 'application/x-msmediaview',
+ '.mwf': 'application/vnd.mfer',
+ '.mxf': 'application/mxf',
+ '.mxl': 'application/vnd.recordare.musicxml',
+ '.mxml': 'application/xv+xml',
+ '.mxs': 'application/vnd.triscape.mxs',
+ '.mxu': 'video/vnd.mpegurl',
+ '.n-gage': 'application/vnd.nokia.n-gage.symbian.install',
+ '.nb': 'application/mathematica',
+ '.nc': 'application/x-netcdf',
+ '.ncx': 'application/x-dtbncx+xml',
+ '.ngdat': 'application/vnd.nokia.n-gage.data',
+ '.nlu': 'application/vnd.neurolanguage.nlu',
+ '.nml': 'application/vnd.enliven',
+ '.nnd': 'application/vnd.noblenet-directory',
+ '.nns': 'application/vnd.noblenet-sealer',
+ '.nnw': 'application/vnd.noblenet-web',
+ '.npx': 'image/vnd.net-fpx',
+ '.nsf': 'application/vnd.lotus-notes',
+ '.nws': 'message/rfc822',
+ '.o': 'application/octet-stream',
+ '.oa2': 'application/vnd.fujitsu.oasys2',
+ '.oa3': 'application/vnd.fujitsu.oasys3',
+ '.oas': 'application/vnd.fujitsu.oasys',
+ '.obd': 'application/x-msbinder',
+ '.obj': 'application/octet-stream',
+ '.oda': 'application/oda',
+ '.odb': 'application/vnd.oasis.opendocument.database',
+ '.odc': 'application/vnd.oasis.opendocument.chart',
+ '.odf': 'application/vnd.oasis.opendocument.formula',
+ '.odft': 'application/vnd.oasis.opendocument.formula-template',
+ '.odg': 'application/vnd.oasis.opendocument.graphics',
+ '.odi': 'application/vnd.oasis.opendocument.image',
+ '.odp': 'application/vnd.oasis.opendocument.presentation',
+ '.ods': 'application/vnd.oasis.opendocument.spreadsheet',
+ '.odt': 'application/vnd.oasis.opendocument.text',
+ '.oga': 'audio/ogg',
+ '.ogg': 'audio/ogg',
+ '.ogv': 'video/ogg',
+ '.ogx': 'application/ogg',
+ '.onepkg': 'application/onenote',
+ '.onetmp': 'application/onenote',
+ '.onetoc': 'application/onenote',
+ '.onetoc2': 'application/onenote',
+ '.opf': 'application/oebps-package+xml',
+ '.oprc': 'application/vnd.palm',
+ '.org': 'application/vnd.lotus-organizer',
+ '.osf': 'application/vnd.yamaha.openscoreformat',
+ '.osfpvg': 'application/vnd.yamaha.openscoreformat.osfpvg+xml',
+ '.otc': 'application/vnd.oasis.opendocument.chart-template',
+ '.otf': 'application/x-font-otf',
+ '.otg': 'application/vnd.oasis.opendocument.graphics-template',
+ '.oth': 'application/vnd.oasis.opendocument.text-web',
+ '.oti': 'application/vnd.oasis.opendocument.image-template',
+ '.otm': 'application/vnd.oasis.opendocument.text-master',
+ '.otp': 'application/vnd.oasis.opendocument.presentation-template',
+ '.ots': 'application/vnd.oasis.opendocument.spreadsheet-template',
+ '.ott': 'application/vnd.oasis.opendocument.text-template',
+ '.oxt': 'application/vnd.openofficeorg.extension',
+ '.p': 'text/x-pascal',
+ '.p10': 'application/pkcs10',
+ '.p12': 'application/x-pkcs12',
+ '.p7b': 'application/x-pkcs7-certificates',
+ '.p7c': 'application/pkcs7-mime',
+ '.p7m': 'application/pkcs7-mime',
+ '.p7r': 'application/x-pkcs7-certreqresp',
+ '.p7s': 'application/pkcs7-signature',
+ '.pas': 'text/x-pascal',
+ '.pbd': 'application/vnd.powerbuilder6',
+ '.pbm': 'image/x-portable-bitmap',
+ '.pcf': 'application/x-font-pcf',
+ '.pcl': 'application/vnd.hp-pcl',
+ '.pclxl': 'application/vnd.hp-pclxl',
+ '.pct': 'image/x-pict',
+ '.pcurl': 'application/vnd.curl.pcurl',
+ '.pcx': 'image/x-pcx',
+ '.pdb': 'application/vnd.palm',
+ '.pdf': 'application/pdf',
+ '.pfa': 'application/x-font-type1',
+ '.pfb': 'application/x-font-type1',
+ '.pfm': 'application/x-font-type1',
+ '.pfr': 'application/font-tdpfr',
+ '.pfx': 'application/x-pkcs12',
+ '.pgm': 'image/x-portable-graymap',
+ '.pgn': 'application/x-chess-pgn',
+ '.pgp': 'application/pgp-encrypted',
+ '.pic': 'image/x-pict',
+ '.pkg': 'application/octet-stream',
+ '.pki': 'application/pkixcmp',
+ '.pkipath': 'application/pkix-pkipath',
+ '.pl': 'text/plain',
+ '.plb': 'application/vnd.3gpp.pic-bw-large',
+ '.plc': 'application/vnd.mobius.plc',
+ '.plf': 'application/vnd.pocketlearn',
+ '.pls': 'application/pls+xml',
+ '.pml': 'application/vnd.ctc-posml',
+ '.png': 'image/png',
+ '.pnm': 'image/x-portable-anymap',
+ '.portpkg': 'application/vnd.macports.portpkg',
+ '.pot': 'application/vnd.ms-powerpoint',
+ '.potm': 'application/vnd.ms-powerpoint.template.macroenabled.12',
+ '.potx': 'application/vnd.openxmlformats-officedocument.presentationml.template',
+ '.ppa': 'application/vnd.ms-powerpoint',
+ '.ppam': 'application/vnd.ms-powerpoint.addin.macroenabled.12',
+ '.ppd': 'application/vnd.cups-ppd',
+ '.ppm': 'image/x-portable-pixmap',
+ '.pps': 'application/vnd.ms-powerpoint',
+ '.ppsm': 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
+ '.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
+ '.ppt': 'application/vnd.ms-powerpoint',
+ '.pptm': 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
+ '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
+ '.pqa': 'application/vnd.palm',
+ '.prc': 'application/x-mobipocket-ebook',
+ '.pre': 'application/vnd.lotus-freelance',
+ '.prf': 'application/pics-rules',
+ '.ps': 'application/postscript',
+ '.psb': 'application/vnd.3gpp.pic-bw-small',
+ '.psd': 'image/vnd.adobe.photoshop',
+ '.psf': 'application/x-font-linux-psf',
+ '.ptid': 'application/vnd.pvi.ptid1',
+ '.pub': 'application/x-mspublisher',
+ '.pvb': 'application/vnd.3gpp.pic-bw-var',
+ '.pwn': 'application/vnd.3m.post-it-notes',
+ '.pwz': 'application/vnd.ms-powerpoint',
+ '.py': 'text/x-python',
+ '.pya': 'audio/vnd.ms-playready.media.pya',
+ '.pyc': 'application/x-python-code',
+ '.pyo': 'application/x-python-code',
+ '.pyv': 'video/vnd.ms-playready.media.pyv',
+ '.qam': 'application/vnd.epson.quickanime',
+ '.qbo': 'application/vnd.intu.qbo',
+ '.qfx': 'application/vnd.intu.qfx',
+ '.qps': 'application/vnd.publishare-delta-tree',
+ '.qt': 'video/quicktime',
+ '.qwd': 'application/vnd.quark.quarkxpress',
+ '.qwt': 'application/vnd.quark.quarkxpress',
+ '.qxb': 'application/vnd.quark.quarkxpress',
+ '.qxd': 'application/vnd.quark.quarkxpress',
+ '.qxl': 'application/vnd.quark.quarkxpress',
+ '.qxt': 'application/vnd.quark.quarkxpress',
+ '.ra': 'audio/x-pn-realaudio',
+ '.ram': 'audio/x-pn-realaudio',
+ '.rar': 'application/x-rar-compressed',
+ '.ras': 'image/x-cmu-raster',
+ '.rcprofile': 'application/vnd.ipunplugged.rcprofile',
+ '.rdf': 'application/rdf+xml',
+ '.rdz': 'application/vnd.data-vision.rdz',
+ '.rep': 'application/vnd.businessobjects',
+ '.res': 'application/x-dtbresource+xml',
+ '.rgb': 'image/x-rgb',
+ '.rif': 'application/reginfo+xml',
+ '.rl': 'application/resource-lists+xml',
+ '.rlc': 'image/vnd.fujixerox.edmics-rlc',
+ '.rld': 'application/resource-lists-diff+xml',
+ '.rm': 'application/vnd.rn-realmedia',
+ '.rmi': 'audio/midi',
+ '.rmp': 'audio/x-pn-realaudio-plugin',
+ '.rms': 'application/vnd.jcp.javame.midlet-rms',
+ '.rnc': 'application/relax-ng-compact-syntax',
+ '.roff': 'text/troff',
+ '.rpm': 'application/x-rpm',
+ '.rpss': 'application/vnd.nokia.radio-presets',
+ '.rpst': 'application/vnd.nokia.radio-preset',
+ '.rq': 'application/sparql-query',
+ '.rs': 'application/rls-services+xml',
+ '.rsd': 'application/rsd+xml',
+ '.rss': 'application/rss+xml',
+ '.rtf': 'application/rtf',
+ '.rtx': 'text/richtext',
+ '.s': 'text/x-asm',
+ '.saf': 'application/vnd.yamaha.smaf-audio',
+ '.sbml': 'application/sbml+xml',
+ '.sc': 'application/vnd.ibm.secure-container',
+ '.scd': 'application/x-msschedule',
+ '.scm': 'application/vnd.lotus-screencam',
+ '.scq': 'application/scvp-cv-request',
+ '.scs': 'application/scvp-cv-response',
+ '.scurl': 'text/vnd.curl.scurl',
+ '.sda': 'application/vnd.stardivision.draw',
+ '.sdc': 'application/vnd.stardivision.calc',
+ '.sdd': 'application/vnd.stardivision.impress',
+ '.sdkd': 'application/vnd.solent.sdkm+xml',
+ '.sdkm': 'application/vnd.solent.sdkm+xml',
+ '.sdp': 'application/sdp',
+ '.sdw': 'application/vnd.stardivision.writer',
+ '.see': 'application/vnd.seemail',
+ '.seed': 'application/vnd.fdsn.seed',
+ '.sema': 'application/vnd.sema',
+ '.semd': 'application/vnd.semd',
+ '.semf': 'application/vnd.semf',
+ '.ser': 'application/java-serialized-object',
+ '.setpay': 'application/set-payment-initiation',
+ '.setreg': 'application/set-registration-initiation',
+ '.sfd-hdstx': 'application/vnd.hydrostatix.sof-data',
+ '.sfs': 'application/vnd.spotfire.sfs',
+ '.sgl': 'application/vnd.stardivision.writer-global',
+ '.sgm': 'text/sgml',
+ '.sgml': 'text/sgml',
+ '.sh': 'application/x-sh',
+ '.shar': 'application/x-shar',
+ '.shf': 'application/shf+xml',
+ '.si': 'text/vnd.wap.si',
+ '.sic': 'application/vnd.wap.sic',
+ '.sig': 'application/pgp-signature',
+ '.silo': 'model/mesh',
+ '.sis': 'application/vnd.symbian.install',
+ '.sisx': 'application/vnd.symbian.install',
+ '.sit': 'application/x-stuffit',
+ '.sitx': 'application/x-stuffitx',
+ '.skd': 'application/vnd.koan',
+ '.skm': 'application/vnd.koan',
+ '.skp': 'application/vnd.koan',
+ '.skt': 'application/vnd.koan',
+ '.sl': 'text/vnd.wap.sl',
+ '.slc': 'application/vnd.wap.slc',
+ '.sldm': 'application/vnd.ms-powerpoint.slide.macroenabled.12',
+ '.sldx': 'application/vnd.openxmlformats-officedocument.presentationml.slide',
+ '.slt': 'application/vnd.epson.salt',
+ '.smf': 'application/vnd.stardivision.math',
+ '.smi': 'application/smil+xml',
+ '.smil': 'application/smil+xml',
+ '.snd': 'audio/basic',
+ '.snf': 'application/x-font-snf',
+ '.so': 'application/octet-stream',
+ '.spc': 'application/x-pkcs7-certificates',
+ '.spf': 'application/vnd.yamaha.smaf-phrase',
+ '.spl': 'application/x-futuresplash',
+ '.spot': 'text/vnd.in3d.spot',
+ '.spp': 'application/scvp-vp-response',
+ '.spq': 'application/scvp-vp-request',
+ '.spx': 'audio/ogg',
+ '.src': 'application/x-wais-source',
+ '.srx': 'application/sparql-results+xml',
+ '.sse': 'application/vnd.kodak-descriptor',
+ '.ssf': 'application/vnd.epson.ssf',
+ '.ssml': 'application/ssml+xml',
+ '.stc': 'application/vnd.sun.xml.calc.template',
+ '.std': 'application/vnd.sun.xml.draw.template',
+ '.stf': 'application/vnd.wt.stf',
+ '.sti': 'application/vnd.sun.xml.impress.template',
+ '.stk': 'application/hyperstudio',
+ '.stl': 'application/vnd.ms-pki.stl',
+ '.str': 'application/vnd.pg.format',
+ '.stw': 'application/vnd.sun.xml.writer.template',
+ '.sus': 'application/vnd.sus-calendar',
+ '.susp': 'application/vnd.sus-calendar',
+ '.sv4cpio': 'application/x-sv4cpio',
+ '.sv4crc': 'application/x-sv4crc',
+ '.svd': 'application/vnd.svd',
+ '.svg': 'image/svg+xml',
+ '.svgz': 'image/svg+xml',
+ '.swa': 'application/x-director',
+ '.swf': 'application/x-shockwave-flash',
+ '.swi': 'application/vnd.arastra.swi',
+ '.sxc': 'application/vnd.sun.xml.calc',
+ '.sxd': 'application/vnd.sun.xml.draw',
+ '.sxg': 'application/vnd.sun.xml.writer.global',
+ '.sxi': 'application/vnd.sun.xml.impress',
+ '.sxm': 'application/vnd.sun.xml.math',
+ '.sxw': 'application/vnd.sun.xml.writer',
+ '.t': 'text/troff',
+ '.tao': 'application/vnd.tao.intent-module-archive',
+ '.tar': 'application/x-tar',
+ '.tcap': 'application/vnd.3gpp2.tcap',
+ '.tcl': 'application/x-tcl',
+ '.teacher': 'application/vnd.smart.teacher',
+ '.tex': 'application/x-tex',
+ '.texi': 'application/x-texinfo',
+ '.texinfo': 'application/x-texinfo',
+ '.text': 'text/plain',
+ '.tfm': 'application/x-tex-tfm',
+ '.tgz': 'application/x-gzip',
+ '.tif': 'image/tiff',
+ '.tiff': 'image/tiff',
+ '.tmo': 'application/vnd.tmobile-livetv',
+ '.torrent': 'application/x-bittorrent',
+ '.tpl': 'application/vnd.groove-tool-template',
+ '.tpt': 'application/vnd.trid.tpt',
+ '.tr': 'text/troff',
+ '.tra': 'application/vnd.trueapp',
+ '.trm': 'application/x-msterminal',
+ '.tsv': 'text/tab-separated-values',
+ '.ttc': 'application/x-font-ttf',
+ '.ttf': 'application/x-font-ttf',
+ '.twd': 'application/vnd.simtech-mindmapper',
+ '.twds': 'application/vnd.simtech-mindmapper',
+ '.txd': 'application/vnd.genomatix.tuxedo',
+ '.txf': 'application/vnd.mobius.txf',
+ '.txt': 'text/plain',
+ '.u32': 'application/x-authorware-bin',
+ '.udeb': 'application/x-debian-package',
+ '.ufd': 'application/vnd.ufdl',
+ '.ufdl': 'application/vnd.ufdl',
+ '.umj': 'application/vnd.umajin',
+ '.unityweb': 'application/vnd.unity',
+ '.uoml': 'application/vnd.uoml+xml',
+ '.uri': 'text/uri-list',
+ '.uris': 'text/uri-list',
+ '.urls': 'text/uri-list',
+ '.ustar': 'application/x-ustar',
+ '.utz': 'application/vnd.uiq.theme',
+ '.uu': 'text/x-uuencode',
+ '.vcd': 'application/x-cdlink',
+ '.vcf': 'text/x-vcard',
+ '.vcg': 'application/vnd.groove-vcard',
+ '.vcs': 'text/x-vcalendar',
+ '.vcx': 'application/vnd.vcx',
+ '.vis': 'application/vnd.visionary',
+ '.viv': 'video/vnd.vivo',
+ '.vor': 'application/vnd.stardivision.writer',
+ '.vox': 'application/x-authorware-bin',
+ '.vrml': 'model/vrml',
+ '.vsd': 'application/vnd.visio',
+ '.vsf': 'application/vnd.vsf',
+ '.vss': 'application/vnd.visio',
+ '.vst': 'application/vnd.visio',
+ '.vsw': 'application/vnd.visio',
+ '.vtu': 'model/vnd.vtu',
+ '.vxml': 'application/voicexml+xml',
+ '.w3d': 'application/x-director',
+ '.wad': 'application/x-doom',
+ '.wav': 'audio/x-wav',
+ '.wax': 'audio/x-ms-wax',
+ '.wbmp': 'image/vnd.wap.wbmp',
+ '.wbs': 'application/vnd.criticaltools.wbs+xml',
+ '.wbxml': 'application/vnd.wap.wbxml',
+ '.wcm': 'application/vnd.ms-works',
+ '.wdb': 'application/vnd.ms-works',
+ '.wiz': 'application/msword',
+ '.wks': 'application/vnd.ms-works',
+ '.wm': 'video/x-ms-wm',
+ '.wma': 'audio/x-ms-wma',
+ '.wmd': 'application/x-ms-wmd',
+ '.wmf': 'application/x-msmetafile',
+ '.wml': 'text/vnd.wap.wml',
+ '.wmlc': 'application/vnd.wap.wmlc',
+ '.wmls': 'text/vnd.wap.wmlscript',
+ '.wmlsc': 'application/vnd.wap.wmlscriptc',
+ '.wmv': 'video/x-ms-wmv',
+ '.wmx': 'video/x-ms-wmx',
+ '.wmz': 'application/x-ms-wmz',
+ '.wpd': 'application/vnd.wordperfect',
+ '.wpl': 'application/vnd.ms-wpl',
+ '.wps': 'application/vnd.ms-works',
+ '.wqd': 'application/vnd.wqd',
+ '.wri': 'application/x-mswrite',
+ '.wrl': 'model/vrml',
+ '.wsdl': 'application/wsdl+xml',
+ '.wspolicy': 'application/wspolicy+xml',
+ '.wtb': 'application/vnd.webturbo',
+ '.wvx': 'video/x-ms-wvx',
+ '.x32': 'application/x-authorware-bin',
+ '.x3d': 'application/vnd.hzn-3d-crossword',
+ '.xap': 'application/x-silverlight-app',
+ '.xar': 'application/vnd.xara',
+ '.xbap': 'application/x-ms-xbap',
+ '.xbd': 'application/vnd.fujixerox.docuworks.binder',
+ '.xbm': 'image/x-xbitmap',
+ '.xdm': 'application/vnd.syncml.dm+xml',
+ '.xdp': 'application/vnd.adobe.xdp+xml',
+ '.xdw': 'application/vnd.fujixerox.docuworks',
+ '.xenc': 'application/xenc+xml',
+ '.xer': 'application/patch-ops-error+xml',
+ '.xfdf': 'application/vnd.adobe.xfdf',
+ '.xfdl': 'application/vnd.xfdl',
+ '.xht': 'application/xhtml+xml',
+ '.xhtml': 'application/xhtml+xml',
+ '.xhvml': 'application/xv+xml',
+ '.xif': 'image/vnd.xiff',
+ '.xla': 'application/vnd.ms-excel',
+ '.xlam': 'application/vnd.ms-excel.addin.macroenabled.12',
+ '.xlb': 'application/vnd.ms-excel',
+ '.xlc': 'application/vnd.ms-excel',
+ '.xlm': 'application/vnd.ms-excel',
+ '.xls': 'application/vnd.ms-excel',
+ '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
+ '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',
+ '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+ '.xlt': 'application/vnd.ms-excel',
+ '.xltm': 'application/vnd.ms-excel.template.macroenabled.12',
+ '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
+ '.xlw': 'application/vnd.ms-excel',
+ '.xml': 'application/xml',
+ '.xo': 'application/vnd.olpc-sugar',
+ '.xop': 'application/xop+xml',
+ '.xpdl': 'application/xml',
+ '.xpi': 'application/x-xpinstall',
+ '.xpm': 'image/x-xpixmap',
+ '.xpr': 'application/vnd.is-xpr',
+ '.xps': 'application/vnd.ms-xpsdocument',
+ '.xpw': 'application/vnd.intercon.formnet',
+ '.xpx': 'application/vnd.intercon.formnet',
+ '.xsl': 'application/xml',
+ '.xslt': 'application/xslt+xml',
+ '.xsm': 'application/vnd.syncml+xml',
+ '.xspf': 'application/xspf+xml',
+ '.xul': 'application/vnd.mozilla.xul+xml',
+ '.xvm': 'application/xv+xml',
+ '.xvml': 'application/xv+xml',
+ '.xwd': 'image/x-xwindowdump',
+ '.xyz': 'chemical/x-xyz',
+ '.zaz': 'application/vnd.zzazz.deck+xml',
+ '.zip': 'application/zip',
+ '.zir': 'application/vnd.zul',
+ '.zirz': 'application/vnd.zul',
+ '.zmm': 'application/vnd.handheld-entertainment+xml',
+ };
+
+ // Return the MIME type or a default value if the extension is not found
+ return mimeTypes[extension.toLowerCase()] || null;
+}
From 8eeeb3fa29a2b924d0e8ec15cf3344931f1e6885 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Fri, 23 Aug 2024 11:25:17 +0200
Subject: [PATCH 21/31] setup extensions of preexisting ones
---
.../components/input-upload-field/index.ts | 6 +--
.../input-upload-field/manifests.ts | 13 +----
.../input-upload-field/preview/index.ts | 5 ++
.../input-upload-field-audio.element.ts | 2 +-
.../input-upload-field-file.element.ts | 2 +-
.../input-upload-field-image.element.ts | 2 +-
.../input-upload-field-svg.element.ts | 2 +-
.../input-upload-field-video.element.ts | 2 +-
.../input-upload-field/preview/manifest.ts | 40 ++++++++++++++++
.../input-upload-field/test.element.ts | 48 -------------------
.../src/packages/media/media/manifests.ts | 2 +
.../upload-field/manifests.ts | 17 +------
.../upload-field/test.element.ts | 48 -------------------
13 files changed, 56 insertions(+), 133 deletions(-)
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/index.ts
rename src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/{ => preview}/input-upload-field-audio.element.ts (89%)
rename src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/{ => preview}/input-upload-field-file.element.ts (97%)
rename src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/{ => preview}/input-upload-field-image.element.ts (91%)
rename src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/{ => preview}/input-upload-field-svg.element.ts (93%)
rename src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/{ => preview}/input-upload-field-video.element.ts (90%)
create mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts
delete mode 100644 src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/index.ts
index 890e2fbe58..2807ab69a3 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/index.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/index.ts
@@ -1,6 +1,2 @@
+export * from './preview/index.js';
export * from './input-upload-field.element.js';
-export * from './input-upload-field-file.element.js';
-export * from './input-upload-field-audio.element.js';
-export * from './input-upload-field-video.element.js';
-export * from './input-upload-field-svg.element.js';
-export * from './input-upload-field-image.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts
index 12e70fe184..4fd2cf3384 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/manifests.ts
@@ -1,12 +1 @@
-import type { ManifestFileUploadPreview } from '@umbraco-cms/backoffice/extension-registry';
-const previews: Array
= [
- {
- type: 'fileUploadPreview',
- alias: 'My PDF Showcase',
- name: 'PDF Showcase',
- forMimeTypes: ['application/pdf'],
- },
-];
-console.log('export..');
-
-export const manifests = [...previews];
+export * from './preview/manifest.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/index.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/index.ts
new file mode 100644
index 0000000000..abc41913ce
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/index.ts
@@ -0,0 +1,5 @@
+export * from './input-upload-field-file.element.js';
+export * from './input-upload-field-audio.element.js';
+export * from './input-upload-field-video.element.js';
+export * from './input-upload-field-svg.element.js';
+export * from './input-upload-field-image.element.js';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-audio.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.ts
similarity index 89%
rename from src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-audio.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.ts
index 0d838ce98a..3e42eea811 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-audio.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.ts
@@ -2,7 +2,7 @@ import { html, customElement, property, css } from '@umbraco-cms/backoffice/exte
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@customElement('umb-input-upload-field-audio')
-export class UmbInputUploadFieldAudioElement extends UmbLitElement {
+export default class UmbInputUploadFieldAudioElement extends UmbLitElement {
@property({ type: String })
path = '';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-file.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.ts
similarity index 97%
rename from src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-file.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.ts
index 7882601f8f..5942802e83 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-file.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.ts
@@ -4,7 +4,7 @@ import { html, customElement, property, state, css } from '@umbraco-cms/backoffi
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@customElement('umb-input-upload-field-file')
-export class UmbInputUploadFieldFileElement extends UmbLitElement {
+export default class UmbInputUploadFieldFileElement extends UmbLitElement {
@property({ type: String })
path: string = '';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-image.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.ts
similarity index 91%
rename from src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-image.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.ts
index fbd5715feb..84f26c9333 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-image.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.ts
@@ -2,7 +2,7 @@ import { html, customElement, property, css } from '@umbraco-cms/backoffice/exte
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@customElement('umb-input-upload-field-image')
-export class UmbInputUploadFieldImageElement extends UmbLitElement {
+export default class UmbInputUploadFieldImageElement extends UmbLitElement {
@property({ type: String })
path = '';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-svg.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.ts
similarity index 93%
rename from src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-svg.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.ts
index 63fd7ca738..0ea86c186a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-svg.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.ts
@@ -2,7 +2,7 @@ import { html, customElement, property, css } from '@umbraco-cms/backoffice/exte
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@customElement('umb-input-upload-field-svg')
-export class UmbInputUploadFieldSvgElement extends UmbLitElement {
+export default class UmbInputUploadFieldSvgElement extends UmbLitElement {
@property({ type: String })
path = '';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-video.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.ts
similarity index 90%
rename from src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-video.element.ts
rename to src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.ts
index 477c1858bb..c2821b9b1a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field-video.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.ts
@@ -2,7 +2,7 @@ import { html, customElement, property, css } from '@umbraco-cms/backoffice/exte
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@customElement('umb-input-upload-field-video')
-export class UmbInputUploadFieldVideoElement extends UmbLitElement {
+export default class UmbInputUploadFieldVideoElement extends UmbLitElement {
@property({ type: String })
path = '';
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
new file mode 100644
index 0000000000..4fca63ae09
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
@@ -0,0 +1,40 @@
+import type { ManifestFileUploadPreview, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
+
+const previews: Array = [
+ {
+ type: 'fileUploadPreview',
+ alias: 'Umb.FileUploadPreview.Audio',
+ name: 'Audio File Upload Preview',
+ element: () => import('./input-upload-field-audio.element.js'),
+ forMimeTypes: ['audio/*'],
+ },
+ {
+ type: 'fileUploadPreview',
+ alias: 'Umb.FileUploadPreview.File',
+ name: 'File File Upload Preview',
+ element: () => import('./input-upload-field-file.element.js'),
+ },
+ {
+ type: 'fileUploadPreview',
+ alias: 'Umb.FileUploadPreview.Image',
+ name: 'Image File Upload Preview',
+ element: () => import('./input-upload-field-image.element.js'),
+ forMimeTypes: ['image/*'],
+ },
+ {
+ type: 'fileUploadPreview',
+ alias: 'Umb.FileUploadPreview.Svg',
+ name: 'Svg File Upload Preview',
+ element: () => import('./input-upload-field-svg.element.js'),
+ forMimeTypes: ['image/svg+xml'],
+ },
+ {
+ type: 'fileUploadPreview',
+ alias: 'Umb.FileUploadPreview.Video',
+ name: 'Video File Upload Preview',
+ element: () => import('./input-upload-field-video.element.js'),
+ forMimeTypes: ['video/*'],
+ },
+];
+
+export const manifests: Array = [...previews];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts
deleted file mode 100644
index 09adc8addc..0000000000
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/test.element.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit';
-import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
-
-@customElement('umb-pdf-preview')
-export class UmbPDFPreviewElement extends UmbLitElement {
- @property({ attribute: false })
- file?: File;
-
- @property({ type: String })
- path?: string;
-
- override render() {
- if (!this.path) return html` `;
-
- return html`This is the path: ${this.path} & the file is named ${this.file?.name}`;
- }
-
- static override styles = [
- css`
- :host {
- display: flex;
- background-color: #fff;
- background-image: url('data:image/svg+xml;charset=utf-8, ');
- background-repeat: repeat;
- background-size: 10px 10px;
- height: 100%;
- min-height: 240px;
- position: relative;
- width: fit-content;
- max-height: 240px;
- }
-
- img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- width: auto;
- height: auto;
- }
- `,
- ];
-}
-
-declare global {
- interface HTMLElementTagNameMap {
- 'umb-pdf-preview': UmbPDFPreviewElement;
- }
-}
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 64ef9c80d7..c63a81573f 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
@@ -11,6 +11,7 @@ import { manifests as searchManifests } from './search/manifests.js';
import { manifests as sectionViewManifests } from './section-view/manifests.js';
import { manifests as treeManifests } from './tree/manifests.js';
import { manifests as workspaceManifests } from './workspace/manifests.js';
+import { manifests as fileUploadPreviewManifests } from './components/input-upload-field/manifests.js';
import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
export const manifests: Array = [
@@ -27,4 +28,5 @@ export const manifests: Array = [
...sectionViewManifests,
...treeManifests,
...workspaceManifests,
+ ...fileUploadPreviewManifests,
];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts
index a5aca4d748..311f8d61b9 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/manifests.ts
@@ -1,9 +1,5 @@
import { manifest as schemaManifest } from './Umbraco.UploadField.js';
-import type {
- ManifestFileUploadPreview,
- ManifestPropertyEditorUi,
- ManifestTypes,
-} from '@umbraco-cms/backoffice/extension-registry';
+import type { ManifestPropertyEditorUi, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
const manifest: ManifestPropertyEditorUi = {
type: 'propertyEditorUi',
@@ -18,13 +14,4 @@ const manifest: ManifestPropertyEditorUi = {
},
};
-/** Testing */
-const previews: ManifestFileUploadPreview = {
- type: 'fileUploadPreview',
- alias: 'My PDF Showcase',
- name: 'PDF Showcase',
- element: () => import('./test.element.js'),
- forMimeTypes: ['application/pdf'],
-};
-
-export const manifests: Array = [manifest, schemaManifest, previews];
+export const manifests: Array = [manifest, schemaManifest];
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts
deleted file mode 100644
index 65072a1316..0000000000
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/test.element.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { html, customElement, property, css } from '@umbraco-cms/backoffice/external/lit';
-import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
-
-@customElement('umb-pdf-preview')
-export default class UmbPDFPreviewElement extends UmbLitElement {
- @property({ attribute: false })
- file?: File;
-
- @property({ type: String })
- path?: string;
-
- override render() {
- if (!this.path) return html` `;
-
- return html`This is the path: ${this.path} & the file is named ${this.file?.name}`;
- }
-
- static override styles = [
- css`
- :host {
- display: flex;
- background-color: #fff;
- background-image: url('data:image/svg+xml;charset=utf-8, ');
- background-repeat: repeat;
- background-size: 10px 10px;
- height: 100%;
- min-height: 240px;
- position: relative;
- width: fit-content;
- max-height: 240px;
- }
-
- img {
- max-width: 100%;
- max-height: 100%;
- object-fit: contain;
- width: auto;
- height: auto;
- }
- `,
- ];
-}
-
-declare global {
- interface HTMLElementTagNameMap {
- 'umb-pdf-preview': UmbPDFPreviewElement;
- }
-}
From 7f6067e8aebc4ba0be071d49eb88882b62657985 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Fri, 23 Aug 2024 11:25:26 +0200
Subject: [PATCH 22/31] load extensions
---
.../input-upload-field.element.ts | 140 ++++++++----------
1 file changed, 62 insertions(+), 78 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index 84150986e5..f30c3e6a9a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -1,4 +1,5 @@
import type { MediaValueType } from '../../property-editors/upload-field/types.js';
+import { getMimeTypeFromExtension } from './utils.js';
import { TemporaryFileStatus, UmbTemporaryFileManager } from '@umbraco-cms/backoffice/temporary-file';
import type { UmbTemporaryFileModel } from '@umbraco-cms/backoffice/temporary-file';
import { UmbId } from '@umbraco-cms/backoffice/id';
@@ -16,7 +17,6 @@ import type { UUIFileDropzoneElement, UUIFileDropzoneEvent } from '@umbraco-cms/
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
-import './input-upload-field-file.element.js';
import { UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
import { type ManifestFileUploadPreview, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api';
@@ -26,7 +26,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
@property({ type: Object })
set value(value: MediaValueType) {
if (!value?.src) return;
- this._src = value.src;
+ this.src = value.src;
}
get value(): MediaValueType {
return !this.temporaryFile ? { src: this._src } : { temporaryFileId: this.temporaryFile.temporaryUnique };
@@ -48,12 +48,23 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
@state()
public temporaryFile?: UmbTemporaryFileModel;
+ public set src(src: string) {
+ this._src = src;
+ this._previewAlias = this.#getPreviewElementAlias();
+ }
+ public get src() {
+ return this._src;
+ }
+
@state()
private _src = '';
@state()
private _extensions?: string[];
+ @state()
+ private _previewAlias = '';
+
@query('#dropzone')
private _dropzone?: UUIFileDropzoneElement;
@@ -79,6 +90,41 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
this._extensions = extensions?.map((extension) => `.${extension}`);
}
+ #getPreviewElementAlias() {
+ const previews = this.#previewers.getValue();
+ const fallbackAlias = previews.find((preview) => !preview.forMimeTypes?.length)?.alias ?? '';
+
+ const mimeType = this.#getMimeTypeFromPath(this._src);
+ if (!mimeType) return fallbackAlias;
+
+ const manifest = previews.find((preview) => {
+ return preview.forMimeTypes?.find((type) => {
+ if (mimeType === type) preview.alias;
+
+ const snippet = type.replace('*', '');
+ if (mimeType.startsWith(snippet)) return preview.alias;
+ if (mimeType.endsWith(snippet)) return preview.alias;
+ return undefined;
+ });
+ });
+
+ if (manifest) return manifest.alias;
+ return fallbackAlias;
+ }
+
+ #getMimeTypeFromPath(path: string) {
+ // Extract the the MIME type from the data url
+ if (path.startsWith('data:')) {
+ const mimeType = path.substring(5, path.indexOf(';'));
+ return mimeType;
+ }
+
+ // Extract the file extension from the path
+ const extension = path.split('.').pop()?.toLowerCase();
+ if (!extension) return null;
+ return getMimeTypeFromExtension('.' + extension);
+ }
+
async #onUpload(e: UUIFileDropzoneEvent) {
//Property Editor for Upload field will always only have one file.
const item: UmbTemporaryFileModel = {
@@ -90,7 +136,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
const reader = new FileReader();
reader.onload = () => {
- this._src = reader.result as string;
+ this.src = reader.result as string;
};
reader.readAsDataURL(item.file);
@@ -108,7 +154,11 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
}
override render() {
- return html`${this._src ? this.#renderFile(this._src, this.temporaryFile?.file) : this.#renderDropzone()}`;
+ if (this.src && this._previewAlias) {
+ return this.#renderFile(this.src, this._previewAlias, this.temporaryFile?.file);
+ } else {
+ return this.#renderDropzone();
+ }
}
#renderDropzone() {
@@ -124,15 +174,16 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
`;
}
- #renderFile(src: string, file?: File) {
- const extension = this.#getFileExtensionFromPath(src);
- const element = this.#getElementFromFilePath(src);
- console.log('element', element);
-
+ #renderFile(src: string, previewAlias: string, file?: File) {
+ if (!previewAlias) return 'An error occurred. No previewer found for the file type.';
return html`
- ${getElementTemplate()}
+ manifest.alias === previewAlias}>
+
${this.temporaryFile?.status === TemporaryFileStatus.WAITING
? html` `
: nothing}
@@ -140,73 +191,6 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
${this.#renderButtonRemove()}
`;
-
- /**
- * @returns {string} The template for the file extension.
- */
- function getElementTemplate() {
- switch (extension) {
- case 'audio':
- return html`
`;
- case 'video':
- return html`
`;
- case 'image':
- return html`
`;
- case 'svg':
- return html`
`;
- default:
- return html`
`;
- }
- }
- }
-
- #getElementFromFilePath(path: string) {
- const previews = this.#previewers.getValue();
- const fallbackElement = previews.find((preview) => !preview.forMimeTypes?.length)?.element;
-
- // Extract the the MIME type from the data url and get corresponding previewer.
- if (path.startsWith('data:')) {
- const mimeType = path.substring(5, path.indexOf(';'));
-
- const manifest = previews.find((preview) => {
- return preview.forMimeTypes?.find((type) => {
- const snippet = type.replace('*', '');
- if (mimeType.startsWith(snippet)) return preview;
- if (mimeType.endsWith(snippet)) return preview;
- return undefined;
- });
- });
-
- if (manifest) return manifest.element;
- return fallbackElement;
- }
-
- // Extract the file extension from the path
- const extension = path.split('.').pop()?.toLowerCase();
- if (!extension) return fallbackElement;
-
- return fallbackElement;
- }
-
- #getFileExtensionFromPath(path: string): 'audio' | 'video' | 'image' | 'svg' | 'file' {
- // Extract the MIME type from the data URL
- if (path.startsWith('data:')) {
- const mimeType = path.substring(5, path.indexOf(';'));
- if (mimeType === 'image/svg+xml') return 'svg';
- if (mimeType.startsWith('image/')) return 'image';
- if (mimeType.startsWith('audio/')) return 'audio';
- if (mimeType.startsWith('video/')) return 'video';
- }
-
- // Extract the file extension from the path
- const extension = path.split('.').pop()?.toLowerCase();
- if (!extension) return 'file';
- if (['svg'].includes(extension)) return 'svg';
- if (['mp3', 'weba', 'oga', 'opus'].includes(extension)) return 'audio';
- if (['mp4', 'mov', 'webm', 'ogv'].includes(extension)) return 'video';
- if (['jpg', 'jpeg', 'png', 'gif'].includes(extension)) return 'image';
-
- return 'file';
}
#renderButtonRemove() {
@@ -216,7 +200,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
}
#handleRemove() {
- this._src = '';
+ this.src = '';
this.temporaryFile = undefined;
this.dispatchEvent(new UmbChangeEvent());
}
From d5ea707c16089f50198b393989f9c0a1d1a32cbc Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Mon, 26 Aug 2024 10:10:44 +0200
Subject: [PATCH 23/31] asterisks, forMimeType required
---
.../models/file-upload-preview.model.ts | 2 +-
.../input-upload-field/input-upload-field.element.ts | 9 +++++----
.../components/input-upload-field/preview/manifest.ts | 1 +
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
index 9c5bba9bc0..797491b693 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
@@ -3,5 +3,5 @@ import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api';
export interface ManifestFileUploadPreview extends ManifestElement
{
type: 'fileUploadPreview';
- forMimeTypes?: Array;
+ forMimeTypes: Array;
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index f30c3e6a9a..05be476e2f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -63,7 +63,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
private _extensions?: string[];
@state()
- private _previewAlias = '';
+ private _previewAlias?: string;
@query('#dropzone')
private _dropzone?: UUIFileDropzoneElement;
@@ -92,7 +92,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
#getPreviewElementAlias() {
const previews = this.#previewers.getValue();
- const fallbackAlias = previews.find((preview) => !preview.forMimeTypes?.length)?.alias ?? '';
+ const fallbackAlias = previews.find((preview) => preview.forMimeTypes.includes('*/*'))?.alias;
const mimeType = this.#getMimeTypeFromPath(this._src);
if (!mimeType) return fallbackAlias;
@@ -101,7 +101,8 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
return preview.forMimeTypes?.find((type) => {
if (mimeType === type) preview.alias;
- const snippet = type.replace('*', '');
+ const snippet = type.replace(/\*/g, '');
+
if (mimeType.startsWith(snippet)) return preview.alias;
if (mimeType.endsWith(snippet)) return preview.alias;
return undefined;
@@ -174,7 +175,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
`;
}
- #renderFile(src: string, previewAlias: string, file?: File) {
+ #renderFile(src: string, previewAlias?: string, file?: File) {
if (!previewAlias) return 'An error occurred. No previewer found for the file type.';
return html`
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
index 4fca63ae09..02413610f6 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
@@ -13,6 +13,7 @@ const previews: Array
= [
alias: 'Umb.FileUploadPreview.File',
name: 'File File Upload Preview',
element: () => import('./input-upload-field-file.element.js'),
+ forMimeTypes: ['*/*'],
},
{
type: 'fileUploadPreview',
From c8a1aa8c71f09edcb416adf08876133049b345b0 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Mon, 9 Sep 2024 11:14:53 +0200
Subject: [PATCH 24/31] default weight 100
---
.../media/components/input-upload-field/preview/manifest.ts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
index 02413610f6..b5f86c6cd8 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/manifest.ts
@@ -5,6 +5,7 @@ const previews: Array = [
type: 'fileUploadPreview',
alias: 'Umb.FileUploadPreview.Audio',
name: 'Audio File Upload Preview',
+ weight: 100,
element: () => import('./input-upload-field-audio.element.js'),
forMimeTypes: ['audio/*'],
},
@@ -12,6 +13,7 @@ const previews: Array = [
type: 'fileUploadPreview',
alias: 'Umb.FileUploadPreview.File',
name: 'File File Upload Preview',
+ weight: 100,
element: () => import('./input-upload-field-file.element.js'),
forMimeTypes: ['*/*'],
},
@@ -19,6 +21,7 @@ const previews: Array = [
type: 'fileUploadPreview',
alias: 'Umb.FileUploadPreview.Image',
name: 'Image File Upload Preview',
+ weight: 100,
element: () => import('./input-upload-field-image.element.js'),
forMimeTypes: ['image/*'],
},
@@ -26,6 +29,7 @@ const previews: Array = [
type: 'fileUploadPreview',
alias: 'Umb.FileUploadPreview.Svg',
name: 'Svg File Upload Preview',
+ weight: 100,
element: () => import('./input-upload-field-svg.element.js'),
forMimeTypes: ['image/svg+xml'],
},
@@ -33,6 +37,7 @@ const previews: Array = [
type: 'fileUploadPreview',
alias: 'Umb.FileUploadPreview.Video',
name: 'Video File Upload Preview',
+ weight: 100,
element: () => import('./input-upload-field-video.element.js'),
forMimeTypes: ['video/*'],
},
From eaf21cfcc3d17dd7d6b0bcfe62909116c08e212c Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Mon, 9 Sep 2024 11:42:48 +0200
Subject: [PATCH 25/31] overwrite array, fix issue with checking for matches
---
.../input-upload-field.element.ts | 25 ++++++++++---------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index 05be476e2f..88f24f57f9 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -19,7 +19,6 @@ import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
import { UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
import { type ManifestFileUploadPreview, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
-import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api';
@customElement('umb-input-upload-field')
export class UmbInputUploadFieldElement extends UmbLitElement {
@@ -70,14 +69,12 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
#manager = new UmbTemporaryFileManager(this);
- #previewers = new UmbArrayState(>[], (x) => x.alias);
+ #previewers: Array = [];
constructor() {
super();
new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'fileUploadPreview', null, (previews) => {
- previews.forEach((preview) => {
- this.#previewers.appendOne(preview.manifest);
- });
+ this.#previewers = previews.map((preview) => preview.manifest);
});
}
@@ -91,25 +88,29 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
}
#getPreviewElementAlias() {
- const previews = this.#previewers.getValue();
- const fallbackAlias = previews.find((preview) => preview.forMimeTypes.includes('*/*'))?.alias;
+ const fallbackAlias = this.#previewers.find((preview) => preview.forMimeTypes.includes('*/*'))?.alias;
const mimeType = this.#getMimeTypeFromPath(this._src);
if (!mimeType) return fallbackAlias;
- const manifest = previews.find((preview) => {
- return preview.forMimeTypes?.find((type) => {
- if (mimeType === type) preview.alias;
+ // Check for an exact match
+ const exactMatch = this.#previewers.find((preview) => {
+ return preview.forMimeTypes.find((type) => type === mimeType);
+ });
+ if (exactMatch) return exactMatch.alias;
+ // Check for wildcard match (e.g. image/*)
+ const wildcardMatch = this.#previewers.find((preview) => {
+ return preview.forMimeTypes.find((type) => {
const snippet = type.replace(/\*/g, '');
-
if (mimeType.startsWith(snippet)) return preview.alias;
if (mimeType.endsWith(snippet)) return preview.alias;
return undefined;
});
});
+ if (wildcardMatch) return wildcardMatch.alias;
- if (manifest) return manifest.alias;
+ // Use fallbackAlias.
return fallbackAlias;
}
From d03c7289d7c70270661c21be76d31076dc16eb35 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Mon, 9 Sep 2024 12:39:06 +0200
Subject: [PATCH 26/31] jdoc example
---
.../extension-registry/models/file-upload-preview.model.ts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
index 797491b693..e432c9ef79 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
@@ -3,5 +3,9 @@ import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api';
export interface ManifestFileUploadPreview extends ManifestElement {
type: 'fileUploadPreview';
+ /**
+ * Array of the mime types that are supported by this extension.
+ * @example ["image/png", "image/jpeg", "image/*"]
+ */
forMimeTypes: Array;
}
From 75e1dfdd76dd0c8670ff35cf363d1ca60a6cd552 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Tue, 10 Sep 2024 22:49:25 +0200
Subject: [PATCH 27/31] Update
src/packages/core/extension-registry/models/file-upload-preview.model.ts
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
---
.../extension-registry/models/file-upload-preview.model.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
index e432c9ef79..2b162657e4 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
@@ -5,7 +5,8 @@ export interface ManifestFileUploadPreview extends ManifestElement;
}
From 186f556a51bf3d9cbc21b2b0ceb134567dd8e922 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Tue, 10 Sep 2024 22:50:11 +0200
Subject: [PATCH 28/31] Update
src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
---
.../components/input-upload-field/input-upload-field.element.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index 88f24f57f9..1b6551e7e9 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -95,7 +95,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
// Check for an exact match
const exactMatch = this.#previewers.find((preview) => {
- return preview.forMimeTypes.find((type) => type === mimeType);
+ return preview.forMimeTypes.includes(mimeType);
});
if (exactMatch) return exactMatch.alias;
From e85d083929b6b0937075d9f13dd0e773ca350a42 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Thu, 12 Sep 2024 09:30:07 +0200
Subject: [PATCH 29/31] Update
src/packages/core/extension-registry/models/file-upload-preview.model.ts
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
---
.../core/extension-registry/models/file-upload-preview.model.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
index 2b162657e4..8482cc60dc 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/file-upload-preview.model.ts
@@ -8,5 +8,5 @@ export interface ManifestFileUploadPreview extends ManifestElement;
+ forMimeTypes: string | Array;
}
From 593103693222ec418a926e776c2ae17026db07e9 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Thu, 12 Sep 2024 10:03:58 +0200
Subject: [PATCH 30/31] handle string and string array
---
.../input-upload-field.element.ts | 21 ++++++++++---------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index 1b6551e7e9..57a599ea2f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -69,12 +69,12 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
#manager = new UmbTemporaryFileManager(this);
- #previewers: Array = [];
+ #manifests: Array = [];
constructor() {
super();
- new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'fileUploadPreview', null, (previews) => {
- this.#previewers = previews.map((preview) => preview.manifest);
+ new UmbExtensionsManifestInitializer(this, umbExtensionsRegistry, 'fileUploadPreview', null, (manifests) => {
+ this.#manifests = manifests.map((manifest) => manifest.manifest);
});
}
@@ -88,23 +88,24 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
}
#getPreviewElementAlias() {
- const fallbackAlias = this.#previewers.find((preview) => preview.forMimeTypes.includes('*/*'))?.alias;
+ const fallbackAlias = this.#manifests.find((manifest) => manifest.forMimeTypes.includes('*/*'))?.alias;
const mimeType = this.#getMimeTypeFromPath(this._src);
if (!mimeType) return fallbackAlias;
// Check for an exact match
- const exactMatch = this.#previewers.find((preview) => {
- return preview.forMimeTypes.includes(mimeType);
+ const exactMatch = this.#manifests.find((manifest) => {
+ return manifest.forMimeTypes.includes(mimeType);
});
if (exactMatch) return exactMatch.alias;
// Check for wildcard match (e.g. image/*)
- const wildcardMatch = this.#previewers.find((preview) => {
- return preview.forMimeTypes.find((type) => {
+ const wildcardMatch = this.#manifests.find((manifest) => {
+ const forMimeTypes = Array.isArray(manifest.forMimeTypes) ? manifest.forMimeTypes : [manifest.forMimeTypes];
+ return forMimeTypes.find((type) => {
const snippet = type.replace(/\*/g, '');
- if (mimeType.startsWith(snippet)) return preview.alias;
- if (mimeType.endsWith(snippet)) return preview.alias;
+ if (mimeType.startsWith(snippet)) return manifest.alias;
+ if (mimeType.endsWith(snippet)) return manifest.alias;
return undefined;
});
});
From 6088456832fc18f879363d14eaeb38b790aa0d4f Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Tue, 17 Sep 2024 10:46:22 +0200
Subject: [PATCH 31/31] sonar issues
---
.../input-upload-field.element.ts | 2 +-
.../preview/input-upload-field-audio.element.ts | 2 +-
.../preview/input-upload-field-file.element.ts | 15 +++++++--------
.../preview/input-upload-field-image.element.ts | 2 +-
.../preview/input-upload-field-svg.element.ts | 2 +-
.../preview/input-upload-field-video.element.ts | 2 +-
6 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index 57a599ea2f..7ef396d868 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -208,7 +208,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
this.dispatchEvent(new UmbChangeEvent());
}
- static override styles = [
+ static override readonly styles = [
css`
:host {
position: relative;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.ts
index 3e42eea811..ffd9f605f4 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.ts
@@ -12,7 +12,7 @@ export default class UmbInputUploadFieldAudioElement extends UmbLitElement {
return html` `;
}
- static override styles = [
+ static override readonly styles = [
css`
:host {
display: flex;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.ts
index 5942802e83..a5dbf5ca44 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.ts
@@ -45,21 +45,20 @@ export default class UmbInputUploadFieldFileElement extends UmbLitElement {
if (this.#serverUrl) {
if (this.file) return;
- this.extension = this.path.split('.').pop() || '';
+ this.extension = this.path.split('.').pop() ?? '';
this.label = this.#serverUrl ? this.path.substring(this.#serverUrl.length) : 'loading...';
}
}
}
#getExtensionFromMime(mime: string): string {
- //TODO Temporary solution.
if (!mime) return ''; //folders
+
const extension = mime.split('/')[1];
- switch (extension) {
- case 'svg+xml':
- return 'svg';
- default:
- return extension;
+ if (extension === 'svg+xml') {
+ return 'svg';
+ } else {
+ return extension;
}
}
@@ -83,7 +82,7 @@ export default class UmbInputUploadFieldFileElement extends UmbLitElement {
`;
}
- static override styles = [
+ static override readonly styles = [
css`
#main {
display: grid;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.ts
index 84f26c9333..81760f3914 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.ts
@@ -12,7 +12,7 @@ export default class UmbInputUploadFieldImageElement extends UmbLitElement {
return html` `;
}
- static override styles = [
+ static override readonly styles = [
css`
:host {
display: flex;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.ts
index 0ea86c186a..299f0e4331 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.ts
@@ -12,7 +12,7 @@ export default class UmbInputUploadFieldSvgElement extends UmbLitElement {
return html` `;
}
- static override styles = [
+ static override readonly styles = [
css`
:host {
display: flex;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.ts
index c2821b9b1a..fa66163bbe 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.ts
@@ -17,7 +17,7 @@ export default class UmbInputUploadFieldVideoElement extends UmbLitElement {
`;
}
- static override styles = [
+ static override readonly styles = [
css`
:host {
display: flex;